2013-10-18 59 views
1

請幫忙,我花了幾個小時試圖解決問題。從微控制器發送到調制解調器的AT命令被忽略

設置:MSP430(F5529微控制器),HW UART(USCI_A0)和調制解調器連接(uBlox Leon G100)。我確信USCI_A0端口工作良好,因爲如果通過USB-to-RS232將它連接到PC,我可以看到正確的流量。

簡單

uart_puts(UART_MODEM, "AT+CPWROFF\r"); 

應把AT + CPWROFF到調制解調器。它可能會但調制解調器不關機。如果我只是將調制解調器連接到PC,然後鍵入「AT + CPWROFF」,然後調制解調器關機。 我也在PC控制檯上確認「\ r」運作良好 - 它只是正確地返回馬車。試過「\ n \ r」,也不起作用。檢查S3字符的調制解調器設置,它是013(CR或\ r)。

我不知道什麼是錯的。電腦到調制解調器工作正常(我可以關閉調制解調器),MSP430到PC工作正常(我可以看到微調器真的把AT + CPWROFF \ r放在UART上),但MSP430到調制解調器不工作。

我可以通過查看消耗的電流來確定調制解調器是打開還是關閉。

請提供任何提示?

+1

從微控制器發送到調制解調器的其他命令是否工作? –

+0

@ EricJ.No,我連接了邏輯分析儀以查看UART上出現了什麼問題。這是通過Python腳本在/ dev/ttyUSB0到調制解調器之間進行正確通信的轉儲:http://inet24.pl/~morales/modem_ok.html這是由微控制器完成的通信(相同的設置) :http://inet24.pl/~morales/modem_nook.html。看起來調制解調器響應垃圾,還有一個FRAME數據存在,這在發生時間是可變的(有時甚至有20個FRAME)。我使用115200和9600波特率來排除時鐘不準確性。我瘋了... – tml

回答

0

好的,問題解決了。如果你看看我發送的鏈接上檢測到的波特率,你會注意到,在PC上,精確的波特率是9585(這是同步差的0.14%),而MCU是7862(這是同步差的2.73% )。我切換到4MHz晶體,現在約有0.23%不同步。真的很想知道DCO給出如此不穩定的時鐘。

相關問題