|
MSP430F449 UART - необходима помощь...., help |
|
|
|
Dec 12 2005, 12:48
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 12-12-05
Пользователь №: 12 106

|
Люди, если не трудно, помогите студенту: Хочу связать MSP430F449 с PC через COM (ну хотя бы, чтоб контроллер эхо на HyperT дал) и ничего не получается. Заранее спасибо.
|
|
|
|
|
Dec 12 2005, 13:56
|

Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 28-10-05
Из: Киев
Пользователь №: 10 227

|
а какие конкретно проблемы? ставится микросхема типа ST232, настраивается UART (в доке достаточно точно описан этот процесс) - и все! правда у меня иногда бывали проблемы именно с гипертерминалом (почему-то байты приходят. но не отправляются. в этом смысле беспроигрышный вариант - mTTY
Прикрепленные файлы
MTTTY.rar ( 104.99 килобайт )
Кол-во скачиваний: 96
|
|
|
|
|
Dec 13 2005, 02:59
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
Господа разработчики, вы неправильно поняли fenriza! Мы с ним занимаемя разработкой небольшого устройства, какого неважно. На этапе отладки нам требуется связаться с сом-портом по терминальной программе. В качестве преобразователя уровней RS-232 в TTL используется MAX232 со стандартной обвязкой взятой из мануала. Текст программы следующий: #include <msp430x44x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT FLL_CTL0 |= XCAP18PF; // Configure load caps P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD UCTL0 |= CHAR; // 8-bit character UTCTL0 |= SSEL0; // UCLK = ACLK UBR00 = 0x0D; // 32k/2400 - 13.65 UBR10 = 0x00; UMCTL0 = 0x6B; // Modulation UCTL0 &= ~SWRST; // Initialize USART state machine IE1 |= URXIE0; // Enable USART0 RX interrupt // Mainloop for (;;) { _BIS_SR(LPM3_bits + GIE); // Enter LPM3 w/interrupt while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready? TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0 } } // UART0 RX ISR will for exit from LPM3 in Mainloop __interrupt void usart0_rx (void); USART0RX_ISR(usart0_rx) __interrupt void usart0_rx (void) { _BIC_SR_IRQ(LPM3_bits); // Clear LPM3 bits from 0(SR) } Взят из стандартных примеров Тексаса. Среда - Code Composer. Контроллер находится в отадочной плате, т.е. питание и прочая разводка выполнена заводстким методом. Единственная добавленная деталь - кварц на 32 КГц с обвязкой из двух кондеров на 10 пФ. Сам микроконтролер рабочий - работоспосоност проверена с помощью тестовой программы с лапочкой. Сама микросхема MAX232 также рабочая. Соответсвенно возникает вопрос - где ошибка? Думается что скорее всего в коде. Он перед вами - надеемся на совет. Халявы нам не надо, а нужна помощь или совет более опытных людей!
|
|
|
|
|
Dec 13 2005, 03:58
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
Можете стучать в асю 290-240-096
|
|
|
|
|
Dec 13 2005, 04:54
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
лучше бы не MAX232, а MAX3232. а Цитата 32 КГц с обвязкой из двух кондеров на 10 пФ соответствует даташиту? Сделайте пока без всяких выпендриваний с приемом и засыпанием Код // Mainloop for (;; ) { while ( !( IFG1 & UTXIFG0 )) ; // USART0 TX buffer ready? TXBUF0 = 0x55; } должен передавать непрерывно 0х55 и смотрите осцилом, че у Вас получается.
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Dec 13 2005, 05:14
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
Не вижу принципиальной разницы между MAX232 и MAX3232... Может объясните в чем она? Что по поводу засыпания, то в принципе согласен, попробуем, хотя что-то похожее уже пытались делать.
Кондеры для кристала взяты в соответствии с опытом работы с AVR и по рекомендации мануала.
|
|
|
|
|
Dec 13 2005, 07:13
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 12-12-05
Пользователь №: 12 106

|
Попробывал забить буфер передачи TXBUF0=0x55 - результат 0. Состояние буфера на дебагере - "пустой".
|
|
|
|
|
Dec 13 2005, 07:34
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
Цитата(Fenriz @ Dec 13 2005, 18:13)  Попробывал забить буфер передачи TXBUF0=0x55 - результат 0. Состояние буфера на дебагере - "пустой". А ты отключил переход в режим LPM3? Если нет - отключи
|
|
|
|
|
Dec 13 2005, 08:08
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
Цитата Не вижу принципиальной разницы между MAX232 и MAX3232... Может объясните в чем она? Я тоже не вижу, кроме того, что MAX3232 предназначена для 3-х Вольтового питания, а MAX232 для 5 и при 3В может не запустится. Во всяком случае это всегда можно проверить тем-же осцилографом. Цитата Кондеры для кристала взяты в соответствии с опытом работы с AVR и по рекомендации мануала. А здесь надо руководствоваться мануалом на MSP :-)
Сообщение отредактировал VAI - Dec 13 2005, 08:13
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Dec 13 2005, 22:34
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Bolg, если используете MAX232 вместо MAX3232, то запитайте ее от 5В, а на входе URXD0 MSP430 установите резисторный делитель, чтобы на нем не было превышения уровня сигнала выше питания. Для MSP430F149 с кварцем 32786Гц для скорости 2400,8,n,1 процедура инициализации USART0 примерно такая. Код #define PIN_TXD0 0x10 #define PIN_RXD0 0x20
U0CTL=SWRST; U0CTL|=CHAR; U0TCTL=SSEL0; U0BR1=0x00; U0BR0=0x0D; U0MCTL=0x6B; ME1|=UTXE0+URXE0; U0RCTL=URXEIE; U0CTL&=~SWRST; P3SEL|=PIN_TXD0+PIN_RXD0; IFG1&=~(UTXIFG0+URXIFG0); IE1|=UTXIE0+URXIE0; Кстати, проверьте, что часовой кварц действительно генерит.
|
|
|
|
|
Dec 14 2005, 15:21
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 12-12-05
Пользователь №: 12 106

