400KHz I2C with Aardvark
3 ビュー (過去 30 日間)
古いコメントを表示
I am able to use Total Phase's Aardvark I2C/SPI to send and read data with I2C. However, the transfers only occur at 100KHz with MatLab 2016b in Windows and macOS. I have setup my device as follows:
%%*** initialize i2c channel and unlock i2c slave access
Vendor = 'Aardvark';
BoardIndex = 0;
i2c_dev = i2c(Vendor,BoardIndex,RemoteAddress);
i2c_dev.BitRate = 400;
i2c_dev.PullupResistors = 'none';
i2c_dev.TargetPower = 'none';
set(i2c_dev,'OutputBufferSize',512)
fopen(i2c_dev);
Matlab reports the BitRate set at 400KHz, but proving the bus, all SCL clocks are 100KHz. How do I get to set the bitrate to 400KHz?
Using Total Phase's Control Center, I am able to send commands at 400KHz. Thus, the Aardvark can generate SCL clocks at 400KHz.
Thanks.
0 件のコメント
回答 (1 件)
Nick Choi
2017 年 10 月 3 日
This seems to be related to a bug that was fixed in MATLAB R2017a.
There is an external bug report published for this issue that has a workaround:
If you set the 'BitRate' and 'PullupResistors' properties before you open the i2c connection with 'fopen', you will be able to observe the change.
参考
カテゴリ
Help Center および File Exchange で Communications Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!