2017.10.16(I2C和SPI)

今天总工做了两个工作:

1.触摸按键驱动调试完成:

  使用I2C总线通信,主机nrf51822,从机CSS112FE芯片。利用nordic提供的库函数操作i2c通信,这个库函数封装的很好,简洁易用,但是调试过程中也出现一些问题:

  ①i2c写:写的过程中总是有时写成功有时有时不成功,查看原因:一方面是因为i2c总线没有接上拉电阻不稳定,另一方面原因是利用库函数一次操作成功率低,库函数并没有一个很好的失败重试以及超时功能,我把失败重试以及超时功能添加上去就很好的解决这个问题了。

  ②i2c读:我的主要卡在读的上面了,主要还是自己使用库函数api查看不到位,读的时候库函数有个true和false判断,写的时候选择false读的时候应该选择true这个改了后就读成功了。

③i2c地址:通常我们在使用i2c总线的时候是需要在地址的最后一位添加读写位,但是在nrf51822 库函数使用时是不需要添加的全部在函数内部完成了,因此要读写直接写原始地址。

2.外部flash  MX25L1606E的调试

  MX25L1606E是16Mb(2MK)大小,512个扇区,32个块,利用SPI总线通信的flash。调试过程中也遇到了一些问题:

①片选问题:其实这个很简单,由于使用nordic的nrf51822芯片不熟练导致片选一直未成功。IO输出CS引脚为低配置问题。

②硬件mx25l1606e问题,在硬件上芯片的vcc独立,wp引脚接到 电容上,没有接vcc也没有接IO,通常设计是和vcc接在一起的。所以这个问题导致芯片一直不工作。

③另外就是普通的字读和字节写了,这个仅仅是逻辑问题,多调试即可。因为使用nrf51822的库函数使通信变得很简单。

具体nrf51822的i2c和spi总线的具体写法和原理介绍,见我的专题蓝牙nrf51822介绍。


有不对的地方敬请指出。

你可能感兴趣的:(2017.10.16(I2C和SPI))