|
MAX232 запитывается 5-ю вольтами: с физикой проблем нет всё работает как часы. UART запустил - эхо снял (Код ассемблеровый - texas-овские мануалы помогли) - с сишным кодом пока траблы.
|
|
|
|
|
Dec 15 2005, 05:38
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
Как уже заметил Fenriz, питание на MAX232 подавалось 5В. Впрочем это следовало оговорить сразу  Вообщем-то проблема с одной стороны разрешилась (ассемблер работает), но с другой стороны возникает вопрос почему С++ не работает? Ведь авторы кода одни и те же - ТI!!! To Rezident Спасибо конечно за код, но не вижу принципиальных отличий от предложенного мной  Хочу лишь спросить - он проверен на реальном устройстве? Что касается кварца, то тут сомнений никаких - 32КГц, железно!
|
|
|
|
|
Dec 15 2005, 08:53
|

Частый гость
 
Группа: Свой
Сообщений: 89
Регистрация: 28-10-05
Из: Киев
Пользователь №: 10 227

|
Цитата(Fenriz @ Dec 14 2005, 17:21)  MAX232 запитывается 5-ю вольтами: с физикой проблем нет всё работает как часы. UART запустил - эхо снял (Код ассемблеровый - texas-овские мануалы помогли) - с сишным кодом пока траблы. Работать-то оно работает, но все-таки делитель на входе процессора не помешает. Хоть 430 и не выгорает от 5 вольт на входе, по даташиту он все-таки не 5 вольт толерант.
|
|
|
|
|
Dec 15 2005, 14:47
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 12-12-05
Пользователь №: 12 106

|
На проце питание 3.6 вольта, питать 5-ю не рискнули. Если кто знает киньте ссылки на мануалы по работе с FLASH-памятью для MSP430 (интересует запись и запус содержимого FLASH)....
|
|
|
|
|
Dec 15 2005, 15:21
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Fenriz @ Dec 15 2005, 19:47)  На проце питание 3.6 вольта, питать 5-ю не рискнули. Имелось в виду не запитывать MSP430 от 5В, а согласовать уровни сигнала выхода приемника MAX232 и входа URXD MSP430. Цитата(Fenriz @ Dec 15 2005, 19:47)  Если кто знает киньте ссылки на мануалы по работе с FLASH-памятью для MSP430 (интересует запись и запус содержимого FLASH).... Апликухи от производителя (типа slaa103) и User's Guide не рулят что ли? Или именно на русском нужно? Техника самопрограммирования флэш-памяти MSP430
|
|
|
|
|
Dec 16 2005, 13:26
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 12-12-05
Пользователь №: 12 106

