Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 3350|回復: 5
打印 上一主題 下一主題

[問題求助] CPLD UART問題....thx

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-3-4 15:34:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟為初學,目前使用CPLD做個UART收發,使用PC端TELIX軟體由Keyboard送出按鍵ASCII碼,經由CPLD收到後回傳至PC端,但目前單鍵送出都正常,但同一鍵按著不放,卻發生CPLD送出時掉資料了,(如PC端送出20筆資料,CPLD收到20筆,送出時卻只送15筆,PC端收到也只有15筆),小弟將程式碼附上,懇請各位可以幫我看看嗎?提供些意見,或者範例碼等等....感激!...thx! E! m# L2 p* t! l# E

9 Y1 H  c, `/ I7 w: X! F

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-5 16:50:28 | 只看該作者
我覺得好像是接收端或發射端產生"buffer overflow",應為你的RDR只有一個,而且只有TSR,沒有THR(transmitter holding register),應該可以在發射端多加一個或2個"transmitter holding register".
: e& J! Q4 ?9 h5 z9 i2 K+ ^, [

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
3#
 樓主| 發表於 2008-3-5 16:53:16 | 只看該作者

如有看到程式的前輩們...請幫忙

如有看到小弟放的程式前輩們,可否給些意見呢?如需加FIFO之類的,或是收與發機制不夠完善導致此問題,小弟我有自行加入QuartusII FIFO模組,但此問題仍然存在,所以先不考慮是否buffer不夠,目前排除方向為,收到資料時,與發送資料時,之間的機制不夠完善,懇請大家給些意見或範例等等,感激!謝謝..
4#
 樓主| 發表於 2008-3-5 17:04:07 | 只看該作者

回復 2# 的帖子

您好!請問您,如果我8bit資料一進來發射端時,該如何把它hold呢?是否有個機制,比如hold等到上一筆資料從發射端送出時,在從THR丟至TSR,再送出下一筆資料,可否請您敘述一下,感謝您...
5#
發表於 2008-3-5 20:31:51 | 只看該作者
好像可以利用txd_doneH 來產生一個 loadTSR 把資料從THR--->TSR 並在下一個clock STATE 產生一個 pulse 通知CPU 或 接收端把下一筆DATA 再餵入THR.每次餵DATA,除了看txd_startH(代表有沒有資料待傳),還要等pulse 通知.
6#
發表於 2008-3-6 11:28:46 | 只看該作者
您好0 A: F# \2 j+ h! Y0 C
1.- {/ F! e- {. A9 }; A
關於傳送資料覆蓋問題,可以研究一下8250或16450的data sheet裡: U: A1 ~$ A; k- F5 ~$ z
tx部分
$ U: l6 @; ~1 P3 w; U5 p% t- q9 j" ]: A, b  @6 S6 D! v$ p* g
2.
" s1 b2 v# w) y- o如果想搭配FIFO,請參考16550 data sheet,裡面寫的很清楚
3 L' Q8 P8 Y, f+ |! \# I" ?- R( _2 q+ w/ f7 U
要設計uart功能,16450,16550是很好的參考資料
- l9 B/ x4 a" c3 }6 o在設計時有些設計上技巧或沒想到的問題,都可從data sheet
8 F9 ^  J. q- P7 M" i# l; }; j上找到很好的啟發
. F, S' Z& f$ a' |% d4 W  l" N5 {8 N) l& R" h$ D0 \( K
建議好好的k一下吧
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-4-27 10:40 PM , Processed in 0.108006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表