| ||
|
|||||||||
Cайт и форум для электриков HARDW.net |
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 Просмотров сегодня: 4698, всего: 4698 |
|
|||||||||
| |||||||||
|