|
msp430f5419 и msp430f1611, Полудуплекс |
|
|
|
 |
Ответов
|
Mar 31 2011, 14:26
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
1. Если вы пользуетесь прерываниями, то не нужно опрашивать флаги готовности. Если опрашиваете флаг UCTXIFGx или UTXIFGx, то запретите прерывания от передатчика. 2. Маски при инициализации регистров следует накладывать только после того, как вы записали туда вместо дефолтного значения (после POR) явное значение. 3. При переключении с приема на передачу не следует отключать сам модуль USART, достаточно только запретить/разрешить прерывание. Команда Код ME1 |= UTXE0; // Enabled UART0 TXD разрешает функцию пина P3.4 как TXD, но не разрешает функцию P3.5 как RXD. Возможно поэтому возникает конфликт на линии и сигнал "просаживается". Ведь значение P3DIR.bit5 вы явно нигде не задали. И P3OUT.bit5 по-умолчанию в нуле.
|
|
|
|
|
Apr 1 2011, 06:16
|

Участник

Группа: Участник
Сообщений: 39
Регистрация: 14-06-07
Из: Минск, Беларусь
Пользователь №: 28 436

|
Цитата(rezident @ Mar 31 2011, 17:26)  1. Если вы пользуетесь прерываниями, то не нужно опрашивать флаги готовности. Если опрашиваете флаг UCTXIFGx или UTXIFGx, то запретите прерывания от передатчика. 2. Маски при инициализации регистров следует накладывать только после того, как вы записали туда вместо дефолтного значения (после POR) явное значение. 3. При переключении с приема на передачу не следует отключать сам модуль USART, достаточно только запретить/разрешить прерывание. Команда Код ME1 |= UTXE0; // Enabled UART0 TXD разрешает функцию пина P3.4 как TXD, но не разрешает функцию P3.5 как RXD. Возможно поэтому возникает конфликт на линии и сигнал "просаживается". Ведь значение P3DIR.bit5 вы явно нигде не задали. И P3OUT.bit5 по-умолчанию в нуле. 1. Прерывания от передатчика запрещены в обоих процессорах, прерывания только по приему. 2. Не совсем понял. 3. P3.5 выбран как RXD (P3SEL |= BIT4 + BIT5) или ему еще нужно направление задать? Модули все включил, все вавно та же ситуация. Еще по поводу просаживания. Когда нет обмена, на линии высокий уровень, когда идет передача данных, тогда уровень меняется с высокого на низкий, в моей ситуации уровень не доходит до нуля, он только немного опускается, но этого не достаточно для вызова прерывания.
Сообщение отредактировал maxim_P - Apr 1 2011, 06:22
|
|
|
|
|
Apr 1 2011, 07:41
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(maxim_P @ Apr 1 2011, 12:16)  2. Не совсем понял. После подачи питания или сброса регистры периферии (не все!) принимают какое-то дефотное состояние. Я вам рекомендую не надеятся на это и прописывать все регистры используемой периферии явными значениями и только потом уже в коде программы накладывать маски, модифицируя отдельные биты. Цитата(maxim_P @ Apr 1 2011, 12:16)  3. P3.5 выбран как RXD (P3SEL |= BIT4 + BIT5) или ему еще нужно направление задать? Конечно нужно. Посмотрите внимательно схемотехнику (блок-схему) пинов в конце даташита. Цитата(maxim_P @ Apr 1 2011, 12:16)  в моей ситуации уровень не доходит до нуля, он только немного опускается А не может так случиться, что пин уже "битый"? Осциллографом, например, неудачно ткнулись. Кстати, осциллограф у вас заземлен? Проверьте это предположение (неисправности пина), запрограммировав его как входной пин GPIO. Также проверьте соответствующий подключению пин на другом кристалле, запрограммировав его как выходной пин GPIO, при этом сформируйте программно его переключение. Эти простые тесты помогут определиться с тем, где именно проблема - в аппаратуре или в программе?
|
|
|
|
|
Apr 1 2011, 08:35
|

Участник

Группа: Участник
Сообщений: 39
Регистрация: 14-06-07
Из: Минск, Беларусь
Пользователь №: 28 436

|
Цитата(rezident @ Apr 1 2011, 10:41)  После подачи питания или сброса регистры периферии (не все!) принимают какое-то дефотное состояние. Я вам рекомендую не надеятся на это и прописывать все регистры используемой периферии явными значениями и только потом уже в коде программы накладывать маски, модифицируя отдельные биты. Конечно нужно. Посмотрите внимательно схемотехнику (блок-схему) пинов в конце даташита. А не может так случиться, что пин уже "битый"? Осциллографом, например, неудачно ткнулись. Кстати, осциллограф у вас заземлен? Проверьте это предположение (неисправности пина), запрограммировав его как входной пин GPIO. Также проверьте соответствующий подключению пин на другом кристалле, запрограммировав его как выходной пин GPIO, при этом сформируйте программно его переключение. Эти простые тесты помогут определиться с тем, где именно проблема - в аппаратуре или в программе? Все порты РхDIR и РхOUT в начале программы обнуляются. А какое направление RXD еще нужно задать? Пины не битые. При разрыве линии между процессорами сигналы четкие с обоих сторон. А когда линию соединяю, послылаю команду, то сигнал тоже не опускается полностью до нуля, но по амплитуде он достаточно высокий, чтобы прочитать данные. Питание 3,3 вольта. Амплитуда команды примерно 2,7В, амплитуда ответа примерно 0,6В. В сумме они дают 3,3В. Осциллограф заземлен. Прикладываю осциллограмму.
Сообщение отредактировал maxim_P - Apr 1 2011, 08:38
Прикрепленные изображения
|
|
|
|
|
Apr 1 2011, 15:30
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(maxim_P @ Apr 1 2011, 14:35)  Все порты РхDIR и РхOUT в начале программы обнуляются. Ну я же не профессиональный телепат, чтобы угадывать неопубликованные исходные тексты. Цитата(maxim_P @ Apr 1 2011, 14:35)  А какое направление RXD еще нужно задать? Для RXD вход, для TXD - выход. Пин RXD одного контроллера должен соединяться с TXD второго. Соответственно TXD первого с RXD второго. Цитата(maxim_P @ Apr 1 2011, 14:35)  Питание 3,3 вольта. Амплитуда команды примерно 2,7В, амплитуда ответа примерно 0,6В. В сумме они дают 3,3В. А выводы DVSS обоих контроллеров соединить не забыли случайно? Цитата(maxim_P @ Apr 1 2011, 14:35)  Осциллограф заземлен. Именно заземлен или подключен к трехпроводной сети? Рекомендую убрать заземляющий контакт у осциллографа. Особенно, когда к плате подключен эмулятор, подключенный в свою очередь к PC.
|
|
|
|
|
Apr 1 2011, 17:42
|

Участник

Группа: Участник
Сообщений: 39
Регистрация: 14-06-07
Из: Минск, Беларусь
Пользователь №: 28 436

|
Цитата(rezident @ Apr 1 2011, 18:30)  Для RXD вход, для TXD - выход. Пин RXD одного контроллера должен соединяться с TXD второго. Соответственно TXD первого с RXD второго. Я же настраиваю P3.4, P3.5 на UART, как настроены POUT, PDIR не имеет значения, так по крайней мере написано в конце даташита. Используется полудуплекс - RXD и TXD закорочены на обоих контроллерах. Цитата(rezident @ Apr 1 2011, 18:30)  А выводы DVSS обоих контроллеров соединить не забыли случайно? Именно заземлен или подключен к трехпроводной сети? Рекомендую убрать заземляющий контакт у осциллографа. Особенно, когда к плате подключен эмулятор, подключенный в свою очередь к PC. Земля между контроллерами есть. По поводу заземления точно сказать не могу. Как я уже выше писал, если линию разорвать, то импульсы имеют амплитуду 3,3В (что и требуется) на обоих контроллерах (измерял осциллографом в тех же условиях), то есть проблема не с осциллографом, а скорее с настройками обмена данных.
Сообщение отредактировал maxim_P - Apr 1 2011, 17:44
|
|
|
|
|
Apr 1 2011, 18:49
|

Участник

Группа: Участник
Сообщений: 39
Регистрация: 14-06-07
Из: Минск, Беларусь
Пользователь №: 28 436

|
Цитата(rezident @ Apr 1 2011, 21:40)  Поясните эту фразу. Что значит "закорочены"? Соединены между собой? У вас обмен между МК всего по одному проводу идет что ли?  ага
|
|
|
|
Сообщений в этой теме
maxim_P msp430f5419 и msp430f1611 Mar 31 2011, 12:45 rezident Вот же блин! В таком случае вам нужно после ... Apr 1 2011, 18:58 maxim_P Цитата(rezident @ Apr 1 2011, 21:58) Вот ... Apr 1 2011, 19:35  rezident Цитата(maxim_P @ Apr 2 2011, 01:35) Вообщ... Apr 1 2011, 19:50   maxim_P Цитата(rezident @ Apr 1 2011, 22:50) У ва... Apr 1 2011, 20:23    rezident Цитата(maxim_P @ Apr 2 2011, 02:23) Как я... Apr 1 2011, 21:25     maxim_P Спасибо за информацию, на следующей неделе попробу... Apr 2 2011, 07:45      maxim_P Добрый день.В 1611 после передачи команды делаю за... Apr 5 2011, 08:31
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|