• Главная
  • Карта сайта
Не найдено

Начало встраиваемой электроники

  1. Лекция 4 - UART и последовательная связь

Уровень умения: Начинающий

от Nate | 19 июня 2008 г. | 35 комментариев

Лекция 4 - UART и последовательная связь

Привет привет мир

Извините за путаницу. Когда эти уроки были написаны и сфотографированы, мы использовали ATmega8. Теперь у нас есть новый ATmega168. Вы найдете всю информацию ATmega168 на следующих страницах, но на изображениях будет показана ATmega8.

ATmega168 имеет тонны встроенного оборудования. Давайте раскроем последовательную связь. Каждый запрограммировал программу «Hello World». У вас есть микрочастица, работающая на частоте 16 МГц. У вас есть WinAVR и работает. Мы уже продемонстрировали светодиодное управление. Теперь пришло время передавать некоторые последовательные данные назад и вперед.

Я не огромный кодер. Я просто хочу, чтобы мой оператор printf () делал то, что должен был делать. Я не использую аппаратный отладчик, я отлаживаю с помощью операторов printf. Конечно, с этим есть ограничения, но для 90% приложений отладка с помощью операторов printf работает просто отлично.

Сначала краткая история RS232. Что такое RS232 ? Это просто название стандарта, который распространяется от поколения к поколению компьютеров. Первые компьютеры имели последовательные порты, которые использовали RS232, и даже современные компьютеры имеют последовательные порты (или, по крайней мере, порты USB, которые действуют как порты RS232). В свое время последовательную информацию нужно было передавать с таких устройств, как принтеры, джойстики, сканеры и т. Д., На компьютер. Простейший способ сделать это - передать серии 1 и 0 на компьютер. И компьютер, и устройство согласовали скорость передачи информации - «бит в секунду». Компьютер будет передавать данные изображения на принтер со скоростью 9600 бит в секунду, и принтер будет прослушивать этот поток, равный 1 с и 0 с, ожидая новый бит каждые 1/9600 = 104 мкс (104 микросекунды, 0,000104 секунды). Пока компьютер выводит биты с заданной скоростью, принтер может прослушивать.

Увеличьте изображение сегодня. Электроника немного изменилась. До этого были относительно мощные высоковольтные устройства. Стандарт RS232 предписывает, что бит находится в диапазоне от -12 В до + 12 В. Современная электроника не работает при таких высоких положительных и отрицательных напряжениях. На самом деле, наш ATmega168 работает от 0 до 5 В. Итак, как нам заставить наши 5В микро говорить о напряжениях RS232 +/- 12В? Эта проблема была решена производителями микросхем мира. Они сделали микросхему, которая в общем известна как MAX232 (очень близко к RS232, нет?).

MAX232 - это микросхема, изначально разработанная компанией Maxim IC, которая преобразует сигналы +/- 12 В RS232 в сигналы 0/5 В, понятные нашему ATmega168. Он также повышает напряжение нашего ATmega168 до необходимого +/- 12 В протокола RS232, чтобы компьютер мог понимать наш ATmega168 и наоборот. Чтобы наша ATmega168 IC отправляла последовательные символы на компьютер, мы должны отправлять эти последовательные сигналы через схему MAX232, чтобы компьютер принимал сигналы RS232 +/- 12 В. Не беспокойтесь, если вы работаете с чипом с надписью «ICL232» или «ST232» - это всего лишь дженерики MAX232. Все говорят «MAX232» так же, как они говорят «Kleenex» или кока-колу. Все микросхемы функционируют одинаково и почти все имеют одинаковую распиновку.

Схема MAX232, которую мы будем использовать, выглядит следующим образом:

Схема MAX232, которую мы будем использовать, выглядит следующим образом:

MAX232 Circuit - Eagle схематический / PDF

Эта микросхема MAX232 использует три конденсатора по 0,1 мкФ (C5, C6, C7) для работы (см. « заправочные насосы «). Вы должны иметь это установлено. Четвертый (C8) - это то, что называется «развязывающим колпачком». Поскольку микросхема MAX232 переключает различные сигналы (от +/- 12 В до 0/5 В), она использует биты тока. Так как он нуждается в этих битах тока в пакетах, он может нарушить ваше питание 5В. Конденсатор C8 0.1 мкФ помогает «разъединить» или устранить вредные воздействия этой микросхемы (переключение назад и вперед) от вашего источника питания. Эта развязывающая крышка должна быть расположена рядом с выводами VCC и GND IC. Это помогает удалить шум из вашей системы питания. Будет ли ваш макет работать без развязки крышек? Конечно, это будет! Обходиться без! Но придет день, когда что-то перестанет работать, и вы не знаете, почему. Это может быть мой код? У меня есть где-нибудь короткое? Отключение? Или, может быть, мне не хватает развязывающих колпачков?

