Емельянов Эдуард Владимирович (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

  • Опять Подорванка смыла мост

    В четверг лило настолько, что, похоже, опять на подорванке забилась стремнина бревнами, а потом внезапно это все прорвало. МЧСовсцы перетаскивали…

  • Diskworld

    Смотрели вчера с женой на кухне "Крепкого орешка" и зацепился мой взгляд за дочкину поделку: Я жене и говорю: прямо-таки просится эти белые…

  • Юпитер и Сатурн

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

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 3 comments