Свежие обсуждения
Микроконтроллеры

COM9+МК=управление двигателем

Приветсвую! Насмотрелся на разработочки, где управление устройством или отдельным узлом(двигатели, св. диоды) управляют через com-порт, решил тож поиграться. Как я понял из предыдущей темы про USART- это технология для связи компа и МК на отдельной скорости, зависяшая от частоты кварца. Для связи компутера и МК используеться так же микросхема RS232. это понятно Как подключить МК PIC к RS232? какя программа нужна для изменения логич данных на портах COM? как МК распознаёт команды внутри кристалла по RX и TX. МК передаёт данные только по одной шине данных TX, получаеться уже на программном уровне эти сигналы распределяються на управление той или иной задачи?

 

zakonnik: Как подключить МК PIC к RS232 через разъем DB9M (розетка) , сигналы TX и RX надо перевернуть т.е. ТХ(MCPU) <-> RX(PC).
zakonnik: как МК распознаёт команды внутри кристалла по RX и TX. МК сам не "распознает" никаких команд он принимает/передает данные, распознавание (команда или данные) и выполнение осуществляет программа в МК.

zakonnik, почему тема начинается с COM9?

 

AlexAlcoa: почему тема начинается с COM9?
управление по COM порту, а 9 распиновка
Может по этой теме есть линки на более подробную инфу и подключение?

 

если бы ты занимался авр, я бы тебе дал готовый код под тини2313
я вчера только показывал свой проект на предварительном тесте

если кратко, то протокол rs232 - протокол низкоуровневый
ему уже 30 с лишнимм лет и служит он для связи устройств с компом или друг с другом
вся забота по реализации сигналов лежит на блоке usart в компе и в самом мк
твоя задача только получать данные из регистра udr

т.к. передача асинхронная, то все зависит от кварца
скорость передачи зависит от твоих потребностей
например стандартная скорость 9600кбод означает передачу 1200 байт в секунду
9600 бит делиш на 8 бит и получаеш количество байт

сам решай, для чего тебе может понадобиться передавать 1200 байт в секунду

для управления двигателем через ком тебе нужна примерно такая прога

switch(getchar()){
case 'r': right();
break;
case 'l': left();
break;
case 's': stop();
default: puts("press r,l or s");
}

передающая сторона должна посылать символы r l s
иначе тебе выйдет сообщение об этом

для экспериментов тебе надо будет прогу типа гипертерминал из комплекта виндов
вот тут посмотри еще http://avrhelp.mcselec.com/bascom-avr.html?UART

для соединения мк с компом нужна мс мах232 и подобное
напрямую подключать нельзя, а то сгорит мк

советую тебе купить просто повод для любого старого телефона
там она есть
либо можеш купить провод усб, тогда у тебя будет виртуальный ком порт
в случае чего ты спалиш мс, а не порт в компе

для работы юарта в мк его надо инициализировать, записав определенное число в определенный регистр
я не знаю ничего про пики
смотри раздел uart в даташите
или может быть иде имеет конфигуратор периферии мк и там все будет просто

 

djelektronik, у меня дома валяеться тини 2313, будет повод повозиться, скиньте на мыло

 

zakonnik, по USART на PIC можно посмотреть здесь: http://pic16f84.narod.ru/item_rs232.htm (вольтметр), http://pic16f84.narod.ru/pj_rs232.htm (устройство управления). Вообще на сайте микрочипа есть много проектов с применением USARTа.

 

Насколько я понял: на ПК мы посылаем в СОМ-порт 1 байт и на выходе из ПК он превращается в последовательный код (RS232), который принимает МК и сам "преобразует" в его в исходный байт и сохраняет в 1м регистре (буфер приема). Дальше уже мы сами думаем, что с этим принятым байтом делать.

 

zakonnik
я тебе отправил для тини пример управления релешками
в тини есть свой генератор и кварц ей не нужен
скорость 2400

второй файл - пример на шарпе под .нет
в папке релиз лежит ехешник
для работы его нужен фреймворк 2

в примере указан ком5
пересобери под свой порт
на сайте мелкасофта бесплатно лежит visual sstudio 2005 c#
там сам разберешся

либо возьми любой терминал, который может слать байты в хексе

 

zakonnik: какя программа нужна для изменения логич данных на портах COM
Если ты хочешь работать с СОМ-портом из под винды, тебе не обойтись без знания программирования под виндой. Если этого желания нет, то просьбами типа "скиньте какую-нибудь программульку, чтобы она могла то-то делать" вряд ли ты научишься это делать. Учи Дельфи, или визуал бэйсик, или визуал си, разницы нет, лишь бы была библиотека работы с СОМ-портом. Можно, конечно, и через API-функции, но пока об этом говорить рановато.
Если хочешь проверить только работу USART, для этого достаточно Гипертерминала.
Чтобы подрыгать ножками СОМ-порта (кстати, если речь только об вкл-выкл двигателя этого достаточно)
посмотри мой примерчик
Программа на VB-6, на .нет пока не перехожу, т.к. к ехе-файлу размером с десяток килобайт надо цеплять фреймворки под сотни мегабайт, пока мне этого не надо. Хотя пробовал на 2005 студии работать с СОМ-портом, но подожду, пока на всех компах без исключения не будут стоять фреймворки.