MCU:stm32F767;Keil
配置SPI位模式1(手册指明用SPI模式1),SCLK时钟频率4.5Mhz;
芯片"START"引脚接地,“Pin14 DRDY”悬空,“Pin9 RESET”引脚悬空;
虽然原理图上画了用外部晶振,但是实际上电路板上没有焊接晶振,芯片使用的还是内部晶振。
功能描述:只配置一个寄存器,比如CONFIG3(令CONFIG3=0x1F),然后读取CONFIG3寄存器的值。CONFIG3寄存器地址是07h。
while(1)
{
写0x87 //80h+07h,写寄存器CONFIG3地址
写0x1F //寄存器内容
反转一次片选CS;
写0x47 //40h+07h,读寄存器CONFIG3地址
写0x00 //SPI全双工操作,写任意数据会返回当前寄存器内容;
打印读出的内容;
延迟500ms; //在while循环里反复读写
}
结果显示,读到的数据全为0;示波器查看adc的输出脚,低电平。
SPI的4种工作模式都试了,读到的结果都是0;
我上周是用fpga操作的,adc没有工作。以为是时序没写好,verilog不好调试,就换到了stm32方便调试,每想到啊怎么搞都不能让这个adc工作,就连读寄存器值都读不出来。唉
附ADC原理图:






