реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопрос по USART'у, Multi-processor Communication Mode
_lukash_
сообщение Oct 11 2007, 16:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 126
Регистрация: 1-09-07
Из: Винница
Пользователь №: 30 222



Всем привет!

В даташите на МК (все тот же AT90PWM3, у которого не работает SPI slave без SS:)) сказано, что при включенном режиме MPCM, приемник игнорирует все входящие данные (не помещает их буфер), если они не являются адресом. Т.е. slave контроллер, распознав свой адрес, отключает режим MPCM, и начинает принимать данный от master'а, а все остальные slave'ы по прежнему находятся в MPCM режиме и просто игнорируют эти посылки данных.

Так вот, могу ли я просто соединить все Tx выходы всех slave'ов в одну точку, которая будет подключена к Rx master'а, или же нужно на каждый Tx slave'а ставить по 2 транзистора перед соединением?

Просто в не MPCM режиме ведь Tx настроен как выход, и его ведь нельзя соединять с остальными Tx, настроенными также. Но в даташите сказано, что при включенном MPCM: "The Transmitter is unaffected by the MPCM setting". Т.е. как настроен Tx в данном случае, как input?
Go to the top of the page
 
+Quote Post
_Sam_
сообщение Oct 11 2007, 20:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 278
Регистрация: 18-01-05
Из: Санкт-Петербург
Пользователь №: 2 031



MPCM изменяет логику работу приёмника и ничего более. UART остаётся собой.smile.gif и когда он включен Tx в 1. Если два Tx объединить они будут подсаживать друг друга. Можно конечно после передачи отключать Tx, но тогда логика работы сети должна исключать возможность включения двух Tx одновременно. Обычно для организации совместной работы нескольких UART используют драйверы интерфейса RS485, CAN и др.
Go to the top of the page
 
+Quote Post
Stas633
сообщение Oct 12 2007, 07:24
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Как известно, вывод TX становится TX только тогда, когда установлен флаг (бит) TXEN. Если TXEN не установлен, то вывод TX функционирует как обычный. И если он (этот вывод порта) установлен как "ВХОД", то сразу после снятия TXEN TX становится входом.
Далее, не согласен с тем, что установка MPCM меняет ТОЛЬКО логику работы приемника. Так же запрещается работа передатчика (повторю приведенную автором темы выдержку из datasheet): "...The Transmitter is unaffected by the MPCM setting, but has to be used differently when it is a part of a system utilizing the Multi-processor Communication mode...." (п.18.9).
То есть, как я понимаю, если в ведомом установлен бит MPCM, то настройка (in/out) вывода TX определяется пользователем, то есть бит TXEN сброшен. Как только ведомый принимает СВОЙ адрес, MPCM сбрасывается, а TXEN устанавливается.... и TX "становится" TX-ом.
К сожалению, документальных "свидетельств" описанного алгоритма я не нашел (кроме указанного выше), опыты не проводил (работал с 2-мя МК на шине , с 3-мя и более - нет). Но коль скоро, даже 51-я серия подключалась в мультипроц. режиме по ОДНОМУ проводу (TX и RX объединялись), то и AVR "обязаны" проблему подключения 3-х и более кристалов на шину решать без транзисторов.
....
Попробуйте, хотя бы в симуляторе... (Если появится свободное время, то в выходные поэкспериментирую сам)
...
Кстати, все рассмотренное выше распространяется на все AVR МК.
Go to the top of the page
 
+Quote Post
_lukash_
сообщение Oct 12 2007, 14:09
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 126
Регистрация: 1-09-07
Из: Винница
Пользователь №: 30 222



Спасибо Stas633, _Sam_.

Пока буду на транзисторах делать, а потом еще и без них попробую - поставлю джампер. Попробую еще и с симулятором разобраться...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Oct 12 2007, 17:06
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Stas633 @ Oct 12 2007, 11:24) *
Но коль скоро, даже 51-я серия подключалась в мультипроц. режиме по ОДНОМУ проводу (TX и RX объединялись), то и AVR "обязаны" проблему подключения 3-х и более кристалов на шину решать без транзисторов.


Не путайте с 51!
Там порты 1 и 3 не имеют пуш-пула на выходе. Т.е. нижний транзюк и подтяжка (типовое значение 8,2 кОм). Конечно, там очень просто соединить Rx & Tx. biggrin.gif
Go to the top of the page
 
+Quote Post
Stas633
сообщение Oct 13 2007, 23:02
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Провел эксперимент...
Условия: м16, AVRStudio, JTAG ICE, осциллограф.
....
Итоги:
- _Sam _ абсолютно прав. От состояния бита MPCM зависит только будет ли принятый байт проверятmся на содержание признака адреса (9 бит или первый стоповый, если 8-битный режим). И если MPCM установлен в 1, то флаг об окончании приема байта (RXC) будет выставлен только если принят байт с признаком адреса ;
- "подтверждено", что сброс TXEN "возвращает" вывод к системным установкам.

Предложения:
- для объединения нескольких выводов TX пользоваться битом TXEN. Например так: 1.Вывод порта, совмещенный с TX, настроить как "вход", без подключения подтяг.резистора; 2.Программу работы МК дополнить двумя командами: - установкой бита TXEN после сброса бита MPCM; - сброса бита TXEN перед установкой MPCM. (Как вы понимаете, сброс и установка MPCM - это процедуры, которые в программе будут обязательно).
Ни каких дополнительных проверок, условий в "...логику работы сети..." вводить не нужно. В предложенном решении вероятность одновременного включения нескольких TX равна вероятности ошибочного определения адреса одним из МК как "своего", и не зависит от схемотехнического решения.

P.S. (OFFTOP)
"...The Transmitter is unaffected by the MPCM setting, but ...."
В данном контексте Transmitter - это не передающий блок SLAVE'а, и передатчик (источник сигнала) MASTER'а. (я поддался искушению и принял желаемое за действительное smile.gif )
Go to the top of the page
 
+Quote Post
klop
сообщение Aug 1 2012, 07:53
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Чтоб не плодить темы.
Поясните пожалуйста работу с битом MPCM в режимах с количеством бит данных меньше чем девять.
И для премника и для передатчика.
Заранее спасибо.
Go to the top of the page
 
+Quote Post
_basile
сообщение Aug 9 2012, 15:50
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 175
Регистрация: 18-01-06
Из: Москва
Пользователь №: 13 329



Не рекомендую такую фигню использовать. Под виндой такое не пройдет. Как отлаживать будешь. В известных мне АРМах этот режим можно реализовать через ЖО*У. Непонятно, чем этот режим полезен. Типа, чтобы не дергать проц прерываниями по USART-у, когда он занят чем-то другим? Так, он ровно так же будет дергаться в случае прихода пакета по его адресу. Просто сбоить будет реже, если нет запаса по времени.

Цитата(_lukash_ @ Oct 11 2007, 19:19) *
Всем привет!

В даташите на МК (все тот же AT90PWM3, у которого не работает SPI slave без SS:)) сказано, что при включенном режиме MPCM, приемник игнорирует все входящие данные (не помещает их буфер), если они не являются адресом. Т.е. slave контроллер, распознав свой адрес, отключает режим MPCM, и начинает принимать данный от master'а, а все остальные slave'ы по прежнему находятся в MPCM режиме и просто игнорируют эти посылки данных.

Так вот, могу ли я просто соединить все Tx выходы всех slave'ов в одну точку, которая будет подключена к Rx master'а, или же нужно на каждый Tx slave'а ставить по 2 транзистора перед соединением?

Просто в не MPCM режиме ведь Tx настроен как выход, и его ведь нельзя соединять с остальными Tx, настроенными также. Но в даташите сказано, что при включенном MPCM: "The Transmitter is unaffected by the MPCM setting". Т.е. как настроен Tx в данном случае, как input?



--------------------
" Будут с водкою дебаты, отвечай : Нет ребяты-демократы, только чай ! "
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Aug 10 2012, 06:21
Сообщение #9


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(_basile @ Aug 9 2012, 19:50) *
...Под виндой такое не пройдет. Как отлаживать будешь. ...будет дергаться в случае прихода пакета по его адресу....


Под виндой замечательно работает. Вы "не умете их готовить" sm.gif Отлаживается точно так же как и обычный COM порт. Дёргается только на первый байт. При соединении через монтажное ИЛИ и одинаковости потенциала - можно соединять энное кол-во устройств (только софтверое ограничение).
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01419 секунд с 7
ELECTRONIX ©2004-2016