Связь МК с PC по RS232

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Связь МК с PC по RS232

Сообщение dosikus »

Smen писал(а):Лучше вот объясни, зачем действительно порты надо на вход настраивать, если из схемы в ДШ получается, что их вообще настраивать необязательно?


Это как это.? :)))
Во всех версиях даташита на 877 и 2001 и 2003 и 2013 писано :

Bit SPEN (RCSTA<7>) and bits TRISC<7:6> have to
be set
in order to configure pins RC6/TX/CK and
RC7/RX/DT as the Universal Synchronous Asynchronous Receiver Transmitter.


Переведу -БитSPEN (RCSTA<7>) и биты TRISC<7:6> должны быть установлены ...


а нужно для исключения влияния обвязки пинов на USART.
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Связь МК с PC по RS232

Сообщение Smen »

dosikus писал(а):писано
Ты невнимательно тему читал?
Повторяю ещё раз: ... из схемы в ДШ ...
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Связь МК с PC по RS232

Сообщение dosikus »

Smen, скорей всего это писано что бы однообразить конфигурацию периферии .
Если в данном случае пины имеют фиксированный вход или выход , то в I2C динамический.
И не забываем о ЧМЗ .
Надеюсь почему именно на вход понятно? :)))
Аватара пользователя
Hispanus
Грызет канифоль
Сообщения: 262
Зарегистрирован: Сб мар 26, 2011 14:17:14
Откуда: Оренбург

Re: Связь МК с PC по RS232

Сообщение Hispanus »

Smen, вот это и есть инициализация :)) :

Код: Выделить всё

PORTD=0b00000000;


Когда я любое действие с портом D выполняю, программа зависает и перестает выполняться. Как Вы думаете, что это может быть?

P.S. МК 16f877
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.

[i]Лорд Кельвин, физик, 1899 г.[/i]
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Связь МК с PC по RS232

Сообщение Smen »

Hispanus писал(а):любое действие
Так уж и любое?
На вход пробовали настраивать?

Hispanus писал(а):что это может быть?
Например "сопля" на соседний порт.



dosikus писал(а):в данном случае пины имеют фиксированный вход или выход , то в I2C динамический
Кстати, насколько помню, все они должны иметь ОС, но по схеме этого опять-таки не получается.
P.S.: I2C вообще-то на другом выводе, но, в рассматриваемой части они идентичны.
Про ЧМЗ мысль поясни?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Связь МК с PC по RS232

Сообщение dosikus »

Smen писал(а):P.S.: I2C вообще-то на другом выводе, но, в рассматриваемой части они идентичны.

Я выше же писал - чтобы однообразить. Другого объяснения пока не вижу.
Smen писал(а):Про ЧМЗ мысль поясни?


When enabling peripheral functions, care should be
taken in defining TRIS bits for each PORTC pin. Some
peripherals override the TRIS bit to make a pin an
output, while other peripherals override the TRIS bit to
make a pin an input. Since the TRIS bit override is in
effect while the peripheral is enabled, read-modifywrite instructions (BSF, BCF, XORWF) with TRISC as the
destination, should be avoided. The user should refer
to the corresponding peripheral section for the correct
TRIS bit settings


При разрешенной периферии необходимо определять TRIS биты для каждого пина PORTC .
Некоторая периферия перезаписывает бит TRIS делая пин выходом , другая делает входом.
Во избежания перезаписи бит TRIS при включенной периферии, нужно избегать применнения Read-Modify-Write (ЧМЗ) инструкций (BSF, BCF, XORWF) для TRIS .
Пользователь должен руководствоваться соответствующей секцией описания периферии для корректной установки бит TRIS.

Не вижу никаких причин не верить .
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Связь МК с PC по RS232

Сообщение Smen »

dosikus писал(а):чтобы однообразить
Т.е. получается, что они ни фига не ОС.

dosikus писал(а):Не вижу никаких причин не верить
Я тоже.
А если кто не верит, достаточно посмотреть, на схеме, откуда считываются значения TRIS.
Это всё читали. Я думал, ты о чём-то ещё.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Связь МК с PC по RS232

Сообщение dosikus »

Smen писал(а):Это всё читали. Я думал, ты о чём-то ещё.


Да я собственно до сих пор на твой же вопрос отвечаю:

Лучше вот объясни, зачем действительно порты надо на вход настраивать, если из схемы в ДШ получается, что их вообще настраивать необязательно?


:)))
smart_pic
Встал на лапы
Сообщения: 132
Зарегистрирован: Ср фев 11, 2015 19:16:32
Контактная информация:

Re: Связь МК с PC по RS232

Сообщение smart_pic »

Smen писал(а):
Hispanus писал(а):непрерывная передача символа
Для начала, так делать нельзя.
Между байтами (или пакетами байт) необходимо вставлять защитный интервал длительностью не менее периода передачи одного байта, включая стартовый и стоповый биты.


защитный интервал не нужен. Байты могут идти один за другим без разрывов.
При скорости 1200 и тактовой частоте 4МГц все будет корректно передаваться и приниматься .
Главное правильно сделать обработку прерываний. да и на другие частоты в этом плане нет ограничений.

настраивать нужно пин приемника на ВВОД , т.е в TRIS записать 1. А пин передатчика настроить на вывод , т.е в TRIS записать 0.
Некоторые PICи при инициализации USAR , происходит автоматическая настройка пинов на ввод и вывод. Но делать это считается правилом хорошего тона на С, чтоб сохранить переносимость программ при переходе на другой чип.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Связь МК с PC по RS232

Сообщение dosikus »

smart_pic, а может прочитаем для начала ветку -какой чип обсуждается , даташит на него .
И только потом со своими советами о TRIS встрянем?
-=Vovka=-
Опытный кот
Сообщения: 844
Зарегистрирован: Пн апр 11, 2011 10:08:52

