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

 
 
 
Reply to this topicStart new topic
> Передача данных по UART для 430f247
Isaev_ivan
сообщение Oct 2 2016, 10:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 21-07-15
Пользователь №: 87 652



Всем добрый день! Никак не получается организовать передачу данных из МК в ПК. Над проблемой бьюсь уже не один день. Ниже приведен код:
Код
NAME
#include <msp430f247.h>
;------------------------------------------
            RSEG  CSTACK
DS    0
            RSEG CODE
;------------------------------------------
RESET   mov #SFE(CSTACK),SP
            mov.w #WDTPW+WDTHOLD,&WDTCTL  
            
            
            mov.b   #SELM_0,&BCSCTL2; DCO
            mov.b   #XT2OFF+RSEL3,&BCSCTL1; stop XT2
            bis     #OSCOFF,SR     ; stop XT1
            bis.b #XT2S_2,&BCSCTL3;4MHz
            
            bic.b #XT2OFF,&BCSCTL1
           ;bis.b #SELM_2,&BCSCTL2
SetupOsc    
            mov.w #1000,R15              
            bic.b #OFIFG,&IFG1
SetupOsc1  
            dec.w R15                    
            jnz SetupOsc1              
            bit.b #OFIFG,&IFG1            
            jnz SetupOsc                
            bis.b #SELM_2+SELS,&BCSCTL2
            bis.b #1b,P5DIR
            bic.b #1b,P1OUT
;---------------------------------------------
            bis.b #UCSWRST,&UCA1CTL1    
            clr.b &UCA1CTL0
            bis.b #UCSSEL_1,&UCA1CTL1;ACLK
            mov.b #0000,&UCA1MCTL
            mov.b #11010000b,&UCA1BR0; 4MHz/19200 = 208.3 = 100000100b;;
          mov.b #000b,&UCA1BR1        
          
            clr.b &UCA1STAT
            clr.b   &UCA1IRTCTL
            clr.b   &UCA1IRRCTL
            clr.b   &UCA1ABCTL
            bis.b #0C0h,&P3SEL; P3.6,7 - USART
            bic.b #UCSWRST,&UCA1CTL1
           ;bis.b #UCA1RXIE,&UC1IE        
       ;bis.b #GIE,SR;
       ;nop
Check
            bit.b #UCBUSY,&UCA1STAT
            jnz Check
Rep_Check0  bit.b   #UCA1RXIFG,&UC1IFG
            jz Rep_Check0
            mov.b &UCA1RXBUF,R6
Rep_Check01  bit.b   #UCA1RXIFG,&UC1IFG
            jz Rep_Check01
            mov.b &UCA1RXBUF,R7            
Rep_Check02  bit.b   #UCA1RXIFG,&UC1IFG
            jz Rep_Check02
            mov.b &UCA1RXBUF,R8
Rep_Check10  bit.b   #UCA1TXIFG,&UC1IFG
            jz Rep_Check10
            mov.b R6,&UCA1TXBUF
Rep_Check20  bit.b   #UCA1TXIFG,&UC1IFG
            jz Rep_Check20
            mov.b R7,&UCA1TXBUF            
Rep_Check30  bit.b   #UCA1TXIFG,&UC1IFG
            jz Rep_Check30
            mov.b R8,&UCA1TXBUF
            jmp Check            
            
            
            
            
            COMMON INTVEC
            
        ORG     RESET_VECTOR                
        DW      RESET
        
        END.


Уже в самом начале, когда необходимо принять данные из ПК, не происходит ровным счетом ничего. Пробовал коды с Code_examples , ничего не работает.
Если кто может, подскажите, пожалуйста, в чем проблемаsm.gif
За ранее благодарю!)
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Oct 2 2016, 12:23
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 24-02-09
Пользователь №: 45 309



Попробуйте добавить в регистр UCA1MCTL, в биты UCBRSx число 3 - как это приведено в таблице 15-4 мануала для USCI. Может этого достаточно будет.

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

Вот ещё.
Скорость передачи на стороне ПК именно 19200? Параметр настроек "Управление потоком" в состоянии Off? И остальное (бит четности, стоп бит) - как положено?
Go to the top of the page
 
+Quote Post
Obam
сообщение Oct 2 2016, 14:45
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 629
Регистрация: 14-11-14
Пользователь №: 83 663



Each bit in each PxDIR register selects the direction of the corresponding I/O pin, regardless of the
selected function for the pin
. PxDIR bits for I/O pins that are selected for other functions must be set as
required by the other function. Подчёркнуто цитирующим

P3SEL программируется - вижу, а P3DIR - не вижу.

Ну и "за ранее" пишется без пробела (;

Сообщение отредактировал Obam - Oct 2 2016, 14:46


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Isaev_ivan
сообщение Oct 2 2016, 18:25
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 21-07-15
Пользователь №: 87 652



Спасибо большое за советы, но увы, ничего не заработало( буду искать проблему дальше, может быть она не в программной части вовсе)
Go to the top of the page
 
+Quote Post
k155la3
сообщение Oct 3 2016, 06:23
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 592
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



В дополнение к вышесказанному.

Цитата(Isaev_ivan @ Oct 2 2016, 13:28) *
Всем добрый день! Никак не получается организовать передачу данных из МК в ПК.
. . . .
Уже в самом начале, когда необходимо принять данные из ПК, не происходит ровным счетом ничего. Пробовал коды с Code_examples , ничего не работает.
. . . .


Так передача в сторону ПК таки работает, али нет ?

Смотреть это надо не терминалкой, а осцилографом.
Если ОНО (передача) есть, а приема нет - проверяем скорость на которой идет передача. Если скорость нестандартная или нетачтонадо -
папилац не взлетит.
Если в процессоре этого типа есть возможность вывести контрольные частоты MCLK SMCLK ACLK - проверяем (осцилографом) их наличие
и частоты, далее - коэффиценты деления для USART с привязкой на XXCLK.

Как упрощенный вариант без осцилографа - соединяем Tx - Rx и в отладчике смтрим есть ли обмен по "кольцу".

PS
Исходя из этой команды, Вы собираетесть использовать XT2
bic.b #XT2OFF,&BCSCTL1
До этого, проверьте, возможно надо настроить порты, которые выведены на XT2.
Как в Вашем процессоре не знаю - см. даташит.


Сообщение отредактировал k155la3 - Oct 3 2016, 06:46
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd September 2017 - 10:06
Рейтинг@Mail.ru


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