Главная » Статьи » Схемы » Периферия |
Долгое время меня мучил вопрос подключения моих устройств к ПК. Как
правило, это были устройства сбора и оцифровки данных, которые хотелось
сохранять. Для решения этого вопроса я делал выбор между тремя
интерфейсами: LPT, COM или USB • Первый не подошел из-за того, что его уже нигде и нет. Аппаратная реализация. Вариант 1
Начнем с СОМ порта. Он же интерфейс RS-232 - самый простой способ
связать ПК и МК. RS-232 по сути и есть UART (как в микроконтроллерах).
Только там 10-12 Вольт вместо нужных нам 5В. Надо согласовать. Для этого
как раз и применяется MAX232. В этой микросхеме есть две линии для
данных, которые повышают с 5В до 10В и две понижающие линии.
Вариант 2 (Использование USB)
Идея та же. Используем UART. Только связь пойдет не через MAX232, а
через UART-USB мост. Такую функцию выполняют такие микросхемы, как
CP2101, CP2102, FT232 (сам предпочитаю CP2102). Подробно приводить схемы
включения не буду. Исчерпывающую информацию на этот счет можно найти в
даташитах. Все аналогично MAX232: также используются линии rx/tx у
контроллера и RXD/TXD у микросхемы. Опять же, на первом этапе, чтобы
разобраться, используйте 2 линии. Программная реализация Как я уже говорил, нам потребуется UART. На мой взгляд, проще всего запустить его через CodeWizardAVR. Получился большой текстовый файл, в котором все уже настроено (Не пугайтесь, практически половина всего, что там написано, это комменты). Теперь для вывода информации «из контроллера» будет использоваться UART. То есть, будут работать такие функции как printf(), scanf(), getchar(), putchar() и другие подобные, связанные со стандартным вводом/выводом в С (не путать с С++, cin или cout не пойдут!!!). Причем выводить они будут именно на линию UART. Осталось только найти в программе фрагмент: while (1) { } и поместить туда свою программку. Например, getchar(); теперь микроконтроллер будет при приходе символа отправлять компьютеру приветствие.
Осталось разобраться, как будет «разговаривать» компьютер. Для этого
нам потребуется любая терминальная программа. К примеру, в том же
CodeVision есть терминал. Его надо настроить на нужный порт и на ту
скорость, которую вы запрограммировали. У меня стоят такие настройки: При неверной настройке Handshaking будут проблемы с приемом. Поскольку мы пока используем только rx/tx, надо поставить именно так. При задействовании еще и других линий, соответственно, по-другому будет. Открываем окно терминала в CV AVR. Нажимаем кнопочку Connect и в поле для текста нажимаем любой символ. В ответ на это будет написано "Hello, World!” Также можно использовать такую программу как HyperTerminal (стандартная). В своих проектах я использую библиотеку SerialGate с сайта www.pcports.ru для работы с последовательными портами. Выражаю благодарность создателям этой библиотеки! Кстати, на сайте можно найти примеры использования SerialGate Как видно, ничего особо сложного в подключении контроллера к ПК нет. Надеюсь, что данная статья расширит функциональный диапазон ваших проектов. Удачи! DeepBlack. | |
Категория: Периферия | Добавил: MysterySt (27.12.2010) | | |
Просмотров: 2719 | |
Всего комментариев: 0 | |