Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
版主
|
一般德 UART 通訊是不建議使用RC振盪器的,他會受溫度及電壓的影響。使用RC震盪一般都配合著 Auto Baud Rate Detector 來做的,像 LIN Bus 的通訊為了節省成本就使用內部 RC 當震盪源。
發表於: 2009/4/15 14:12
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
剛剛照R大說的方式,改接外部震盪器
目前測試後確定可以,發送訊號後硬體端也有回應了 所以這代表是內部震盪器的問題嗎? 還是說內部震盪器沒法在比較高的baud rate使用? 那是否意味我要放棄使用內部震盪器? 因為考量到多一個外部震盪器就要多一些成本的問題~_~
發表於: 2009/4/14 14:08
Edited by badsan on 2009年04月14日 14:24:43
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
資深會員
|
如果確定是baudrate頻率與計算預期不同的話
可以先微調改一下baudrate參數 測試一下看看是不是就通了 不過最後還是要再改回來並且換成crystal 如果是9600bps的話,用用內部RC,那倒是還可以 頻率那麼高,還用內部RC,那就很冒險了
發表於: 2009/4/14 13:23
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
資深會員
|
從波形及baudrate計算來看,
假設6490的波形是對的. 你的64J90所送出波形就是無法解讀....(會錯誤解讀) 1. 115200每一bit為時間為:1/115200 = 8.680556 us 假設start = 1 bit, data = 8 bit, no parity, stop = 1bit, 共10 bits , 8.68us/bits x 10bits = 86.8us 同樣的信號(第一個下降緣到第四個下降緣), 看起來是第三個start信號, 8.68us *2 = 173.6 6490不到180us(差不多符合spec), 64J90確是200us,間誤差了20幾us...肯定會有問題. (就理論而言,在這86.8us中,最多只能誤差 8.68us的一半, 4.34us,以你的波形單位為100us,只能看個大概,無法分析. 註:如果要有穏定傳輸,還必需比4.34us來得小才行,但誤差 大於4.34us肯定是不行) 試著只送出一個 data,然後看誤差多少!!! 就可得知. 當然最好用 Ryang板主,建議的Crystal試試.(可整除baudrate的)
發表於: 2009/4/14 12:25
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
版主
|
可以找 4.9152MHz or 11.0592MHz or 18.432MHz 等任何一顆Crystal 試一下標準的 UART 的 BPS? 暫時先不要用 Internal RC
發表於: 2009/4/14 11:18
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
附檔是PIC18F6490 和65j90 的TX波形圖片
000那張是6490 002那張是65j90 用6490送訊號,硬體端會有回復,這部份是正常的 但用65j90送訊號,硬體端不會有回應 6490送出一個TX訊號總波長時間為600us 65j90則為636us,多了36us 65j90 Oscillator 為 INTOSC HS 6490 Oscillator 為 INT RC-CLKOUT on RA6,Port on RA7 6490 SPBRG 設為16 65j90 SPBRG 設為3,因為如果設16,則總波長都被放到好幾倍,所以設為3後,其總波長較貼近於6490的總波長 PS.不管65j90設16或3,設備端都不會有回應 PS1.其他相關 OSC、USART 設定可以參考首篇內文 Attach file: (0.00 KB) (0.00 KB)
發表於: 2009/4/14 11:06
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
版主
|
懷疑 Baud-Rate 設錯了? 繼然確定誘發送訊號那就用個 Storge Scope 抓下來先確定 bit 的傳送速率在確定封包是否完整傳送出去。
發表於: 2009/4/13 14:58
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
參照:
設備端的 baud rate 是 115200 所以我用PIC18F6490 時可以互相傳輸通訊 但是改用PIC18F65J90 後,卻沒法通訊... (因為受限於記憶體容量,所以改用65j90) 我有附上兩各pic 的OSC和USART部份設定code 幾乎設定都一樣...只有OSC設定那邊有改... 因為倆各PIC的OSC chip 本身設定就不一樣.... 現在找不出問題出在那...所以希望有高手大大可以幫解...
發表於: 2009/4/13 11:57
|
|||
|
Re: 一個 USART 傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
抱歉
// 52 for 9600 bps in 8MHz 這各註解是打錯了...因為是參考書上的code改的... 忘記把註解拿掉..... 如果要加註解應該是 //16 for 115200 bps in 8Mhz
發表於: 2009/4/13 9:50
|
|||
|