UART с помощью КР1878ВЕ1


Данная программа работает с компьютером по интерфейсу RS232, в полудуплексе на скорости 9600 бод при кварцевом резонаторе 1.843.200 питание 5 Вольт, потребление в режиме ожидания 3.7 ма. Входная часть взята из программатора Атмела avr910.pdf, питание от com-порта через линии RTS и DTR через диоды шотки и стабилизатор 78L05. Алгоритм работы взят Микрочиповский из AN555C, кому интересно, читайте в оригинале, коротко смысл такой.


Для детектирования старт бита таймер счётчик подключается к входной ножке, счёт идёт по спаду, в регистр интервала пишется 1. При появлении старт бита, перепад от 1 к 0, происходит переполнение счётчика и вырабатывается прерывание на процессор. Затем таймер переконфигурируется на счёт от кварца, без предделителя, и в регистр интервала пишется такое значение, чтобы прерывание пришлось на середину старт бита (длина бита на данной скорости делённая пополам). По прерыванию читается приёмная нога и её значение задвигается в буфер данных. Затем в регистр интервала пишется значение, равное длине принимаемого бита (1843200 / 9600 = 192, 0c0h) и по следующим прерываниям считывается весь байт, бит чётности и стоп бит.


Преимущество данного способа в том, что для работы необходимо только одно прерывание таймера. При передаче в таймер загружается длина бита и по прерываниям от таймера, циклически сдвигая регистр с данными, последовательно передается весь байт, со старт и стоп битами. При приёме возможна работа любой другой программы, при передаче нужно ждать пока не уйдёт весь байт.


При инициализации ножек RX и TX, функции остальных ног не меняются. - Это и есть ошибка, а жаль. В данном примере программа принимает байт с компьютера, добавляет к нему 1, и передаёт обратно.


Для теста устройства лучше использовать программу Term95, она идёт в комплекте к нортон-командеру, хотя можно использовать и другие, работающие с com-портами (датаскоп, дос-навигатор).


При этом необходимо, чтобы на линиях RTS и DTR были установлены логические 1 (+12 Вoльт) для питания микроконтроллера. Выставив номер порта и скорость передачи можно наблюдать, как в ответ на посланный байт приходит увеличенный на 1, особенно прикольно, когда посылаешь цифры :-)
Вот исходник:
uart1.mic - оригинал
Корректированный вариант положу попозже, сейчас времени нету.
 
Алгоритм UART:
 


Источник: sanchos-iz.narod.ru


UART с помощью КР1878ВЕ1






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.