Германн 0 20 сентября, 2012 Опубликовано 20 сентября, 2012 · Жалоба Как я с данной АЦП работаю: 1. При включении прибора ничего в регистры АЦП не записываю. Т.е. в них состояние Power-On-Default. 2. При циклических измерениях делаю следующееЖ 2.1. В регистр ADC Control записываю номер канала от 7 до 0 + Unipolar + диапазон 2.56 2.2. В регистр Mode записываю Chop Disabled + Single Conversion 2.3. Читаю регистр ADC Data по появлению ноля на входе NRDY На входе АЦП потенциометр на основе многооборотного регистра. Значение напряжения контролируется тестером. Что вижу: Значения читаемые с АЦП при изменяются от 20-30 дискрет до ~32ххх. При последнем - напряжение на входе ~ 1.2хВ. При дальнейшем увеличении напряжения на входе из регистра ADC Data читается 0xffff (ну или$FFFF или 0FFFFH это как кому понятнее). Вопрос. Что я делаю не правильно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 169 21 сентября, 2012 Опубликовано 21 сентября, 2012 · Жалоба Опишите подробнее, что куда пишете и схему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Германн 0 21 сентября, 2012 Опубликовано 21 сентября, 2012 · Жалоба Опишите подробнее, что куда пишете и схему. Хм. Схему мне прислали в виде - см. приложенный файл. Вроде всё верно сделано в соответствии с даташитом. Над "видом" не смейтесь, пожалуйста. Её автор - отличный аналоговый электронщик советских времен, но на компьютере он пока ниже плинтуса. Что куда пишу. Из основной программы вызываю такую процедуру: ADC7708: MOV DPTR,#ADCarr+14 ; MOV R3,#8 @1: MOV A,#00000010B ;ADC Control Reg LCALL WriteADC MOV A,R3 DEC A SWAP A ORL A,#00001111B ;Canal([R3]-1), Unipolar, 2.56V LCALL WriteADC MOV A,#00000001B ;Mode Reg LCALL WriteADC MOV A,#10000010B ;Chop Disable, Single Convertion LCALL WriteADC @2: JB NRDY,@2 MOV A,#01000100B ;Data Reg LCALL WriteADC LCALL ReadData DEC DPL DEC DPL DJNZ R3,@1 RET Процедура моя. Написана на ассемблере для Intel 8051. Если нужно, представлю реализацию процедур WriteADC и ReadData. P.S. Сейчас пишу спецпрошивку для процессора и тестовую программу для общения с этой прошивкой. ___________________.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 169 23 сентября, 2012 Опубликовано 23 сентября, 2012 · Жалоба Кроме зависаемого ввиду отсутствия таймаута кода, особых замечаний нет. Вообще, забивка результата единицами происходит по какой-либо ошибке. Попутно АЦП выставляет флаг ERR. Общее мнение моё и знакомых — решение с постоянно выбранным CS потенциально практически нерабочее. Тем более, что используется проводной RDY — так что и ноги-то никак не экономятся. Микросхему мы применяем с самого её создания, и проблем не было никаких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Германн 0 23 сентября, 2012 Опубликовано 23 сентября, 2012 · Жалоба Кроме зависаемого ввиду отсутствия таймаута кода, особых замечаний нет. Вообще, забивка результата единицами происходит по какой-либо ошибке. Попутно АЦП выставляет флаг ERR. Общее мнение моё и знакомых — решение с постоянно выбранным CS потенциально практически нерабочее. Тем более, что используется проводной RDY — так что и ноги-то никак не экономятся. Микросхему мы применяем с самого её создания, и проблем не было никаких. Спасибо за ответ. Таймаут обязательно добавлю, но потом, в окочательном релизе. Пока ещё не разобрался полностью со временем этого таймаута. О том, что "решение с постоянно выбранным CS потенциально практически нерабочее" уже читал на gaw.ru (жаль что связь с автором этого сайта я уже давно потерял). Но изготовитель данной мс утверждает, что такое решение допустимо. К тому же доводы, которые приводятся в обоснование этого утверждения, явно не подходят к данной ситуации. Проводной RDY был использован из-за того, что "беспроводной" RDY использовать не получилось. Возможно у меня что-то не правильно с чтением регистра статуса данной мс. А вот экономия ног - как раз важна. Дело в том, что это не новая разработка, а некий "upgrade" старого прибора. У того процессора, который в этом приборе, есть куча незадействованных ног. Но прибор состоит и двух частей. Аналоговой и цифровой. Соединены они шлейфом с разъёмами на обоих концах. Соединять их вдобавок "неразъёмными" проводами ну никак не хочется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Германн 0 28 сентября, 2012 Опубликовано 28 сентября, 2012 · Жалоба Проблема решена. Ошибка была в "основной программе". Но CS решено было всё-таки задействовать, несмотря на заявления АnalogDevices. Мнение С.Гаврилюка решило вопрос. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться