void Read_ADC(void) //AD7789
{
unsigned a,b,c;
ADC_sel = 0; //CS ADC
while (ADC_BUSY); //RDY=0
spi(0xFF);
spi(0xFF);
spi(0xFF); //Reset ADC
spi(0xFF);
while (ADC_BUSY);
spi(0x38); //Continuous converstion mode
a=spi(0x00);
b=spi(0x00);
c=spi(0x00);
ADC_sel = 1;
}
вот диаграмма из ДШ
Делаем ему reset. Непонятно, что значит повышение напряжения на 0,5В на линии MISO и почему на этой линии устанавливается 1 после 30 тактов(ресет происходит по 1 на линии MOSI в течение 32 тактов)
Записываем 0x38 в communication register и читаем 3 байта данных. Все единицы. Если после записи в регистр поставить while (ADC_BUSY), то он там и остается, т.е. 0 там не устанавливается вообще.
сигналы: clock(yellow), MOSI(blue), MISO(purple), CS(green)