Разъединительная крышка предназначена для обеспечения быстрого притока энергии, если источник питания падает, что-то вроде системы ИБП для вашей ИС. Чем дальше развязывающий колпачок от ИС, тем меньше у него возможностей обеспечить такой быстрый выброс (длинные провода имеют собственную емкость). Это всегда хорошая инженерная практика - иметь хотя бы одну пробку 0.1 мкФ рядом с любой микросхемой. Размещение их в пределах 0,5 "от выводов VCC и GND - это хорошо. Размещение их на макете не повредит, а просто не поможет.

JP2 - это разъем DB9. Он называется разъемом DB9, поскольку содержит 9 контактов и универсально используется для последовательных соединений. Для подключения разъема DB9 вашего компьютера к компьютеру вам понадобится последовательный кабель «папа». «Мужской» конец кабеля имеет металлические штырьки, а «женский» - черный пластик, который принимает штырьки. Если вы посмотрите очень близко на разъем DB9 в реальной жизни, вы можете просто разглядеть несколько маленьких цифр рядом с отверстиями.

Так, что все это делает? ATmega168 будет отправлять сигналы 5 В на ИС MAX232. Микросхема MAX232, в свою очередь, преобразует эти сигналы 5 В в сигналы RS232 +/- 12 В, которые компьютер может понять через порт DB9 на задней панели компьютера. По общему признанию это может быть немного уродливым, чтобы настроить сначала. Поверите ли вы мне, что после установки, это будет ваша жизненная линия к здравомыслию? Последовательное соединение это все! Он понадобится вам почти в каждом приложении, которое вы делаете.

Он понадобится вам почти в каждом приложении, которое вы делаете

Макет с MAX232 и большой петлевой перемычкой установлен

Как только у вас все будет готово, вам нужно будет открыть программу терминала. Если вы играете под Windows, вы можете открыть прилагаемую программу «Гипертерминал», обычно расположенную в «Программы» -> «Стандартные» -> «Связь». Люди из Linux и Apple, вы, наверное, знаете, как запустить терминальную программу (извините, я не могу помочь!).

Все терминальные программы имеют одну и ту же основную функцию: делать последовательные. Все, что вам нужно указать, это несколько простых правил, чтобы ваш микроигра успешно играла с вашим компьютером. Давайте просто пройдем через экраны Гипертерминала:

Давайте просто пройдем через экраны Гипертерминала:

Называй как хочешь

Называй как хочешь

Скорее всего, последовательный порт на вашем компьютере является COM1

Скорее всего, последовательный порт на вашем компьютере является COM1

Вы хотите 9600 бит / с 8-N-1 без управления потоком

Основные настройки: 9600 бит / с и 8-N-1 . Это означает, что микро и компьютер соглашаются говорить со скоростью 9600 бит в секунду (бит / с) и что каждый байт будет иметь 8 бит данных без бита четности и только 1 стоповый бит. Этот «8-N-1» очень распространен и прост. Если вам нравится боль, читайте о соотношение 1,5 стоповых бита и 5 бит данных. Никто действительно не использует это в мире макетирования.

Mkay, у вас есть открытый гипертерминал и пинать. У вас есть MAX232 (или эквивалентная схема), собранный и включенный. Перед тем как подключить его к вашему микро, вы должны проверить, работает ли схема MAX232. Самый простой способ проверить схему MAX232 - это связать TX и RX вместе. Это называется «петля назад» (большой желтый провод, изображенный выше). Довольно понятно, но просто следуйте инструкциям:

