10. Программирование микроконтроллеров и схемотехника.
10.1 Простой цифровой вольтметр на основе MSP430G2553 (MSP430G2231).
Есть вещи которыми занимаешься не потому, что нужно, а потому, что интересно.
У меня взникла необходимость сделать простой вольтметр. Точнее сделать его быстро и из тех деталей, которые уже есть. То есть ничего не покупая. Это обычная ситуация на моей работе, когда ничего нет, а вольтметр нужен уже.
Задача делится на две. Подобрать схемотехнику из того что есть и сделать макет, который будет работать. Программу написать «по месту».
Из микроконтроллеров, оказались только MSP430G2011, 2231 и 2553. Все легко программируются с помощью «LaunchPad» и последние имеют встроенное АЦП на 10 разрядов. С точки зрения схемотехники MSP430G2231 имеет один 8-битный порт и один 2-х битный порт (по умолчанию для подключения кварцевого резонатора). MSP430G2553 имеет то же самое, плюс порт на 6 бит. Так как задача простейшая, то «шерстить» интернет, в поисках схемы, не нужно. В первом приближении это должно выглядеть приблизительно так.
Это будет работать, но. 30 мА, которые теоретически может выдать ножка порта, будут распределяться между 7-мью светодиодами индикатора, что около 4 мА на сегмент или 1 мА учитывая динамическую индикацию. Те индикатор светиться будет, но очень тускло.
Эту проблему мы решаем легко и здорово, добавляя 4-ре PNP транзистора. Резистор 10 кОм, наверняка, закрывает транзистор, а 1 кОм ограничивает базовый ток до 3 мА. Теперь индикаторы включаются логическим «0» на выходах Р2.0 – Р2.3.
И эта схема, то же, будет работать, но мы мы «убили» почти все потры ввода-вывода. В том числе Р1.0 – Р1.6, с которыми может работать АЦП. И индикация включается логическими нулями, что совершенно неестественно.
Дешифратор 7-сегментного индикатора (SN7447) преобразует 4-бита в цифру. Комбинация «0000» будет преобразована в «0», «0001» в «1», и тд. Дополнительные символы – на картинке, ниже. С дешифратором SN7447 схема будет выглядеть следующим образом. Дешифратор 2 на 4, позволит преобразовать два бита на входе в низкий уровень на одном из четырех выходов. На «рассыпухе» это выглядит так.
Теперь, для уравления четырьмя 7-сегментными индикаторами, достаточно 6-ти бит. Два для разряда и 4 для сегментов. Поэтому логично освободить 8-ми битный порт Р1.х и использовать 6 бит порта Р2.х. Окончательный вариант схемы на рисунке, ниже. Такая схема позволяет «прозрачно» выводить информацию на индикатор. Младшие четыре разряда содержат цифру, а два старших (Р2.4 и Р2.5) – позицию. Несколько примеров на рисунке.
Что бы вывести 4 в нулевом разряде достаточно записать b_000100 в порт Р2, 5 в первом – b_010101, 9 в третьем – b_111001. Комбинация хх1111 выключает индикацию.