Твердотельный диктофон с использованием MSP430
Резюме
С введением встроенной программируемой в системе (ISP) Flash памяти реализовалась обещанная рентабельность перепрограммируемых микроконтроллеров MSP430. Встроенное программное обеспечение, зашиваемое в микроконтроллер на этапе производства, позволяет обновлять программу в установленных в устройство микроконтроллерах без использования дополнительных внешних элементов. В данном примере применения демонстрируется гибкость внутрисистемного программирования Flash памяти на примере цифрового диктофона. Кроме того, что MSP430 осуществляет аналого-цифровое и цифро-аналоговое преобразования звукового сигнала, так он еще и записывает его во встроенную Flash память микроконтроллера в реальном масштабе времени. В этом примере применения описывается возможность использования памяти программы для хранения динамически изменяющихся данных.
1 Введение
Введение микроконтроллеров MSP430 с Flash памятью принесло большую гибкость различным устройствам. Возможность внутрисистемного программирования и срок хранения данных при отключенном питании не менее 10 лет идеально удовлетворяют требованиям самых различных устройств. В данном примере применения использован микроконтроллер MSP430F149, являющийся членом семейства 1xx микроконтроллеров MSP430 с Flash памятью. Этот прибор был выбран потому, что он имеет 60 КБ встроенной Flash памяти, способной хранить в себе до 10 секунд речевых сообщений, и 12 битный АЦП, производящий оцифровку сигнала. В данном примере применения рассматриваются следующие вопросы:
- Внутрисистемное программирование Flash памяти микроконтроллеров семейства MSP430
- Программирование Flash памяти MSP430 в реальном масштабе времени
- Работа микроконтроллера MSP430x13x/14x с высокочастотным кварцевым резонатором
- Использование встроенного 12 битного аналого-цифрового преобразователя в реальном масштабе времени
- Обмен данными MSP430 с TLV5616
- Применение операционного усилителя TLV2252 и усилителя мощности TPA721 производства компании TI совместно с MSP430
- Работа MSP430 в смешанно-сигнальном режиме от 3 В питания
2 Аппаратная часть
2.1 Краткий обзор системы
Рисунок 1. Структурная схема
На рисунке 1 показана структурная схема описываемого устройства. На ней отдельно показаны цифровые и аналоговые узлы. Стрелками показано направление передачи сигналов от микрофона до динамика. Использованные периферийные модули микроконтроллера показаны внутри блока MSP430F149. Обратите внимание на встроенный 12 битный аналого-цифровой преобразователь ADC12. Встроенный в MSP430F149 аналоговый мультиплексор позволяет коммутировать ко входу ADC12 восемь аналоговых каналов. В данном примере применения оцифровывается только аналоговый сигнал на входе А0. Предварительно усиленный и отфильтрованный аналоговый сигнал с выхода микрофона подается напрямую на вход А0 микроконтроллера MSP430. При записи активны только эти два блока. При проигрывании сохраненные данные поступают из MSP430 в ЦАП по последовательному USART SPI порту. Активный фильтр сглаживает выходной сигнал ЦАП. Далее отфильтрованный сигнал подается на усилитель мощности, к выходу которого подключен динамик.
2.2 Аналоговая аппаратная часть
Рисунок 2. Предварительный микрофонный усилитель и фильтр
На рисунке 2 показан предварительный микрофонный усилитель и фильтр. Электретный микрофон преобразует акустический речевой сигнал в аналоговый электрический сигнал, который затем усиливается предварительным усилителем на базе операционного усилителя TLV2252. TLV2252 - низковольтный низкопотребляющий сдвоенный операционный усилитель, одна часть которого используется для усиления микрофонного сигнала, а другая - для построения активного фильтра низких частот (ФНЧ), который используется для сглаживания выходного сигнала ЦАП. TLV2252 выбран из-за того, что он способен работать от однополярного 3 В источника питания и имеет низкий ток покоя. Перед подачей аналогового сигнала на вход встроенного АЦП необходимо ограничить его полосу. С этой задачей вполне справляется простой аналоговый RC фильтр, который в нашем случае включен на выходе предварительного микрофонного усилителя и имеет полосу пропускания 2.7 кГц. Конденсатор C4 в цепи обратной связи операционного усилителя также обеспечивает некоторый спад коэффициента передачи на верхних частотах. Фактически этот фильтр предназначен для исключения процесса передискритизации после осуществления выборки сигнала. Частота среза фильтра, равная 2.7 кГц, удовлетворяет требованиям теоремы Котельникова так как дискретизация в нашем случае осуществляется с частотой 5.5 кГц. Частота дискретизации 5.5 кГц выбрана в качестве компромиссного решения между качеством записываемой речи и максимально возможной длительностью записи. При упомянутых выше параметрах во встроенную Flash память можно записать около 6 секунд речи. Речевой сигнал после 12 битного преобразования без всякого сжатия записывается во встроенную Flash память. Сжатие голоса по 8- битному А- или ?- закону позволит увеличить длительность записываемого голоса до 12 секунд.
Рисунок 3. Последовательный ЦАП и фильтр
На рисунке 3 показаны последовательный ЦАП и сглаживающий фильтр. Использованный в данном примере применения последовательный ЦАП TLV5616 производства компании TI способен работать от однополярного 3 В источника питания и имеет DNL = 0.5 LSB. ЦАП получает данные от встроенного в MSP430 USART по SPI интерфейсу. MSP430 передает в ЦАП по SPI интерфейсу 16-разрядное за счет использования функции двойной буферизации встроенного USART модуля. ЦАП TLV5616 формирует потенциальный сигнал, который непосредственно с выхода подается на сглаживающий фильтр, изготовленный на основе операционного усилителя TLV2252. Этот узел является активным фильтром второго порядка. Перед подачей полученного сигнала на динамик, его необходимо еще усилить.
На рисунке 4 показан усилитель мощности звуковой частоты (УМЗЧ). Он реализован на основе усилителя мощности TPA721 производства компании TI. TPA721 имеет диапазон напряжения питания от 2.5 В до 5 В. Выходной мостовой усилитель (BTL) TPA721 при 3 В питании обеспечивает на 8 Ом динамике сигнал с размахом приблизительно 6 В. Также BTL устраняет необходимость использования разделительно-накопительного конденсатора. TPA721 выпускается в 8 выводном MSOP корпусе, называемом еще PowerPAD корпусом, для поверхностного монтажа. Обратите внимание, что на рисунке 4 показан RC фильтр низких частот, состоящий из резистора R13 и конденсатора C9, который предназначен для развязки по питанию.
Рисунок 4. Усилитель мощности звуковой частоты
2.3 Цифровая аппаратная часть
Рисунок 5. Схема подключения MSP430F149
Цифровая аппаратная часть состоит из микроконтроллера MSP430F149 и пассивных элементов его обвязки. Встроенные периферийные модули микроконтроллера облегчают разработку цифровой части устройства и позволяют назвать его "системой на кристалле" ("System in a Chip"). Задающий генератор MSP430 работает с внешним 3.58 МГц керамическим резонатором. Резонатор, используемый в этом примере применения, имеет встроенные нагрузочные конденсаторы. Таймер B7 используется для формирования сигнала прерывания, по которому происходит выборка аналогового сигнала. Таймер B7 тактируется от стабильных 3.58 МГц колебаний. Тактирование его сигналом со стабильной частотой вызвано тем, что нестабильность частоты дискретизации влияет на качество записи и воспроизведения речи. Выбранный аналоговый речевой сигнал оцифровывается встроенным 12 битным АЦП ADC12 микроконтроллера MSP430. Обратите внимание, что питание аналоговой и цифровой аппаратных частей разделено. Также должны быть разделены и цепи общих линий.
Оцифрованный речевой сигнал сохраняется во встроенной Flash памяти программы микроконтроллера. В режиме воспроизведения в той же самой последовательности и с той же частотой данные из памяти поступают в ЦАП через USART, работающий в режиме SPI интерфейса. ЦАП преобразует данные в аналоговый сигнал, сглаживающий фильтр восстанавливает его, а УМЗЧ усиливает и подает его на динамик.
3 Программное обеспечение
Прикладная программа для данного примера применения написана на ассемблере в интегрированной среде разработки IAR KickStart. Основная память MSP430F149 разделена на 120 сегментов, адреса которых лежат в пределах от 1100 до FFFFh. С нулевого по 118 сегменты имеют размер 512 байт, а 119 сегмент - 256 байт. Нулевой сегмент содержит вектора прерываний и поэтому он не должен изменяться при выполнении программы. Еще два сегмента (А и В), имеющие размер по 128 байт, используются в качестве информационной памяти прибора. Пользователь может использовать эту память для хранения идентификационного кода прибора. Также информационная память может использоваться в качестве замены EEPROM памяти или для хранения выполняемого кода. Однако в данном примере применения информационная память не используется.
Код прикладной программы записан в память начиная с адреса 1100h - начального адреса основной памяти. Откомпилированная программа имеет объем 346 байт и занимает 119 (256 байт) и 118 (90 байт из 512 байт) сегменты. В нулевом сегменте записаны вектора прерываний. Остальные сегменты с первого по 117 предназначены для хранения записанной речевой информации. Эти 117 сегментов занимают объем памяти с адресами от 1400h по FDFFh. При записи оцифрованный речевой сигнал записывается последовательно во Flash память, а при воспроизведении - считывается оттуда.
Программа выполняется в двух режимах - запись и произведение. Выбор режима осуществляется нажатием кнопки управления. При включении система переходит в режим воспроизведения и сразу проигрывает записанное речевое сообщение. Во включенном состоянии в режиме воспроизведения диктофон непрерывно повторяет записанное в него сообщение. Для перехода в режим воспроизведения необходимо выполнить следующие действия. При проигрывании сообщения необходимо нажать и удерживать кнопку записи. После этого светодиод начнет мигать, показывая, что Flash память очищена и готова к новой записи. Отпустите кнопку и говорите в микрофон. Сообщение запишется во Flash память, а когда память заполнится полностью - светодиод погаснет, показывая, что запись окончена. После этого система вновь перейдет в режим непрерывного повтора записанного сообщения.
Обратите внимание, что Flash память может программироваться и стираться только в том случае, если напряжение питания MSP430 больше или равно 2.7 В. Это описано в техническом описании на данный микроконтроллер. Если напряжение питания падает ниже 2.7 В из-за разряда батареи, то система не сможет записать речь. Однако, воспроизведение возможно да того момента, пока напряжение источника питания не станет ниже допустимого для использованных аналоговых микросхем.
Замечание: Устройство, описанное в данном примере применения, не предназначено специально для записи речевых сообщений. Это только пример внутрисистемного программирования (ISP) Flash памяти в реальном масштабе времени и выполнения микроконтроллером MSP430 операций, свойственных для DSP. Для упрощения реализации в данном примере применения не осуществляется сжатие речевого сигнала. Компания TI выпускает ряд приборов, специально предназначенных для записи речи. Ознакомиться с ними можно в интернете по адресу http://www.ti.com/sc/docs/products/speech/index.htm.
Пример программы:
|
|
101Kb Исходный фаил |
|
|
RUS Демонстрационная программа F149VoiceDemo.s43 |
|
|
4Kb Фаилы программ |
АБЗ - асфальтобетонный завод
|