четверг, 14 февраля 2013 г.

как на ножку avr послать данные

Оставьте комментарий!

Спасибо за статью, очень помогла в подготовке к экзамену! Так как информации в сети по этому вопросу крайне мало, а в литературе основной объем занимают методы обмена данными, но сама не процедура подключения.

Здравствуйте Dmitry! Хочу выразить вам благодарность, за эту статью, она мне очень помогла по учёбе. Если вам не трудно, я бы хотел с вами по поводу неё немного поговорить, пришлите мне письмо на armakon@bk.ru

Еще записи по теме

Понадобилось мне тут недавно подключить к МК внешнее АЦП на 12 бит по SPI. И в этой статье решил рассказать, что из этого получилось. В первую очередь, хотелось чтобы это АЦП можно было подключить к МК в Протеусе и получить результат там. Покапавшись по интернету и посмотрев цены, остановился на 12-и битном одноканальном АЦП фирмы MCP3201. Самого MCP3201 в Протеусе нет, но есть 10-и битный MCP3001. Отличается он от MCP3201 лишь тем, что он 10-ти битный и поэтому есть небольшое отличие в обработке уже полученных данных, а получать с него данные также как с 12-и битного. Но обо всем по порядку.Основные характеристики MCP320112 битИнтерфейс SPIДиапазон напряжения питания: 2.7-5.5 ВНизкое энергопотребление100ksps при питании 5В50ksps при питании 2.7В Цоколевка микросхемы показана на рисунке нижеНазначение ножек:Vref - опорное напряжениеIN+ - положительный аналоговый входIN- - отрицательный аналоговый входVss - земляCS - выбор чипаDout - выход данныхCLK - синхроимпульсыVDD - питаниеДля работы с АЦП по SPI нужно знать, что обмен данными в SPI представляет из себя обмен между двумя регистрами. Это значит, что если мы отсылаем байт на АЦП, то после передачи в регистре SPDR будет байт, который находился в АЦП. Зная это, открываем даташит на MCP3201 и находим раздел в котором описывается подключение к МК и видим там рисунок, показывающий что нужно выставить на ножках SPI, чтобы забрать данные с АЦП.А делается это очень просто. Подаем с МК на CLK синхронизирующие импульсы и по нужному фронту (в зависимости от режима SPI) забираем данные с ножки DO. Как видно из рисунка, нужно получить два байта с АЦП, а потом из этих байтов собрать с использованием битовых операций (см. ) 12 бит данных.Теперь после того как мы разобрали, на примере MCP3201, характеристики и принцип работы АЦП хотелось бы вернуться к 10-ти битному MCP3001, так как именно его мы будем моделировать в Протеусе. Отличие заключается в том, что биты в полученных данных находятся в других позициях.В конце статьи можно скачать проект в WinAVR и проект в Протеусе для MCP3001. Сделал отдельным заголовочным файлом, чтобы было удобно подключать. Здесь не буду приводить эту программу, только напишу строки, которые отличаются для двух АЦП.unsigned char adcLSB, adcMSB;unsigned int adc;    MCP3001                                    MCP3201adc = adcMSB;                            adc = adcMSB;adc<<=5;                                   adc<<=7;adcLSB>>=3;                             adcLSB>>=1;adc |= adcLSB;                           adc |= adcLSB;Т.е. заменив эти строки вы можете переделать программу для 12-битного АЦП.Удобно, чтобы как можно точнее измерять напряжение воспользоваться преобразователем напряжения, у которого на выходе 4.096В, например MCP1541. Тогда на 1мВ напряжения будет приходится 1 единица в цифровом коде для 12-и битного АЦП и 4мВ для 10-и битного. Нужно это напряжение подать на вход опорного напряжения.

3апр/2011Подключение внешнего АЦП по SPI к микроконтроллеру AVRАвтор: Рубрика: -> Просмотров: 11306

Новинки электронных устройств. Готовые устройства на микроконтроллерах

Подключение внешнего АЦП по SPI к микроконтроллеру AVR

Комментариев нет:

Отправить комментарий