roboforum.ru

Технический форум по робототехнике.

COM порт для связи с МК

COM порт для связи с МК

Master » 02 авг 2007, 22:33

Давно есть желание поюзать COM в связке ПК + МК. Здесь буду описывать процесс того как это у меня продвигается. Здесь же выложи схемы и печатки которые буду делать. Хотелось бы реализовать управление 8-ю светодиодами. Т. е. простейшая задача как для LPT порта.

Буду использовать ATmega16 и на ПК програмить на Delphi (и не убеждайте меня перейти на что-то другое).
Вначале просимулирую все в Proteus.

Начал с чтения:

http://www.avr123.nm.ru/z4.htm   - Схемы для связи COM порта с USART MK и програмы для отладки, полное описание портов ПК

http://www.avr123.nm.ru/z5.htm - Примеры организации двусторонней связи через USART MK с исходниками и симуляцией и вывод данных на LCD знакосинтезирующий.

Сразу возник вопрос там в примере в 5-й задаче выбирается кварц 11,059 и скорость обмена данными 115200.
Но в протеусе нет такой скорости обмена данными (в терминале). Если я выберу скорость скажем 9600
(или какую лучше?), то нужно ли будет поставить другой кварц?
Последний раз редактировалось Master 02 авг 2007, 23:09, всего редактировалось 1 раз.

avr123.nm.ru » 02 авг 2007, 22:43

Очень правильно что начал с чтения.  Будут замечания, вопросы - пиши !

Для снижения скорости обмена наверно лучше изменить настройку USART с помощью мастера CVAVR. Так как изменение частоты кварца (тактирования МК) повлияет на тайминг выполнения других задач если они есть в програме МК.

Симулятор VMALB (он и использован в задаче 5) поддерживает скорость до 250 kbps.

Master » 03 авг 2007, 01:42

И еще вопрос терминал в Протусе подразумевает, что подключение идет через MAX232 или в принципе можно микросхему тоже поставить? В примерах она не стоит.

Master » 03 авг 2007, 01:59

Нашел ответ на вопрос о зависимости скорости передачи от кварца. В ДШ в разделе USART Exemples of Baud Rate Settings есть таблица кварцов для каждой из скоростей.

avr123.nm.ru » 03 авг 2007, 02:14

там     avr123.nm.ru/z5.htm   рекомендую мастером  CVAVR  комбинировать частоты кварца и скорости и получать сразу код настройки UART

и главное ДОПУСТИМОСТЬ ошибки скорости.

в PROTEUS терминал как бы включает в себя max232 - т.е. подключать проводки НУЖНО напрямую.  

http://proteus123.narod.ru/01.htm

Master » 03 авг 2007, 02:16

А для чего мастером комбинировать если можно в ДШ посмотреть?

avr123.nm.ru » 03 авг 2007, 02:21

И как увиденое компилятору объяснить ?  Жестами ?

Master » 03 авг 2007, 02:29

avr123.nm.ru писал(а):И как увиденое компилятору объяснить ?  Жестами ?

Ну почему же. Вот я хочу к примеру использовать кварц 16МГц (просто у меня их 5 шт :)) и Bаud Rate 19200 (19,2К), т. к. эта скорость есть в Протеусе и она подходит поскольку ошибка менее 1% (точнее 0,2). Я в мастере ставлю кврц 16МГц и Boud Rate 19200. Остальное как в примере к 5-й задаче курса.
Вложения
Настройки мастера.JPG
Выбор кварца.JPG
Последний раз редактировалось Master 03 авг 2007, 02:36, всего редактировалось 1 раз.

Master » 03 авг 2007, 02:34

Вот мой первый "Hello World", а так же исходники для CVAVR и Proteus. Настройки в CVAVR как в верхнем посте. В Protese главное не забывать устанавливать частоту МК и Bаud Rate в терминале. Я на этом попался.  :oops: Все ушел спать, завтра на работу.
Вложения
COM.rar
(40.7 КиБ) Скачиваний: 134

avr123.nm.ru » 03 авг 2007, 03:02

Master писал(а):
avr123.nm.ru писал(а):И как увиденое компилятору объяснить ?  Жестами ?


Ну почему же...

Я в мастере ставлю ...  


Дак я и советовал выше мастером пользоваться потому что он готовый код настройки создаст.

Myp » 03 авг 2007, 09:57

Master
незабудь заглянуть в тему http://www.roboforum.ru/viewtopic.htm?t=2819
там тоже поднимается вопрос компорта у МК
правда там юзается КПК но принципиально разницы никакой, только отличие в языке програмления, там сишник.

Master » 06 авг 2007, 00:42

Вот осваиваю BComPort библиотека облегчающая работу с протоколом RS-232 под Delphi. Хочу отослать и принять в порт что-нибудь.
Кто-нить пользовался этой библиотекой?

SSG » 06 авг 2007, 10:03

Я пользовался. Поковыряйтесь с примером терминала, поставляемым с компонентом, т.к. его очень удобно под себя перестроить. Там, например, есть обработчик нажатия кнопки клавиатуры для компонента Edit1:
Код: Выделить всёРазвернуть
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if BComPort1.Connected and (Key = #13) then
 begin
   BComPort1.WriteStr(Edit1.Text + Key);
   Edit1.Text := '';
 end;
end;

Т.е. если нажатая кнопка - Enter, то в порт посылается строка, введенная в Edit плюс код 13.

avr123.nm.ru » 06 авг 2007, 12:39

Master писал(а):Вот осваиваю BComPort библиотека облегчающая работу с протоколом RS-232 под Delphi. Хочу отослать и принять в порт что-нибудь.


Вот этот сайт начинающим -  http://www.valery-us4leh.narod.ru/main.html

я рекомендую на странице  http://avr123.nm.ru/z4.htm  курса посвященной связи МК AVR ATmega и ПК по COM.

Master » 06 авг 2007, 13:12

Т.е. если нажатая кнопка - Enter, то в порт посылается строка, введенная в Edit плюс код 13.

Я так понимаю код 13 это и есть Enter? И что бы что-то получить в порт я должен кинуть перемычку с pin2 на pin3 и тогда в Memo1 появится то что я написал в Edit1? Блин стремно как-то 3 месяца как комп купил. Лучше на работе попробую. :)


Rambler\'s Top100 Mail.ru counter