Подключение контроллера к компьютеру по RS-232 с помощью встроенного модуля USART
В данной статье приведена схема для организации двунаправленного обмена данными по интерфейсу RS-232 между контроллером и компьютером ( встроенный модуль USART <-> com-порт ), на примере микроконтроллера PIC16F628A.
Итак, модуль USART в PIC16F628A встроенный (реализован аппаратно), но контроллер работает с TTL уровнями (0, +5В), а интерфейс RS232 имеет уровни +5...+15В, -15...-5В, следовательно, нам нужен двунаправленный преобразователь уровней TTL <->RS232. Возьмем для этого стандартную, достаточно распространенную микросхему MAX232.
Схема:
Вот такая схемка. В общем-то, главное подключить GND, RX, TX. Это, соответственно, земля, линия приемника, линия передатчика. Как видите, приемник контроллера (RX) надо соединить с передатчиком компьютера (TxD), а передатчик контроллера (TX) с приемником компьютера (RxD).
Собственно, CTS и RTS можете, если хотите, не подключать, а можете использовать их по другому: CTS как DSR (тогда его надо будет подключить к DTR компьютера), а RTS как DTR (его надо будет подключить к DSR компьютера). Просто у MAX232 по два преобразователя в обе стороны, поэтому я решил соединить контроллер с компьютером еще по двум линиям, их можно использовать для аппаратного управления потоком. Остальные входы/выходы контроллера можете использовать по своему желанию, например, для управления светодиодами, подключения ЖКИ и т.д.
Важно: линии RX, TX следует подключать строго по схеме, так как именно на эти ноги выведен встроенный USART контроллера (на 7-ю ногу RX, на 8-ю ногу TX), а вот сигналы CTS, RTS можете подключить к любым другим входам/выходам (повторюсь, ко встроенному модулю USART они отношения не имеют, просто с ними можно потом аппаратный контроль сделать).
Детали: конденсаторы С1...С5 - 1 мкФ, конденсатор С6 - 0,1 мкФ, резистор R1 - 1 кОм.
Неиспользуемые входы/выходы контроллера следует заземлять или программировать как выходы (RA2 только заземлять - этот вывод контроллера может быть только входом) иначе будет ловить на эти входы всякие наводки.
Готовый девайс:
В даташите на MAX конденсаторы обвязки - электролиты. В устройстве на фотографии использовалась микросхема MAX232CSE с керамическими конденсаторами на 0,1 мкФ, - отлично работает (я вообще электролитов ни в одном "фабричном" устройстве на MAX232 не видел, зато видел много MAX232CWE и MAX232CSE с керамикой на 0,1 мкФ).
Иногда бывает очень удобно использовать преобразователь уровней RS232 <->TTL в виде отдельной платы (там же - более подробное исследование на тему возможных номиналов конденсаторов обвязки).