|
Для resident: нет язык мануала принципиального значения не имеет. За ссылку спасибо...буду разбираться. На счёт согласования уровней учту.
|
|
|
|
|
Dec 18 2005, 02:29
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
Цитата(rezident @ Dec 16 2005, 01:21)  Цитата(Fenriz @ Dec 15 2005, 19:47)  На проце питание 3.6 вольта, питать 5-ю не рискнули.
Имелось в виду не запитывать MSP430 от 5В, а согласовать уровни сигнала выхода приемника MAX232 и входа URXD MSP430. Цитата(Fenriz @ Dec 15 2005, 19:47)  Если кто знает киньте ссылки на мануалы по работе с FLASH-памятью для MSP430 (интересует запись и запус содержимого FLASH).... Апликухи от производителя (типа slaa103) и User's Guide не рулят что ли? Или именно на русском нужно? Техника самопрограммирования флэш-памяти MSP430Собственно в чем проблема? Если микроконтроллер работает на ТТЛ/КМОП уровнях и микросхема MAX232 работает на этих же самых уровнях. Не хотите же Вы сказать, что если у нас микроконтролер с низким энергопотреблением (т.е. 3,6В), то у него какие-то "свои" уровни логики? Вообщем в UART'ом можно сказать разобрались  , теперь на очереди SPI... Будем надееятся, что там все будет нормально Всем кто принимал участие в обсуждении и, в особенности VAI, большой
|
|
|
|
|
Dec 19 2005, 04:08
|
Участник

Группа: Новичок
Сообщений: 24
Регистрация: 12-12-05
Пользователь №: 12 106

|
ТТЛ (0-5)В: 0.4В - лог0; 2.4В - лог 1; 1.2В - порог КМОП (0-5)В: 1В - лог0; 4В - лог1; 2.5В - порог Делитель на входе, чтобы ограничить уровень 5В и получить 3.6В ???зачем ругаться, можно ведь просто объяснить????
|
|
|
|
|
Dec 20 2005, 20:59
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Bolg @ Dec 19 2005, 06:05)  За грубость не извиняю!  Собственно тоже самое можно спросить у Вас, уважаемый! Что Вы имели в виду?  Я имел в виду, что если вы лично не видите необходимости в электрическом согласовании сигналов устройств, питающихся от разных по величине напряжений и притом имеющих непосредственные связи, то не стоит думать, что это совершенно незначащий факт и тем более поучать других. Особенно учитывая, что на этот факт пытались обратить внимание несколько разных людей. При подаче на вход MSP430 (даже запитанного от 3,6В) сигнала с уровнем выше, чем VCC+0.3В откроется защитный диод и ток (а максимум для этого диода +-2мА) потечет через него. Ваше счастье, что MAX232 в таком случае не дает большого выходного тока (хотя выходной ток ее приемника при к.з. до 30мА может достигать) , а то защитный диод (а вслед за ним и вход MSP430) пробился бы. И фиг его знает, что следующее на очереди за ними было.
|
|
|
|
|
Dec 21 2005, 05:13
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
Fenriz Вы не правы. Цитата ТТЛ (0-5)В: 0.4В - лог0; 2.4В - лог 1; 1.2В - порог КМОП (0-5)В: 1В - лог0; 4В - лог1; 2.5В - порог Во первых, Вы указали только верхний порог для лог0 и нижний порог для лог1. На самом деле так: ТТЛ (0-5)В: 0 ... 0.4В - лог0; 2.4 ... 5В - лог 1. Верхний порог лог1 и для КМОП и для ТТЛ == напряжению питания. И эти 5В, как написал rezident сожгут Ваш MSP. Учите матчасть. Элементарные вещи необходимо знать. Меня тоже бесит, когда выпускнику старших классов приходится объяснять, чему равно 2*2. Те элементарные вещи, которые разжевывал Вам rezident, Вы должны знать. Иначе нечего заниматься разработкой электроники.
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Dec 22 2005, 02:31
|

Группа: Новичок
Сообщений: 8
Регистрация: 13-12-05
Из: Хабаровск
Пользователь №: 12 142

|
 Я не тормоз, я медленный газ... Собственно, просто сразу не дошло что речь идет об ограничении верхнего уровня лог. 1. Приношу извинения за столь очевидную глупость с моей стороны!  Поверьте, это не нарочно!  "Давайте жить дружно!"
Сообщение отредактировал Bolg - Dec 22 2005, 02:33
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|