BratInt 0 6 февраля, 2012 Опубликовано 6 февраля, 2012 · Жалоба Необходимо измерить сигнал с помощью АЦП МК MSP430G2231. Использую канал 1.3. Опор - внутренний источник 1,5 В. Источник сигнала - генератор, который даёт синус амплитудой 0,6 В, частотой в десятые Герца. АЦП подключается через резистор 10к к плюсу генератора, а плюс и минус генератора соединены через резистор 16к (резисторы на всякий пожарный, чтобы не сжечь). А вот где земля АЦП, мне найти не удалось. В руководстве сказано - её роль играет некая внутренняя аналоговая земля МК AVss, но вот что это за земля, и как её вывести на какой-то канал - осталось загадкой... Поэтому без земли результаты получились такими: измеренное значение варьируется в пределах 500-800, когда на АЦП подаётся синус. А вот если соединить вход АЦП с землёй генератора, то он будет показывать 444±3. А если не подключать АЦП ни к чему, то покажет 1023. Как с этим быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 6 февраля, 2012 Опубликовано 6 февраля, 2012 · Жалоба В этом МК нет отдельных выводов AVCC и AVSS. АЦП запитан от DVCC и DVSS. Измерение проводится относительно VR- и VR+, см. блок-схему Figure 22-1. ADC10 Block Diagram в User's Guide (стр.549). К VR- могут быть подключены AVSS=DVSS, вывод внутренней опоры VREF- или вывод внешней опоры VeREF-. AVSS подключается внутренне, а VREF- и VeREF- совмещены на одном пине (P1.3). К VR+ могут подключаться AVCC=DVCC, VREF+ или VeREF+. VREF+ и VeREF+также совмещены на одном пине (P1.4). Отличия в том, что VREF- и VREF+ это выводы встроенного ИОН и они являются его выходами, а VeREF- и VeREF+ это входы для подключения внешнего ИОН. Следует учитывать этот нюанс при настройке функций пинов (см. Table 19 и Table 20 в datasheet). Ну и также не стоит выходить за допустимые диапазоны входных напряжений для этих пинов, которые приведены в datasheet на стр.29, таблица 10-Bit ADC, External Reference. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 7 февраля, 2012 Опубликовано 7 февраля, 2012 · Жалоба Спасибо! Но получается вот что. Установлено 1,5 В VREF+, а VREF- - AVss. Но я соединил цифровую землю МК со входом АЦП через 10к - так АЦП выдал 432. А почему не 0? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 7 февраля, 2012 Опубликовано 7 февраля, 2012 · Жалоба Потому, что знакопеременный сигнал нельзя измерить подав напрямую на унипорлярный вход. При таком подключении вы выходите за диапазон допустиммых синфазных напряжений. Амплитуда сигнала 0,6В означает, что в одну половину периода пиковое значение достигает +0,6В, а во вторую половину -0,6В. АЦП же может измерять напряжение только от диапазоне от VREF- до VREF+. т.е. от 0В до 1,5В. Чтобы подать на вход АЦП знакопеременный сигнал вы должны сделать схему смещения уровня, сместив входной сигнал на VREF/2. Тогда входной сигнал АЦП будет не -0,6В...+0,6В, а от 1,5В/2-0,6В=0,15В и до 1,5В/2+0,6В=1,35В. Нулем будет значение VREF/2=0,75В. Ну либо следует использовать МК с другим АЦП у которого дифференциальный вход (модуль SD16, напрмиер). Схемы смещения уровней обсуждались неоднократно на форуме в разделе В помощь начинающему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 7 февраля, 2012 Опубликовано 7 февраля, 2012 · Жалоба Всё же непонятно. Если подавать на АЦП сигнал с цифровой земли микроконтроллера, то по формуле N = 1023 * (Vin - VR-) / (VR+ - VR-) должно получиться 0, т.к. Vin = VR- = AVss. Но получается 432. Померил напряжение между землёй и входом АЦП P1.3 - а там вдруг 3,5 В - уровень "1" МК. Это не нормально? Хотя кое-что понятно. Когда вход с землёй соединены резистором 10 кОм, то напряжение между ними 0,64 В. А это напряжение как раз и равно 436, почти 432. Попробовал вместо внутреннего 1,5 В использовать основной источник 3,5 В для АЦП - в этом случае показывает 182, что тоже близко к рассчётному 184. Остаётся непонятным - откуда потенциал на входе АЦП? Код инициализации такой: WDTCTL = WDTPW + WDTHOLD; P1DIR = BIT0+BIT4+BIT5+BIT6+BIT7; P1OUT = 0; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; BCSCTL2 &= ~(DIVS_3); TACTL = TASSEL_2 + MC_2 + ID_3; CCTL0 = OUT; P1SEL |= TXD + RXD; P1DIR &= ~ (RXD+BIT3); P1DIR |= TXD; ADC10CTL1 = INCH_3 + ADC10DIV_2; ADC10CTL0 = SREF_1 + ADC10SHT_0 + REFON + ADC10ON + ADC10IE; // 1,5 В // ADC10CTL0 = SREF_0 + ADC10SHT_0 + ADC10ON + ADC10IE; // 3,5 В А TXD и RXD - BIT1 и BIT2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 7 февраля, 2012 Опубликовано 7 февраля, 2012 · Жалоба BratInt, извините за нескромный вопрос, который в последнев время хочется задавать все чаще, но я уж опасаюсь это делать: каков ваш уровень образования в теме электричества: школьный курс физики, радиолюбитель, студент-теоретик, инженер без практики или вообще программист? Я не хочу вас обидеть или унизить, мне просто нужно понять, на каком урвоне вам следует объяснять? Пока мне не это очень понятно. Вы основные документы по теме: User's Guide и datasheet, ссылки на которые я давал ранее, тщательно изучили? См. на картинки. Первая это то, что вы делаете и получаете. Вторая это то, как должно быть, чтобы сигнал оцифровывался правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 7 февраля, 2012 Опубликовано 7 февраля, 2012 · Жалоба BratInt, извините за нескромный вопрос, который в последнев время хочется задавать все чаще, но я уж опасаюсь это делать: каков ваш уровень образования в теме электричества: школьный курс физики, радиолюбитель, студент-теоретик, инженер без практики или вообще программист? Я не хочу вас обидеть или унизить, мне просто нужно понять, на каком урвоне вам следует объяснять? Пока мне не это очень понятно. Вы основные документы по теме: User's Guide и datasheet, ссылки на которые я давал ранее, тщательно изучили? Программист. Документы изучил, тем более что это руководство у меня есть в переводе А.В.Евстифеева. См. на картинки. Первая это то, что вы делаете и получаете. Вторая это то, как должно быть, чтобы сигнал оцифровывался правильно. Не совсем это. В последнем опыте, где было получено 432 и 182, подаю не синус, а константу - ADss. Вопрос в том, что напряжение между входом АЦП и землёй микроконтроллера (а не генератора) - 3,5 В, хотя такого должно быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 7 февраля, 2012 Опубликовано 7 февраля, 2012 · Жалоба Программист. Документы изучил, тем более что это руководство у меня есть в переводе А.В.Евстифеева.Не читайте перед обедом советсикх газет переводы, пользуйтесь оригинальной документацией! Вопрос в том, что напряжение между входом АЦП и землёй микроконтроллера (а не генератора) - 3,5 В, хотя такого должно быть?Сомневаюсь, что читали внимательно :( Для того, что пин стал аналоговым входом АЦП, его функцию нужно правильно запрограммировать. См. таблицы в конце datasheet, там, где нарисованы блок-схемы всех пинов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 8 февраля, 2012 Опубликовано 8 февраля, 2012 · Жалоба Сомневаюсь, что читали внимательно :( Для того, что пин стал аналоговым входом АЦП, его функцию нужно правильно запрограммировать. См. таблицы в конце datasheet, там, где нарисованы блок-схемы всех пинов. Добавил ещё строчку ADC10AE0 = BIT3; ничего не изменилось. Попробовал в качестве входа АЦП использовать P1.6 - а на нём всё работает безукоризненно, значения те, что и должны быть... При этом на P1.3 всё-равно остаётся уровень "1", хотя не должен быть. Посмотрел регистры - ничего подозрительного, единственное - 2 отличия: P1IN - "1" для 3 и "0" для 6. P1IFG - "0" для 3 и "1" для 6. При этом второй регистр - флаги прерываний, не должен влиять. А вот первый попробовал принудительно загнать P1IN=0, но значения всё равно восстановились сами... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 15 февраля, 2012 Опубликовано 15 февраля, 2012 · Жалоба Из каких соображений выбирать сопротивление между входом АЦП и генератором? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 20 февраля, 2012 Опубликовано 20 февраля, 2012 · Жалоба Неужели никто не в курсе? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 20 февраля, 2012 Опубликовано 20 февраля, 2012 · Жалоба Из каких соображений выбирать сопротивление между входом АЦП и генератором? Если бы у вас были сотни МГц и длинная линия, то имело бы смысл делать согласование по волновому сопротивлению: выход - канал передачи - вход. Но вы не соблаговолили ни схему подключения нарисовать, ни даже просто уточнить наличие/отсутствия схемы смещения уровней. Что вам тут можно посоветовать? :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 28 февраля, 2012 Опубликовано 28 февраля, 2012 · Жалоба Схема смещения не понадобилась, поскольку сигнал и так смещён относительно земли. Так что всё, вопрос пока закрыт! Ещё раз спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 29 июня, 2012 Опубликовано 29 июня, 2012 · Жалоба Возникла новая проблема. Вот уже несколько раз сталкивался с тем, что показания АЦП не соответствуют входному напряжению. Вот в частности, на вход подаётся 1,14 В - смотрел мультиметром. А АЦП говорит - 778, хотя опорное 2,5 В! А оказывается, что этот результат соответствует 1,5 В. Но потом, через несколько минут, АЦП начинает говорить уже 467, что как раз соответствует, и после этого работает правильно. Хотя входное напряжение не изменяется (те же 1,14 В). Микроконтроллер запрограммирован именно на опорное напряжение АЦП 2,5 В, оно устанавливается только в самом начале инициализации и больше не меняется. И вобще схема правильно работала несколько месяцев, но только сейчас ни с того ни с сего начала барахлить. С чем это может быть связано? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BratInt 0 2 июля, 2012 Опубликовано 2 июля, 2012 · Жалоба Мог ли "сломаться" микроконтроллер / встроенный ИОН, или причина в чём-то другом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться