-
Постов
39 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о maxim_P
-
Звание
Участник
- День рождения 29.11.1982
Контакты
-
Сайт
Array
Информация
-
Город
Array
Посетители профиля
872 просмотра профиля
-
Добрый день.В 1611 после передачи команды делаю задержку перед переключением на прием. После того как 5419 принял команду, задержка перед переключением на ответ. И еще одна задержка перед переключением 5419 на прием. Все заработало. Еще раз большое спасибо.
-
Спасибо за информацию, на следующей неделе попробую.
-
Основной режим 1611 - передача, то есть при инициализации контроллер настраиваю на передачу, как только был отправлен последний байт, сразу же переключаю на прием (Сбрасываю флаг RXIFG, разрешаю прерывания по приему), затем делал паузу, но я ее почему-то закомментировал, восстановлю. Основной режим 5419 - прием, при инициализации настроен на прием. Как только был принят последний байт, далее переключение на передачу, затем формирование ответа, вычисление CRC ответа, передача ответа. Как я понял, необходимо делать задержки после каждого переключения на прием/передачу?
-
Мне было бы не влом, а только в радость. Возникла необходимость замены устройства, на аналог, и это устройство "общается" с базовой платой через полудуплекс. Чтобы не менять базовую плату и программное обеспечение придется делать так. Вообще я пробовал такой вариант чуть раньше, как только 1611 передал команду, я переключаю его на прием с помощью P3SEL, 5419 после того как принял последний байт переключается на передачу. Картина та же. Я, конечно, еще раз попробую. Получится только в понедельник. RXD можно не трогать? Кстати, в 5419 есть такой бит USLISTEN, который закорачивает RXD и TXD внутри процессора, его случайно не нужно использовать?
-
Я же настраиваю P3.4, P3.5 на UART, как настроены POUT, PDIR не имеет значения, так по крайней мере написано в конце даташита. Используется полудуплекс - RXD и TXD закорочены на обоих контроллерах. Земля между контроллерами есть. По поводу заземления точно сказать не могу. Как я уже выше писал, если линию разорвать, то импульсы имеют амплитуду 3,3В (что и требуется) на обоих контроллерах (измерял осциллографом в тех же условиях), то есть проблема не с осциллографом, а скорее с настройками обмена данных.
-
Все порты РхDIR и РхOUT в начале программы обнуляются. А какое направление RXD еще нужно задать? Пины не битые. При разрыве линии между процессорами сигналы четкие с обоих сторон. А когда линию соединяю, послылаю команду, то сигнал тоже не опускается полностью до нуля, но по амплитуде он достаточно высокий, чтобы прочитать данные. Питание 3,3 вольта. Амплитуда команды примерно 2,7В, амплитуда ответа примерно 0,6В. В сумме они дают 3,3В. Осциллограф заземлен. Прикладываю осциллограмму.
-
1. Прерывания от передатчика запрещены в обоих процессорах, прерывания только по приему. 2. Не совсем понял. 3. P3.5 выбран как RXD (P3SEL |= BIT4 + BIT5) или ему еще нужно направление задать? Модули все включил, все вавно та же ситуация. Еще по поводу просаживания. Когда нет обмена, на линии высокий уровень, когда идет передача данных, тогда уровень меняется с высокого на низкий, в моей ситуации уровень не доходит до нуля, он только немного опускается, но этого не достаточно для вызова прерывания.
-
Добрый день. Стоит задача обмена данными между двумя процессорами msp430f5419 и msp430f1611 через полудплекс. msp430f1611 (далее 1611) посылает команду, а msp430f5419 (далее 5419) должен ответить. 5419 команду принимает корректно, формирует ответ, а вот уже ответа на 1611 нет. Смотрел осциллографом, импульсы ответа очень низкие по амплитуде. Не могу понять что не так. настройки UART Для 5419: P3DIR |= BIT4; P3SEL = BIT4 + BIT5; // разрешаем работу USART0 UCA0CTL1 |= UCSWRST; // **Put state machine in reset** UCA0CTL1 |= UCSSEL_1; // ACLK UCA0BR0 = 0x03; // 9600 UCA0BR1 = 0; // 9600 UCA0MCTL = 0x06; // Modulation UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** UCA0IE |= UCRXIE; // Enable USCI_A0 RX interrupt прием по прерыванию. как только был принят последний байт начинаю передавать данные: for (n2 = 0; n2 < transmit_buf[1] + 1; n2 ++) { while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready? UCA0TXBUF = transmit_buf[write_rec_ptr]; // TX -> RXed character } данные передаю в прерывании по приему. настройки UART Для 1611: P3SEL |= (BIT4 + BIT5); // P3.4,5 = USART0 TXD/RXD P3DIR |= BIT4; U0CTL |= SWRST ; // RST U0CTL &= ~SYNC ; // UART MODE U0CTL |= CHAR; // 8-bit char, SWRST=1 1 Stop Bit UTCTL0 |= SSEL0; // UCLK = ACLK U0BR0 = 0x03; // 9600 from 8,0Mz U0BR1 = 0x00; U0MCTL = 0x06; // Modulation UCTL0 &= ~SWRST; // Enable USART ME1 |= UTXE0; // Enabled UART0 TXD как только был передан последний байт переключаемся на прием: ME1 = URXE0; // Enabled UART0 RXD IE1 = URXIE0;
-
Модуль Sim508 для GPS
maxim_P опубликовал тема в Форумы по интерфейсам
Здравствуйте. Использую модуль Sim508_V2.03 для GPS. Модуль не видит спутников. На команды, посланные ему, отвечает, но координаты все нулевые. Пишет No GPS. С модулем общаюсь через отладочную плату Sim508_EVB_V1.01. Там есть два com-порта. Сотоветственно, 2 протокола обмена. Все подключил, как написано в докумментации. Может кто сталкивался с подобной проблемой? -
Процессор паяли с отключенным питанием и без отладчика. После того, как процессор полностью был запаян, его подключали к отладчику.
-
На процессоре написано MSP430F1611. На процессоре питание 3.3 вольта. Разрывов для осуществления программирования тоже нет. Процессор паяли с помощью фена. Может быть перегрели сильно?
-
При попытке запрограммировать процессор, вылетает такая ошибка: Thu Jan 29 11:51:53 2009: Failed to write memory at 0x4000 Thu Jan 29 11:51:55 2009: Warning: Failed to erase main memory Thu Jan 29 11:51:55 2009: Warning: Can not write to read only memory. Процессор стоит в устройстве. Пробовал программировать другой такой же процессор (тоже в устройстве), без проблем. Не могу понять почему? может кто знает?
-
Накопление заряда
maxim_P ответил maxim_P тема в Вопросы аналоговой техники
Как это нет. Есть такое понятие как мощность эквивалентной дозы (Зв/с). Мощность эквивалентной дозы – отношение приращения эквивалентной дозы за какой-то интервал времени. Выражается в зивертах в секунду. Поскольку время пребывания человека в поле излучения при допустимых уровнях измеряется, как правило, часами, предпочтительно выражать мощность эквивалентной дозы в микрозивертах в час. -
Накопление заряда
maxim_P ответил maxim_P тема в Вопросы аналоговой техники
Выпускают приборы для измерения мощности дозы. В них используется импульсный режим. То есть обнаружение и подсчет импульсов в единицу времени. А эксперимент - включение фотодиода в токовом режиме, то есть определение дозы радиации. Фотодиод не новый. Где-то 2005 года.