Re: Связь МК с PC по RS232

Сообщение -=Vovka=- »

Искал эррату, а попалась статья на русском, может кому сгодиться:
Модуль USART микроконтроллера PIC18F458 - регистры и принципы работы
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Связь МК с PC по RS232

Сообщение Smen »

smart_pic писал(а):защитный интервал не нужен
Не нужно писАть всякую хрень, когда не понимаешь о чём речь.
Причём тут скорость?
Автор - тролль.


-=Vovka=- писал(а):может кому сгодиться
Похоже, что те, кому бы и пригодилось, больше тут не появятся.
"Заработала", и выяснять причины, почему до того не работало, ни к чему.
Так что ждём очередных тем "Памагите!". :)
Vano79
Открыл глаза
Сообщения: 60
Зарегистрирован: Пт янв 11, 2013 10:54:43

Re: Связь МК с PC по RS232

Сообщение Vano79 »

Smen писал(а):Не нужно писАть всякую хрен

Ну так объясните нам почему
Smen писал(а):Между байтами необходимо вставлять защитный интервал длительностью не менее периода передачи одного байта
??
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Связь МК с PC по RS232

Сообщение OKF »

Smen писал(а):Только ламеры и чайники пишут для 877-го на Сях. :)
Да что там для 877. Тут встретил, для PIC12-го.

Прочёл с начала. Торкнуло. А кто ж я тогда, коль для PIC10F200 писал на Си, и ни чё. Должно быть полный ламер?))
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Связь МК с PC по RS232

Сообщение OKF »

Smen писал(а):Между байтами (или пакетами байт) необходимо вставлять защитный интервал длительностью не менее периода передачи одного байта, включая стартовый и стоповый биты.

Вот где специалист то виден! Не то мы, лохи!
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Связь МК с PC по RS232

Сообщение Smen »

Vano79 писал(а):объясните нам почему
Вкратце.
Потому, что генераторы приёмника и передатчика UART практически никогда не бывают когерентны.
В результате, если гнать данные сплошным потоком ошибка будет накапливаться, и когда-нибудь "выстрелит" (т.е. произойдёт сдвиг считываемых данных). Выйти из этой ошибки будет проблематично.
Особенно велика вероятность её возникновения, когда приёмник подсоединяют к уже работающему передатчику (или передатчик начинает работать сразу после включения питания, когда приёмник ещё не стартанул).
Используя же небольшие пакеты с защитным интервалом, можно применять даже МК с внутренним генератором.


OKF писал(а):Прочёл с начала
Но по диагонали, потому что
OKF писал(а):Торкнуло
Причём здорово. :)))
Vano79
Открыл глаза
Сообщения: 60
Зарегистрирован: Пт янв 11, 2013 10:54:43

Re: Связь МК с PC по RS232

Сообщение Vano79 »

Smen писал(а):
Vano79 писал(а):объясните нам почему
Вкратце.
Потому, что генераторы приёмника и передатчика UART практически никогда не бывают когерентны.
В результате, если гнать данные сплошным потоком ошибка будет накапливаться, и когда-нибудь "выстрелит" (т.е. произойдёт сдвиг считываемых данных). Выйти из этой ошибки будет проблематично.
Особенно велика вероятность её возникновения, когда приёмник подсоединяют к уже работающему передатчику (или передатчик начинает работать сразу после включения питания, когда приёмник ещё не стартанул).
Используя же небольшие пакеты с защитным интервалом, можно применять даже МК с внутренним генератором.
:o
Давайте по порядку, если вы не возражаете.
О какой ошибке идет речь? Аппаратной (приемный буфер пика), программной?
Что есть "сдвиг считываемых данных"? Для обработки данных в сплошном потоке существуют протоколы, методы и т.п., и т.д. позволяющие минимизировать или исключить вовсе ошибки обмена.
когда приёмник подсоединяют к уже работающему передатчику (или передатчик начинает работать сразу после включения питания, когда приёмник ещё не стартанул См. выше.
Используя же небольшие пакеты с защитным интервалом, можно применять даже МК с внутренним генератором. Вы обмолвились об интервалах между байтами, меня это прежде всего заинтересовало, но и защитный интервал между пакетами вещь весьма спорная. И уж каким боком тут МК с внутренним генератором?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Связь МК с PC по RS232

Сообщение ARV »

мда...

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

кроме того, в аппаратном протоколе УЖЕ заложен "защитный интервал" - так называемые стоп-биты, которых может быть более одного - они и выполняют функцию формирования некоторой задержки для того, чтобы приемник успевал обработать только что пришедший байт.

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

Мой уютный бложик... заходите!
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Связь МК с PC по RS232

Сообщение HHIMERA »

Приятно созерцать конкурс "Тупой и ещё тупее!"(С)... в попытках воскреить своё эго... :music:
"Я не даю готовых решений, я заставляю думать!"(С)
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Связь МК с PC по RS232

Сообщение Smen »

Vano79 писал(а):об интервалах между байтами
Это идеальный вариант, с точки зрения выявления ошибочного приёма, но самый плохой, с точки зрения интерфейса.
Как обычно, выбираем среднее: пакеты.

Vano79 писал(а):каким боком тут МК с внутренним генератором?
Стабильность у встроеннго RC-генератора на порядок меньше.


ARV писал(а):приемник обычно делает не 1 опрос на бит, а несколько, и вычисляет состояние принятого бита по мажоритарному принципу
"Капитан Открытие" :)
И как Вы этой самой мажоритарностью разрулите такую ситуацию? :wink:

Изображение
Ответить

Вернуться в «PIC»