Вот код инициализации:
Код
setbit(ad_cs_port,ad_cs_pin); //CS->1(desable)
clrbit(ad_res_port,ad_res_pin); //RES->0
delay_ms(100);
setbit(ad_res_port,ad_res_pin); //RES->1
delay_ms(100);
//------------
write_ad(0x20); /* Active Channel is Ain1(+)/Ain1(.), next operation as write to the clock register */
write_ad(0x07); /* master clock enabled, 2.4576 MHz Clock, set output rate to 500Hz*/
write_ad(0x10); /* Active Channel is Ain1(+)/Ain1(.), next operation as write to the setup register */
write_ad(0x44); /* gain = 1, unipolar mode, buffer off, clear FSYNC and perform a Self Calibration*/
clrbit(ad_res_port,ad_res_pin); //RES->0
delay_ms(100);
setbit(ad_res_port,ad_res_pin); //RES->1
delay_ms(100);
//------------
write_ad(0x20); /* Active Channel is Ain1(+)/Ain1(.), next operation as write to the clock register */
write_ad(0x07); /* master clock enabled, 2.4576 MHz Clock, set output rate to 500Hz*/
write_ad(0x10); /* Active Channel is Ain1(+)/Ain1(.), next operation as write to the setup register */
write_ad(0x44); /* gain = 1, unipolar mode, buffer off, clear FSYNC and perform a Self Calibration*/
Вопрос следующий: Правильно ли я инициализирую АЦП для измерения однополярного сигнала?
Когда я замыкаю AIN1+ на землю, то по идеи АЦП должен выдавать 00. Он впрочем и выдаёт нули, но примерно через каждые 4-5 сэмплов идёт помеха – в идее отсчёта от 0x6 до 0x30. Вопрос следующий – это нормально или схемотехника/настройка неправильна.
P.S. В качестве опорника использую TL431AID – так вот чудит микросхема – если у неё на выходе стоит конденсатор 0.1uF то она выдаёт не 2.5в а 2.32 и при этом вроде мусорит на выходе (хотя специально не проверял). Конденсатор убираешь и всё ок. Это нормально?