Как подключить PIC к порту COM для команды SERIN
|
|
somlich |
Дата: Вт, 15.09.2009, 20:10 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
35
Замечания:
±
На сайте с 23.02.2009
Статус:
Offline
|
Что то я туплю, при отправлении байта на комп проблем нет - SEROUT2 на 2 ножку COM через сопротивление 1кОм - работает на ура.. И вот теперь встала задача - передать данные с компа на PIC. Если я правильно понимаю - команда SERIN. Но куда подключать в COM порте провод . Мне нужно, что бы была возможность и приема и передачи.
|
|
|
|
DIKTATOR |
Дата: Вт, 15.09.2009, 20:56 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
76
Замечания:
±
На сайте с 24.07.2008
Статус:
Offline
|
Вывод 3 СОМ порта для того чтоб передать данные из пк в мк, но ком порт при передачи в мк информации на вывод 3 будет давать напряжение от -12 до +12(в современных от -10 до +10). Пробывал делать делитель напряжения, пока не получается уменя в виду того что мой последний мк згорел. резисторы 5.1кОм
Используйте симулятор ПРОТУЕС !!! Реальная вещь!! Я снова тут, но не всегда свободен.
|
|
|
|
somlich |
Дата: Вт, 15.09.2009, 21:29 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
35
Замечания:
±
На сайте с 23.02.2009
Статус:
Offline
|
Вот нашел такую схему - функциональна? Получается что 2 (COM) на выход от МК, а 3 (COM) на вход? Если судить по даташиту макса то получается что на схеме 11 ножка - так которая идет на порт МК 25, т.е. RC6 будет выход (SEROUT), а 9 - на порт RC7 (26) - вход (SERIN). Правильно я думаю?
|
|
|
|
DIKTATOR |
Дата: Вт, 15.09.2009, 21:38 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
76
Замечания:
±
На сайте с 24.07.2008
Статус:
Offline
|
команды SERIN и SEROUT реализовывают программный интерфейс RS232 на любом порту мк, RC7 и RC6 имеют аппаратную поддержку USART, для работы с ним есть команды HSERIN и HSEROUT. Я использую программный метод.
Используйте симулятор ПРОТУЕС !!! Реальная вещь!! Я снова тут, но не всегда свободен.
|
|
|
|
somlich |
Дата: Вт, 15.09.2009, 21:42 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
35
Замечания:
±
На сайте с 23.02.2009
Статус:
Offline
|
Если я правильно понял, то схема в моем предыдущем посте нормальная и ее можно собирать?Quote (DIKTATOR) команды SERIN и SEROUT реализовывают программный интерфейс RS232 на любом порту мк, RC7 и RC6 имеют аппаратную поддержку USART, для работы с ним есть команды HSERIN и HSEROUT. Это я понимаю, SERIN можно "делать" на любой порт.
|
|
|
|
DIKTATOR |
Дата: Вт, 15.09.2009, 21:45 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
76
Замечания:
±
На сайте с 24.07.2008
Статус:
Offline
|
Quote Вот нашел такую схему - функциональна? Получается что 2 (COM) на выход от МК, а 3 (COM) на вход? Если судить по даташиту макса то получается что на схеме 11 ножка - так которая идет на порт МК 25, т.е. RC6 будет выход (SEROUT), а 9 - на порт RC7 (26) - вход (SERIN). Правильно я думаю? ДА Если на мк всёравно ничего не приходит, поиграйтесь с настройками инвертированный и не инвертированный сигнал . Да и в программу лучше добавить в самом начале какую нибудь маленькую программку, которая выведет в терминал что нибудь и потом уже делать основную программу. Это позволит убедится что скорость и другие настройки сделаны корректно.
Используйте симулятор ПРОТУЕС !!! Реальная вещь!! Я снова тут, но не всегда свободен.
|
|
|
|
Dmitry |
Дата: Вт, 15.09.2009, 23:14 | Сообщение # 7 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Quote (somlich) Если я правильно понял, то схема в моем предыдущем посте нормальная и ее можно собирать? Да нафига париться с MAX-ом, чтобы пару байт передать! Чем схема в описании команды SERIN/SERIN2 не устраивает? Любую ножку МК через 22к на 3 ножку ком-порта и усе! Естественно, в команде serin, также как и serout, использовать режим инвертирования.
|
|
|
|
DIKTATOR |
Дата: Вт, 15.09.2009, 23:20 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
76
Замечания:
±
На сайте с 24.07.2008
Статус:
Offline
|
Был момент я подключал таким способом и у меня сгорел пик, правда резистор не помню какой ставил. Для надёжности с максом, а для начало освоения работы с ком портом можно и так попробывать. http://www.gaw.ru/html.cgi/txt/interface/rs232/ про интерфейс RS232 если кому интересно и кто не знает. Так и у ком порта поменять проводки с 2-3 на 3-2, не заметил смотря на схему.
Используйте симулятор ПРОТУЕС !!! Реальная вещь!! Я снова тут, но не всегда свободен.
|
|
|
|
Dmitry |
Дата: Вт, 15.09.2009, 23:39 | Сообщение # 9 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Ну не знаю, уже проектов 5-7 таким образом подключал (правда, всегда через резистор 22к ), и к совершенно разным МК - ноу проблем. MAX понадобился только один раз - надо было хардварным портом поключаться, чтобы бутлоадером прошивку заливать. Правда, в последнем проекте заметил глючок подобного подключения (PIC16F690) - если к любой из ног прикладывать напряжение большее, чем напряжение питания (пусть и через резисторы), т.е. когда начинают работать защитные диоды шоттки на выводе МК - начинает врать (в сторону увеличения) встроенный АЦП. Причем АЦП подлючен к совершенно другим ножкам. Я-то обманул его, конечно (добавил еще один резистор и стабилитрон на линию SERIN), но... прецендент-с. Добавлено (15.09.2009, 23.39.50) --------------------------------------------- Quote (DIKTATOR) Так и у ком порта поменять проводки с 2-3 на 3-2, не заметил смотря на схему. Кстати, да, ошибка в схеме. 2-й вывод ком-порта - прием, а подключен к приему MAX-а И кондеров современным MAX-ам вполне достаточно 0,1 мкф (ST232, например)
Сообщение отредактировал
Dmitry - Ср, 16.09.2009, 00:07
|
|
|
|
somlich |
Дата: Сб, 03.10.2009, 00:16 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
35
Замечания:
±
На сайте с 23.02.2009
Статус:
Offline
|
Подключил как посоветовали, все принимает и передает по одному байту - отлично. Но вот стал вопрос если я ф программе пишу serin PORTD.0,16780,string то МК просто висит и ждет - когда же эта гребаная строка придет. А мне еще нужно опрашивать 6 кнопок. Как заставить и ждать строку, т.е. при ее появлении сразу ее считать и следить за состоянием портов с кнопками????
|
|
|
|
Dmitry |
Дата: Сб, 03.10.2009, 00:51 | Сообщение # 11 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Ну как, как. Никак. Или принимать побайтно через аппаратный USART (байт пришел, сработало прерывание, обработал), или почитать хелп на команду serin повнимательнее. Там есть такие параметры как Timeout и Label. Таймаут ставишь 200 мс, например, Label - это куда он прыгнет, если за 200 мс так ничего и не принял. Label можно поставить после обработки принятых serin-ом переменных. Смысл в том, что если serin в течении 0,2 сек ничего не принял, то идти дальше, опрашивать кнопки, еще чего-то делать, затем goto start и опять сидим 0,2 сек в serin-е, ждем от компа посылку. Т.е. большую часть времени МК будет в ожидании посылки с ком-порта. Ну комп так же работает - тоже большую часть сидит и ждет команды от мыши/клавы.
Сообщение отредактировал
Dmitry - Сб, 03.10.2009, 00:53
|
|
|
|
Володимир |
Дата: Ср, 02.06.2010, 18:16 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 22.04.2010
Статус:
Offline
|
Quote (DIKTATOR) команды SERIN и SEROUT реализовывают программный интерфейс RS232 на любом порту мк Скажите пожалуйста, а этими командами можно проводить обмен на скоростях больше 9600, в модуле MODEDEFS.BAS максимальная скорость 9600 а мне нужно хотяби 10400
Сообщение отредактировал
Володимир - Ср, 02.06.2010, 18:17
|
|
|
|
terrarus |
Дата: Ср, 02.06.2010, 20:08 | Сообщение # 13 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Quote (Володимир) команды SERIN и SEROUT реализовывают программный интерфейс RS232 на любом порту мкСкажите пожалуйста, а этими командами можно проводить обмен на скоростях больше 9600 Конечно можно, только в начале программы укажите частоту не 4 МГц,а больше например 20 мГц. И соответственно нужную скорость.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
Володимир |
Дата: Вт, 22.06.2010, 17:35 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
69
Замечания:
±
На сайте с 22.04.2010
Статус:
Offline
|
Quote (terrarus) команды SERIN и SEROUT реализовывают программный интерфейс RS232 на любом порту мкСкажите пожалуйста, а этими командами можно проводить обмен на скоростях больше 9600 Конечно можно, только в начале программы укажите частоту не 4 МГц,а больше например 20 мГц. И соответственно нужную скорость. А как тогда скорость задавать? По формуле 1000000/бод-20, или можно по файлу modedefs.bas ?Добавлено (22.06.2010, 17.35.42) --------------------------------------------- Делаю БК для автомобиля http://www.bk-ukraine.narod.ru/files/Shema.pdf в котором будет подключен к ЭБУ через К-лайн адаптер, теперь думаю не выгорит ли у меня порт в пике так как при таком подключении на входе RХ размах сигнала будет 12В.
|
|
|
|
terrarus |
Дата: Вт, 22.06.2010, 23:34 | Сообщение # 15 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Обязательно выгорит если не принять дополнительных мер по согласованию уровней , либо при помощи преобразователей типа Max232 или при помощи простейших схем и мер описанных в постах 2,7 и 9.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|