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 раз.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение avr123.nm.ru » 02 авг 2007, 22:43

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

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

Симулятор VMALB (он и использован в задаче 5) поддерживает скорость до 250 kbps.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Master » 03 авг 2007, 01:42

И еще вопрос терминал в Протусе подразумевает, что подключение идет через MAX232 или в принципе можно микросхему тоже поставить? В примерах она не стоит.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Master » 03 авг 2007, 01:59

Нашел ответ на вопрос о зависимости скорости передачи от кварца. В ДШ в разделе USART Exemples of Baud Rate Settings есть таблица кварцов для каждой из скоростей.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение avr123.nm.ru » 03 авг 2007, 02:14

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

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

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

http://proteus123.narod.ru/01.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Master » 03 авг 2007, 02:16

А для чего мастером комбинировать если можно в ДШ посмотреть?
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение avr123.nm.ru » 03 авг 2007, 02:21

И как увиденое компилятору объяснить ?  Жестами ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение 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
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Сообщение Master » 03 авг 2007, 02:34

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

Сообщение avr123.nm.ru » 03 авг 2007, 03:02

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


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

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


Дак я и советовал выше мастером пользоваться потому что он готовый код настройки создаст.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Myp » 03 авг 2007, 09:57

Master
незабудь заглянуть в тему http://www.roboforum.ru/viewtopic.htm?t=2819
там тоже поднимается вопрос компорта у МК
правда там юзается КПК но принципиально разницы никакой, только отличие в языке програмления, там сишник.
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15937
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение Master » 06 авг 2007, 00:42

Вот осваиваю BComPort библиотека облегчающая работу с протоколом RS-232 под Delphi. Хочу отослать и принять в порт что-нибудь.
Кто-нить пользовался этой библиотекой?
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: 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.
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Сообщение 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.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение Master » 06 авг 2007, 13:12

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

Я так понимаю код 13 это и есть Enter? И что бы что-то получить в порт я должен кинуть перемычку с pin2 на pin3 и тогда в Memo1 появится то что я написал в Edit1? Блин стремно как-то 3 месяца как комп купил. Лучше на работе попробую. :)
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

След.

Вернуться в Коммуникации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Mail.ru counter