教學開發板(如下圖所示)是帶有usb-uart轉接橋的,橋接到j6聯結器。pc可以通過標準的com埠命令連線到電路板。電腦需要有usb-com串列埠驅動程式才能順利連線。
usb-uart與a7連線的情況如下圖,使用雙線串列埠(txd/rxd)和可選的硬體流控制(rts / cts)與fpga交換串列埠資料。安裝驅動程式後,可以從指向com埠的pc使用i / o命令,以在c4和d4 fpga引腳上產生序列資料流量。
ft2232hq也可用作digilent usb-jtag電路的控制器,但usb-uart和usb-jtag功能完全相互獨立。
有興趣在其設計中使用ft2232的uart功能的程式設計人員無需擔心jtag電路干擾uart資料傳輸,反之亦然。
將這兩個功能組合到乙個裝置中,可以對nexys a7進行程式設計,通過uart進行通訊,並通過連線有單根micro usb線纜的計算機供電。
ft2232有兩個通訊的方向可以實現全雙同的通訊方式,但是需要序列傳輸每次傳輸一位。所以在傳送資料的時候需要先將其序列化。
資料傳輸的時候沒有時鐘訊號統一控制,通過非同步傳輸的方式。實現非同步傳輸的時候就需要有乙個方式來告知對方這邊要開始傳輸資料了。串列埠傳輸的時候通常如下:
在約定傳輸速度的時候通常我們用波特率來表示,常用的波特率有9600bps和115200bps。表示每秒的多少個位元位。
傳送模組tx_module.v,由tx_bps_module來產生傳送的時序,如下圖當在每位資料的中間採集資料的時候最穩定,所以都在中間採集。在使能訊號置為1的時候波特率定時模組開始產生bps_clk訊號,每個bps_clk訊號將tx_data資料序列傳輸給tx_pin_out. 注意,串列埠傳輸資料「從最低位開始,到最高位結束」。
detect_module.v 的輸入是鏈結無理引腳rx,它主要檢測一幀資料的第0位,也就是起始位,然後產生乙個高脈衝經 h2l_sig 給 rx_control_module.v ,以表示一幀資料接收工作已經開始。
rx_bps_module.v 是產生波特率定時的功能模組。換一句話說,它是配置波特率的模組。
當rx_control_module.v 拉高 count_sig, bps_module.v 經 bps_clk 對 rx_control_module.v 產生定時。
rx_control_module.v 是核心控制模組。對串列埠的配置主要是1幀11位的資料,重視八位資料位,無視起始位,校驗位和結束位。當rx_en_sig 拉高,這個模組就開始工作,他將採集來自 rx_pin_in 的資料,當完成一幀資料接收的時候,就會產生乙個高脈衝給 rx_done_sig。
具體的**之後會新增鏈結。有需要可以私信我。
開發板與主機的串列埠通訊
soft hard arm 開發板嵌入式linux系統與主機pc通過串列埠傳輸檔案 1,我用的xp虛擬機器下redhat9.0做主機,按照下面第一篇文章,我在makefile中把cc gcc該為cc arm linux gcc,編譯 make 時出錯說缺少libzmodem.a這個庫檔案。後來我安裝...
iTOP 4412開發板 串列埠轉接小板的使用文件
本文件介紹如何使用 迅為itop 4412 精英版如何使用串列埠轉接板,串列埠小板如下所示。和串列埠轉接板模組相關的資料如下 itop 4412 android 串列埠測試文件 公升級版 v2.x.zip itop 4412 qte 串列埠 uart 測試程式 v1.x.rar itop 4412 ...
GDB 在arm開發板上的遠端除錯
嵌入式linux的gdb除錯環境由host和target兩部分組成,host端使用arm linux gdb,target board端使用gdbserver。除錯時,應用程式在嵌入式目標系統上執行,而gdb除錯在host端。一 編譯安裝gdb gdbserver 這是我的編寫的編譯指令碼 bin ...