Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 3337|回復: 5

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

[複製鏈接]
發表於 2008-3-4 15:34:41 | 顯示全部樓層 |閱讀模式
小弟為初學,目前使用CPLD做個UART收發,使用PC端TELIX軟體由Keyboard送出按鍵ASCII碼,經由CPLD收到後回傳至PC端,但目前單鍵送出都正常,但同一鍵按著不放,卻發生CPLD送出時掉資料了,(如PC端送出20筆資料,CPLD收到20筆,送出時卻只送15筆,PC端收到也只有15筆),小弟將程式碼附上,懇請各位可以幫我看看嗎?提供些意見,或者範例碼等等....感激!...thx4 W1 w$ j8 D, l9 w( F: ~

% |  q# |$ v: s

本帖子中包含更多資源

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

x
發表於 2008-3-5 16:50:28 | 顯示全部樓層
我覺得好像是接收端或發射端產生"buffer overflow",應為你的RDR只有一個,而且只有TSR,沒有THR(transmitter holding register),應該可以在發射端多加一個或2個"transmitter holding register".; M4 H/ `5 j* I  D; P

本帖子中包含更多資源

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

x
 樓主| 發表於 2008-3-5 16:53:16 | 顯示全部樓層

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

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

回復 2# 的帖子

您好!請問您,如果我8bit資料一進來發射端時,該如何把它hold呢?是否有個機制,比如hold等到上一筆資料從發射端送出時,在從THR丟至TSR,再送出下一筆資料,可否請您敘述一下,感謝您...
發表於 2008-3-5 20:31:51 | 顯示全部樓層
好像可以利用txd_doneH 來產生一個 loadTSR 把資料從THR--->TSR 並在下一個clock STATE 產生一個 pulse 通知CPU 或 接收端把下一筆DATA 再餵入THR.每次餵DATA,除了看txd_startH(代表有沒有資料待傳),還要等pulse 通知.
發表於 2008-3-6 11:28:46 | 顯示全部樓層
您好7 m& W. U5 b( Q* C% Y2 t5 U9 `
1.5 Z6 a/ Q$ ^, f
關於傳送資料覆蓋問題,可以研究一下8250或16450的data sheet裡: O3 M- |+ L  d* _, q, A
tx部分# P  f" @; J/ N( Z& H- ]8 I
+ j4 p# Z) B' e( a. v8 t
2.
! a% j7 _. E+ V' [' O- i如果想搭配FIFO,請參考16550 data sheet,裡面寫的很清楚
5 w9 X4 q3 {$ n% N2 A  r5 Y, A" K( F  i
要設計uart功能,16450,16550是很好的參考資料
! ^9 j" h+ ?8 f( ~在設計時有些設計上技巧或沒想到的問題,都可從data sheet
! k4 C5 C( Z/ e* W* ^8 O) ]$ q上找到很好的啟發
9 X3 b8 a" G3 _. b+ o. u7 g/ \$ x: `0 L* w" _) _4 k; m
建議好好的k一下吧
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-3-29 06:08 AM , Processed in 0.149009 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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