peotr 0 3 января, 2019 Опубликовано 3 января, 2019 (изменено) · Жалоба Здравствуйте, уважаемые знатоки! Спасите мои мозги от полного расплавления! :( Бьюсь с адукой 845. Итак: ADC0CON1, #00000111b ;+-2.5 V, стр.43 datasheet ADC0CON2, #01000000b ;<=> 040h, Vneshnij REF +-2.5 V, AIN1-AINCOM Другие регистры несущественны для этой темы. На вход подаю реально: 2,758 В, что соответствует 0,258 В квазидифференциального сигнала (Vref=2.5V ) По формуле, предложенной в datasheet: Code = 2^(N-1) * [(AIN / VREF) + 1] Получаем код (использую два старших байта): 2^15*((2.758-2.5)/2.5 + 1) = 36150 <=> 0b 1000 1101 0011 0110 (для наглядности в бинарном коде) – такое должен получить на выходе ADuC, далее нужно вычесть «ноль» = 0х8000, получим: 0b 0000 1101 0011 0110, таким образом, получим искомое значение 3382 (проверял, всё как в аптеке!) НО! У меня на выходе код в реалии: 34397 <=> 0b 1000 0110 0101 1101, что после обработки даст 1629, что в два раза меньше необходимого. Обслюнявил весь даташит, облизал все регистры… Где зарыта проклятая собака, чёрт её знает. П А М А Г И Т Е !!!!!!!!!!!!!!!!!!!!!!!!!!! Ой, что-то над заголовком появилась надпись "Жалоба". Так надо? Вроде, раньше такого не было. Изменено 3 января, 2019 пользователем peotr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lagman 1 21 января, 2019 Опубликовано 21 января, 2019 · Жалоба Наверно вся хитрость тут (выделил жирным): On 1/3/2019 at 6:48 PM, peotr said: ADC0CON2, #01000000b ;<=> 040h, Vneshnij REF +-2.5 V, AIN1-AINCOM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peotr 0 21 января, 2019 Опубликовано 21 января, 2019 (изменено) · Жалоба 2 часа назад, Lagman сказал: Наверно вся хитрость тут (выделил жирным): Простите за тупость. Но перечитал ещё раз даташит: ADC0CON2: 0 1 => REFIN± Selected - верно! 0 0 0 0 => AIN1–AINCOM - квазидифференициальное включение, верно! На REFIN подал +2.5 V - верно! ADC0CON1, #00000111b => +-2.5 V, стр.43 datasheet - верно. (5 UNI Primary ADC Unipolar Bit, = 0 => Bipolar! - верно) Где я туплю??? P.S. Наверное, я ввёл в заблуждение записью REF +-2.5 V , которую я тупо скопировал где-то из даташита. На ножку REFIN я подаю постоянное откалиброванное напряжение 2,5 В. Изменено 21 января, 2019 пользователем peotr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lagman 1 29 января, 2019 Опубликовано 29 января, 2019 · Жалоба On 1/21/2019 at 8:00 PM, peotr said: На ножку REFIN я подаю постоянное откалиброванное напряжение 2,5 В. Тогда не там. Я на 834 делал термометр и датчик давления, у меня таких проблем не было, но у меня везде была дополнительная математическая калибровка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться