[讨论] 怎么让tms320c6678 SPI的CLK每次输出8个时钟周期

limingtai   2018-12-21 15:59 楼主
6678通过SPI接口读写EEPROM, EEPROM需要先写使能,然后才能写,而写使能是要求先写指令0x06, 要求在最后一BIT写完之后CS必须拉高,而6678的SPI口每次传输都触发16个时钟周期。这就造成不能正确的进行写使能,怎么能够解决这一问题?即使我把6678SPI控制寄存配置为一次传输8BIT,经过测试发现还是每次输出16个时钟。而我的硬件方案是EEPRO的CS是通过其他总线进行设置的,没有用6678SPI的CS,只是用他的时钟 和两个数据线。怎么让6678SPI的CLK每次输出8个时钟周期?很多EEPROM的控制字都是8BIT,对片选信号的要求都在在8BIT的结束时翻转CS.  即使把6678SPI控制寄存配置为一次传输8BIT也是输出16个时钟周期。能不能解决这个问题?SPIDAT1低16位必须完整的传输才能结束一次传输吗?能不能只传八位,并且时钟也对应输出8个周期。  急求大神指导!!!!非常感谢
QQ:402781359


回复评论 (2)

不会帮顶
为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
点赞  2018-12-22 10:29

*((uint8_t*)&(SPI1->DR)+1) = dat;     先找到DR寄存器的地址,再用一个八位的指针指向这个地址,现在指向的是DR寄存器的开头,那么指针+1,指针指向了DR寄存器的低八位

点赞  2021-9-8 16:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复