Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Попробовал ADG506A в действии

Сегодня наконец-то у меня появилось время, чтобы проверить, как же работает аналоговый коммутатор. А работает он превосходно.

Итак, я взял макетку, воткнул в нее ADG506A и соединил все аналоговые входы мелкоомными (200..900 Ом) резисторами. К S1 подключил "землю", а к S16 — +3.3В с макетки STM32. Запитал микросхему я старым БП от внешнего HDD (он дает два напряжения: 5В и 12В с общей землей).
Подключил, проверил — работает! Правда, заработало не сразу: после первого запуска все каналы, кроме первого, показывали 0xfff, а первый показывал 0. Сразу понятно, что между первым и вторым каналом плохой контакт у резистора на макетке. Резистор воткнул посильней — пошло напряжение.
Однако, мне не понравился предыдущий алгоритм работы, когда нагрузка опрашивалась постоянно, поэтому опрос всего аналогового хозяйства я повесил на функцию выдачи измеренных значений. Теперь нагрузка будет подсоединяться к АЦП только во время измерения по запросу. Чуть подправленный вариант я положил туда же, все равно исправления минимальны.
Стабильность АЦП получилась уж очень хреновенькая: значения плавают иной раз аж на 20 единиц!
Вот, например, такие получаются показания:
Temperature 0x00  = 0x00 0x00 
Temperature 0x01  = 0x00 0x84 
Temperature 0x02  = 0x00 0xaf 
Temperature 0x03  = 0x01 0xdb 
Temperature 0x04  = 0x03 0x10 
Temperature 0x05  = 0x03 0xe4 
Temperature 0x06  = 0x05 0xca 
Temperature 0x07  = 0x06 0x9b 
Temperature 0x08  = 0x07 0x4e 
Temperature 0x09  = 0x08 0xd6 
Temperature 0x0a  = 0x0a 0x04 
Temperature 0x0b  = 0x0a 0xb4 
Temperature 0x0c  = 0x0b 0xfc 
Temperature 0x0d  = 0x0d 0xe0 
Temperature 0x0e  = 0x0e 0xb7 
Temperature 0x0f  = 0x0f 0xff

А при следующем опросе — такие:
Temperature 0x00  = 0x00 0x00 
Temperature 0x01  = 0x00 0x7f 
Temperature 0x02  = 0x00 0xaf 
Temperature 0x03  = 0x01 0xdf 
Temperature 0x04  = 0x03 0x0f 
Temperature 0x05  = 0x03 0xe4 
Temperature 0x06  = 0x05 0xcc 
Temperature 0x07  = 0x06 0x9d 
Temperature 0x08  = 0x07 0x5a 
Temperature 0x09  = 0x08 0xd6 
Temperature 0x0a  = 0x0a 0x01 
Temperature 0x0b  = 0x0a 0xb5 
Temperature 0x0c  = 0x0b 0xfc 
Temperature 0x0d  = 0x0e 0x09 
Temperature 0x0e  = 0x0e 0xb0 
Temperature 0x0f  = 0x0f 0xec 

В общем, надо будет либо попробовать добавить стабильный источник опорного напряжения (да и измеряемую цепь питать оттуда же), либо вообще использовать внешний АЦП.
Кстати, глянул я, какие же значения сопротивления у платиновых элементов: порядка 20..50 Ом! Т.е. придется все-таки мне еще усилитель городить. Как говорится, как она ни плакала, а все равно померла!

Вот, кстати, даже видео снял на веб-камеру (качество, правда, получилось жуткое: вебка-то дешевенькая).
Tags: stm32, железяки
Subscribe

  • Youtube streaming

    Сегодня опять "тимс" отвалился, так что я попробовал сделать стрим на youtube. OBS нормально отработал, разве что в "живом" режиме картинка и звук…

  • Лекция о БТА

    На канале фонда "Траектория" официально выложили лекцию о БТА. Жаль, что на съемки выделялось очень мало времени. В итоге мой сценарий пошел коту…

  • Лекция по БТА

    Я уже писал о том, что участвовал в съемках лекции для очередной АФШ. Сегодня ее выложили на youtube. Жаль, времени было мало (да и лимит поставили…

promo eddy_em september 3, 12:13 8
Buy for 10 tokens
Уже больше полугода занимаюсь разработкой, вот, наконец-то в мастерских взялись за меня и начали выдавать первые детали. Сегодня сделал тестовую сборку (как обычно, местами пришлось "доработать напильником"): Пока прибор без названия (да и как-то не лезет в голову ничего, у меня нет…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 3 comments