AD7928, 70 dB min SINAD at 50 kHz input frequency
Flexible power/serial clock speed management
No pipeline delays
High speed serial interface SPI®/QSPI™/
MICROWIRE™/DSP compatible
看看管脚定义吧。
老样子,我不翻译英文了,我把比较重要的用红线标示出来了。
看看它的控制寄存器
这是我给控制寄存器配置的数值,什么意思,自己看datasheet吧,很简单的啊。
看好下面的流程,就明白了,这个流程也是写程序的关键。
Data is loaded from the DIN pin of the AD7908/AD7918/AD7928 on the falling edge of SCLK. The data is transferred on the DIN line at the same time that the conversion result is read from the part.就是说我们配置控制寄存器的时候,同时可以读取ADC转换结果。
下面我给出一段程序,网友可以自己修改,达到自己的要求。
- #define DIN P1.0
- #define DOUT P1.1
- #define SCLK P1.2
- #define CS P1.3
- //我设置config_data=0x0833,
- //选择通道0.二进制输出。想修改通道,修改config_data相应的位就好了。
- //data_out是输出的结果,有16bit,后面12bit是ADC结果。
- void Configure_ADC7928(unsigned int config_data,unsigned int *data_out)
- {
- DIN=1;
- DOUT=1;
- SCLK=1;
- CS=1;
- Delay(10);
- CS=0;
- for(char i=0;i<16;i++)
- {
-
- if((config_data<<i)&0x0100)
- DIN=1;
- else
- DIN=0;
- Delay(10);
- SCLK=0;
- Delay(10);
- SCLK=1;
- Delay(10);
- if(DOUT)
- *data_out=((*data_out)<<i)||0x0001;
- else
- *data_out=((*data_out)<<i)&0xFFFE;
-
- }
- CS=1;
- }
阅读(5783) | 评论(0) | 转发(0) |