如何通过R2016A通过SPI从EEPROM的特定部分读取?

2次查看(最近30天)
我正在使用C2000 TI支持包,我需要设置SP万博1manbetxI块读/写到EEPROM中的特定地址。
我正在使用MATALB R2016a,目前升级不是一个选项。
我正在使用TMS320F28335微控制器,微芯片是25LC128 EEPROM(128kbit)
有什么我可以使用的解决方法吗?

接受的答案

Mathworks支万博1manbetx持团队
编辑:Mathworks支万博1manbetx持团队 2020年5月18日
由于工作流在MATLAB R2016a中不能直接使用,最好的替代方案是升级到MATLAB的更新版本,在那里整个过程将更加容易。这将节省你很多时间。但是,如果这是不可能的,我在下面添加了一个工作区,它可能有助于实现自定义解决方案。
下表总结了MATLAB R2016a中的SPI块与最近发布的版本之间的一些重要区别。
1.考虑到MATLAB R2016a的这些限制,您将需要做以下工作,以确保您可以从EEPROM成功地写和读。
2.为了写,你将首先需要发送一个写序列如下所示。这包括发送8位写启用命令。观察芯片选择。为了完成手术,它必须走高。不幸的是,在R2016a中我们不能使用块的多个实例。因此,这个初始化命令需要在自定义代码块中执行,通过编写c-code,这样我们就可以用write ENABLE命令编写SPI TX FIFO缓冲区。请注意,你将必须实现一个while循环,以等待SPI Rx缓冲区丢弃虚拟字节和de-assert芯片选择,如果需要。参考下面第7点。
3.在运行时,当我们需要发送字节写使用write命令,即以下序列:
您可以使用SPI Tx块和字节打包数据值,以每个1字节的包发送它们。如何做到这一点,可以从本页的模型中学习:
4.您将以每个1字节的包发送数据,因此在配置中选择比特数为8。
5.您应该确保还使用SPI读块来丢弃写入操作期间传入的虚拟数据,以保持Rx FIFO的干净。参见第7点
6.由于只有一个块的实例可用,因此需要在Rx和Tx块周围设计逻辑,使得当需要写入操作时,TX块发送写命令,并且相关数据和RX块丢弃所接收的虚拟数据.对于读取,TX块现在发送读取命令和虚拟字节,而读块读取实际数据。
7.另外请注意,Tx和Rx操作必须一起使用。Tx断言芯片选择并开始传输,而Rx去断言芯片选择并读取数据。因此,它们一起实现了一个SPI数据传输序列。
8.在读取以下操作的数据时,同样的描述也成立。

更多的答案(0)

s manbetx 845


释放

R2016a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!