当前位置: 代码迷 >> 驱动开发 >> spi片选有关问题
  详细解决方案

spi片选有关问题

热度:8   发布时间:2016-04-28 10:45:53.0
spi片选问题
我现在调试的spi接口,示波器测得片选线和时钟线信号如图1所示,但是我要驱动的芯片是低电平有效的,所以想要得到图2的结果。片选不是GPIO控制,而是要通过配置寄存器控制的。搞了几天都没搞出来, 希望做过相关的兄弟指教指教。
我的平台是dm365



------解决方案--------------------
探讨

C/C++ code

是在
static void bitbang_work(struct work_struct *work)
中的
bitbang->chipselect(spi, BITBANG_CS_INACTIVE);


bitbang->chipselect(spi, BITBANG_CS_ACTIVE);

设置吗?

------解决方案--------------------
bitbang->chipselect(spi, BITBANG_CS_INACTIVE);
bitbang->chipselect(spi, BITBANG_CS_ACTIVE);
是用来使能和禁止片选的,可以在chipselect()函数的具体实现里,通过配置寄存器控制片选;
DM365——Five Serial Port Interfaces (SPI) each with two Chip-Selects
可以通过设置SPIDEF(SPI default chip select register)寄存器设置SPI_SCS信号在空闲的电平状态


------解决方案--------------------
代码怎么这么罗嗦呢

 是用的模板么?
 类似自带库,虽然看起来比较清爽,,但效率肯定是没有自己写的高啊

 其实不如自己从写呀
 不就是根据SPI器件的要求,把片选信号拉低,或拉高嘛

 你示波器都都有了,这个做起来应该非常简单,
------解决方案--------------------
DM365有寄存器: SPIDEF,其低2位,分别决定了从机片选1和2不传送数据时的电平:
即设为00时,如图1情况工作;设为11时,如图2情况工作;
  相关解决方案