Когда вы нажимаете клавишу «A» на компьютере в окне гипертерминала, генерируется серия из 1 и 0, которые выкачивают последовательный порт на задней панели компьютера (8 бит: «01000001», если быть точным = 65d = 41h) - увидеть www.asciitable.com для получения дополнительной информации). Эти 0 и 1 попадают в MAX232 на вашем макете, который покорно заменяет эти сигналы RS232 на сигналы TTL. 0 и 1 утверждаются на выводе R1OUT. Поскольку вы связали контакты TX и RX вместе (R1OUT должен быть закорочен на T1IN), эти 0 и 1 отправляются обратно обратно к MAX232 и по последовательному кабелю DB9. При попадании в компьютер компьютер «видит» эти 1 и 0 и говорит «о! есть устройство, передающее мне символ ASCII A '. Затем компьютер отображает символ «А» на экране гипертерминала. В этом суть петлевого теста. Если все кошерно, вы должны быть в состоянии зажать клавиатуру и увидеть, что эти буквы возвращаются в окно терминала. Вытяните перемычку, и персонажи должны перестать отражаться. Понял? Используй это! В будущем, когда вам нужно будет протестировать последовательный интерфейс, используйте короткие TX и RX, чтобы убедиться, что все работает правильно.

Хорошо, у вас MAX232 работает правильно. Теперь подключите контакты TX и RX ATmega168 к схеме MAX232.

Теперь подключите контакты TX и RX ATmega168 к схеме MAX232

ATmega8 с блоком питания и схемой MAX232. орел схематический / PDF

Возможно, вы заметили, что C9 волшебным образом появился рядом с ATmega168 на схеме выше. Это развязывающий конденсатор 0.1 мкФ для ATmega168. Конденсатор емкостью 0,1 мкФ, расположенный рядом с выводами VCC и GND ATmega168, поможет снизить шум источника питания, подаваемый в ATmega168. Опять же, ваша доска, скорее всего, будет работать без развязки колпачков, но я просто хочу привить вам привычку использовать 0,1 мкФ, как конфеты.

Соединения TX и RX между MAX232 и ATmega8

Опытные путешественники заметят (вверх ногами) картину, что микросхема MAX232 на самом деле представляет собой SP3232 (EBCP). Что это за SP3232? Это универсальный Sipex MAX232. Заметьте «3» перед 232? Оригинальные микросхемы MAX232 были разработаны для сопряжения логики 5 В с RS232. Поскольку цепи начали работать при более низком напряжении (например, 3,3 В), производителям микросхем пришлось перепроектировать микросхемы MAX232, чтобы они были более эффективными, чтобы они могли принять это более низкое напряжение и повысить его до 12 В для RS232. Отсюда 3V обозначение «SP3232». Эта микросхема может вводить сигналы 3 В TLL и успешно преобразовывать их в RS232. Мы работаем с нашим макетом на 5 В, но мы можем запустить наш MAX232 от 3 В до 5 В без проблем.

Общая информация: На картинке выше, какая IC старшая сестра? Эти микросхемы имеют простые коды даты: 0641 и 0625 означает, что обе микросхемы были изготовлены в 2006 году на 41-й и 25-й неделях года.

Теперь у вас должно быть оборудование, позволяющее вам выполнять операторы printf. Давайте возьмемся за некоторый код!

Отзывы читателя:

«Друзья не позволяют друзьям использовать гипертерминал. Это одна отстойная программа. TeraTerm работает намного лучше ".

Мы согласны. Гипертерминал немного глючит и может зависнуть. TeraTerm намного лучше. Однако, поскольку почти в каждой установке Microsoft на планете уже установлен Гипертерминал, мы привыкли использовать его для упрощения считывания последовательных соединений. В общем, как только вы преодолеете серийный барьер, прекратите использовать Hyperterminal и начните использовать TeraTerm.

Вы можете получить все части для этой лекции Вот ,

Мы любим отзывы! Пожалуйста, сообщайте об опечатках, комментариях или рекомендациях [email protected] ,

Лекция 1 - Справочная информация и источник питания
Лекция 2 - Как получить код на микроконтроллер
Лекция 3 - Что такое осциллятор?
Лекция 4 - UART и последовательная связь
Лекция 5 - Компиляция AVR GCC
Лекция 6 - Основы пайки
Лекция 7 - SMD пайка
Лекция 8 - Орел: Схемы
Лекция 9 - Eagle: макет печатной платы
Лекция 10 - Орел: Создание новой детали
Распространенные ошибки, советы и хитрости

232. Что такое RS232 ?
Итак, как нам заставить наши 5В микро говорить о напряжениях RS232 +/- 12В?
Очень близко к RS232, нет?
Будет ли ваш макет работать без развязки крышек?
Это может быть мой код?
У меня есть где-нибудь короткое?
Отключение?
Или, может быть, мне не хватает развязывающих колпачков?
Так, что все это делает?
Поверите ли вы мне, что после установки, это будет ваша жизненная линия к здравомыслию?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью