看板 Electronics 關於我們 聯絡資訊
解決了,我看這本書找到答案的。 Serial port complete : programming and circuits for RS-232 and RS-485 links and networks Jan Axelson. 原來在Sample資料的時後,可以用一個16倍Baud rate的clock去sample, 不要使用Baud rate clock去sample,要不然會有我下面所說的問題。 這個16倍的clock在偵測到Start bit的時後往後數16 clocks 就會跳到第一個data bit。再數8 clocks大約就會到該bit的中間位置, 此位置是sample資料較好的位置。 ※ 引述《zxvc (zxvc)》之銘言: : 我的FPGA板說明書寫振盪器是33.3MHz(我懷疑它應該是33,333,333Hz)。 : 我最近要設計從PC經由RS-232傳資料到FPGA,我使用9 pin connector。 : 感謝CuckooBoy網友的幫助,讓我學到不少東西。 : 我現在有個問題就是因為我的振盪器頻率不能被任何的 : 標準的Baud rate整除,例如9600, 14400, ...。 : CuckooBoy網友是建議我把所有的標準Baud rate除33.3MHz, : 取商最靠近整數的Baud rate,再做除頻器(我是設計數位電路)。 : 我後來選定Baud rate = 38400,後來我果然可以傳資料到FPGA上了, : 但是可惜的是我發現仍然有機會收到錯誤的資料(我是用非同步接收)。 : 我想這是因為PC的Baud rate並不與FPGA的Baud rate完全相同所致, : 有一點小誤差,我自己分析的結果,這是難免會造成的錯誤, : 比如,FPGA Baud rate一個clock cycle比PC多1%, : 只要今天FPGA Baud rate的clock的active edge出現在 : Start bit cycle的92%位置,那麼在sample第10個bit就會sample到錯誤的值。 : 不知道我的觀念有沒有誤? : 請問有這方面設計經驗的大大要如何解決此問題? -- 往生淨土咒: 南無阿彌多婆夜 哆他伽哆夜 哆地夜他 阿彌唎都婆毘 阿彌唎哆  悉耽婆毘 阿彌唎哆 毘迦蘭哆 伽彌膩 伽伽那 只多迦隸 莎婆訶 《佛說阿彌陀經》http://web.cc.ncu.edu.tw/~93501025/amtf.doc 《金剛經》http://web.cc.ncu.edu.tw/~93501025/jg.doc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.204.3