Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 3389|回復: 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
7 f; H6 M* K& k1 r) |& G6 U2 N% V" r* ^  o) w  {- H

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-3-5 16:50:28 | 只看該作者
我覺得好像是接收端或發射端產生"buffer overflow",應為你的RDR只有一個,而且只有TSR,沒有THR(transmitter holding register),應該可以在發射端多加一個或2個"transmitter holding register".- C+ M  I3 o2 U/ A& H3 E

本帖子中包含更多資源

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

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 | 只看該作者
您好
" r9 S/ L; }& @; @0 u5 ]8 a/ Q1.3 d9 d" o  \3 B6 h" M
關於傳送資料覆蓋問題,可以研究一下8250或16450的data sheet裡+ M) j* O; }0 r/ W% d
tx部分
" D- A, w/ s: `! v4 ~: G& n6 y8 a% I0 }6 I4 i1 E# D
2.
9 f# g$ B. s- A0 F) u如果想搭配FIFO,請參考16550 data sheet,裡面寫的很清楚
) P8 T  A4 o% f! z% n* `4 C% u' z! U8 @
要設計uart功能,16450,16550是很好的參考資料) i6 C9 ], D/ V1 i( w5 ~4 T8 m
在設計時有些設計上技巧或沒想到的問題,都可從data sheet/ Z/ K8 s+ d2 Q) [- g& Y* a
上找到很好的啟發
, v5 Q! w4 K; `' \+ S$ q$ y0 s. [2 F7 N: `; ?) H) Y& c
建議好好的k一下吧
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-13 05:25 PM , Processed in 0.123516 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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