我有OMAP-L138实验套件,我想与SPI 1芯片选择1上设置的一个外围设备进行通信(SPI1芯片上还有闪存选择0)。
我很困惑应该使用哪些寄存器来选择芯片1?
根据OMAP-L138 Technical Reference Manual,我应该
设置4针模式
spi-> SPIPC0 = SOMI | SIMO | CLK | SCS0; //带芯片选择的4引脚模式
设置1位SPIPC0.SCS0FUN以显示SPI_CS1 - 是SPI功能引脚
SETBIT(spi-> SPIPC0,0x00000002);
设置SPIDAT1.CSNR的17位(这意味着SPI_CS1引脚被驱动为高电平。)
spi-> SPIDAT1 = 0; SETBIT(spi-> SPIDAT1,0x20000); //设置第17位(对应于SPI_CS1)
设置1位SPIDEF.CSDEF(这意味着SPI_CS1引脚被驱动为高电平。)
spi-> SPIDEF = 0; SETBIT(spi-> SPIDEF,0x00000002); //在CSDEF字段中设置第1位(对应SPI_CS1)
最后,在从SPI1_CS1器件读取数据之前,我应该将SPIDAT1.CSHOLD设置为保持有效芯片选择信号
SETBIT(SPI-> SPIDAT1,0x10000000); //设置代表CSHOLD的第28位
这是正确的还是我错过了什么? 也许我还需要用PINMUX5(引脚多路复用控制5寄存器)做些什么? 谢谢!
答案 0 :(得分:1)
似乎我已经弄明白了。
设置寄存器PINMUX5的第4位 - 选择功能SPI1_SCS [0]
EVMOMAPL138_pinmuxConfig(5,0x00FFFFF0,0x00111101); //启用芯片选择1 EVMOMAPL138_pinmuxConfig(5,0x00FFFFF0,0x00111110); //启用芯片选择0