接着上一篇LVDS接口ADC,这篇讲它的SPI配置。SPI的时序图如下,一个三个信号,CSB片选低有效,SCLK时钟,SDIO数据。时钟下降沿发送数据,上升沿采样。然后就是跟厂商密切相关的定义了,这个每个厂商的芯片协议字都不一样,其实就是具体的比特代表的含义。
首位比特:1代表读,0代表写;接下来两位W1:W0,代表后面传输的数据的字节数(这儿有个坑,一会儿说);然后是13位的寄存器地址;然后是发送或接收的数据。
其中W1:W0刚开始寄存器的设置理解有点问题,没有好好看AN-877技术手册,自己想当然的猜测后面一个字节的数据就应该是01,结果00,01,10,11分别对应1,2,3,4个字节。然后由于设置的数据是两个字节,每次传输完一个寄存器的配置它还在等,下一个就会把它冲掉,整个配置就完全错乱了,too young!
接下来就去查寄存器表看看自己需要配置哪些字段,上电之后复位一下AD芯片肯定是不可少的,然后是一些个性化的需求,比如说采样率,传输方式等等。这里我只复位了一下,然后配置了采样率,其它的全部默认。
其中很重要的一个就是配置采样率后要配置寄存器0xFF=0x01,设置采样率覆盖。
最后贴上代码,先复位,然后清空复位,