1基礎(chǔ)理論部分
1.1分頻
分頻,是的,這個(gè)概念也很重要。分頻是指將一單一頻率信號(hào)的頻率降低為原來的1/N,就叫N分頻。實(shí)現(xiàn)分頻的電路或裝置稱為“分頻器”,如把33MHZ的信號(hào)2分頻得到16.5MHZ的信號(hào),3分頻得到11MHZ的信號(hào),10分頻得到3.3MHZ的信號(hào)。
分頻主要是相對(duì)于主晶振來說,用不到那么高的頻率,開發(fā)板一般根據(jù)具體需要會(huì)加入晶振,一般若是功耗較高可選用50MHz,其他情況可以相對(duì)調(diào)整,如24MHz等等。那么分頻的典型應(yīng)用,二分頻,四分頻,八分頻,還有任意分頻。
對(duì)于分頻,我們可以利用quartus ii 自帶的PLL進(jìn)行分頻,這樣會(huì)占用一定的資源,也可以利用計(jì)數(shù)器實(shí)現(xiàn)一定的分頻,注意,FPGA中不同于其他的CPU,沒有計(jì)時(shí)器的概念,只有計(jì)數(shù)器。
1.2 LED
LED(light emitting diode),發(fā)光二極管,簡(jiǎn)稱LED,是一種能夠?qū)㈦娔苻D(zhuǎn)化成可見光的固態(tài)的半導(dǎo)體器件,可以直接把電轉(zhuǎn)換成光??梢杂迷陔娐芳皟x器中作指示燈,或者組成文字或數(shù)字顯示等。有不同化合物制成的二極管如砷,鎵,磷等化合物制成,不同的化合物組合會(huì)顯示不同顏色的光。
在設(shè)計(jì)LED的驅(qū)動(dòng)電路時(shí),不能直接接到3.3V或者5V來點(diǎn)亮,LED有額定電流,超過這個(gè)額定電流,LED就會(huì)燒掉,反接也會(huì)燒掉。一般的LED的額定電流從10mA~1A不等。FPGA開發(fā)采用的LED主要是貼片0805或者0603等,額定電路一般從10mA~30mA.
1.3 74HC595
開發(fā)板上面的LED控制是用串入并出/串出的移位寄存器74HC595芯片,芯片在電路中的接入情況如圖5.1所示,實(shí)物圖如圖5.2所示。其中MR引腳直接接高電平,不進(jìn)行復(fù)位。串出引腳9不接,不進(jìn)行串出引腳的使用。輸出使能引腳13直接接地,手冊(cè)上建議。11和12引腳分別為移位寄存器時(shí)鐘輸入和存儲(chǔ)時(shí)鐘輸入,分別引出。
圖5.1 LED部分電路圖
圖5.2 實(shí)物圖
2 verilog代碼實(shí)現(xiàn)部分
2.1 74HC595 控制部分
14行定義了一個(gè)全局參數(shù)WIDTH = 8,用來控制程序下面所有的有關(guān)于數(shù)量的使用。
59行和60行分別定義了時(shí)鐘信號(hào)和時(shí)鐘使能信號(hào),其中時(shí)鐘信號(hào)sclk時(shí)鐘周期前半段為低電平,后半段為高電平,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的中間采樣,時(shí)鐘使能信號(hào)led_time可以控制數(shù)據(jù)和時(shí)鐘對(duì)齊。48行的state是一個(gè)狀態(tài)改變的寄存器,只要數(shù)據(jù)一更新,state就有效。
75行定義了update_input信號(hào)用來檢測(cè)輸入數(shù)據(jù)的變化。
狀態(tài)轉(zhuǎn)換部分,在case語句中先檢測(cè)state的初始位,然后進(jìn)入循環(huán)操作,檢測(cè)update_input是否使能,使能更新state,不使能保持state,更新后開始輸出位數(shù)計(jì)數(shù)器led_cnt的計(jì)數(shù)
在121到123行,對(duì)輸出的三路信號(hào)進(jìn)行了約束限制,這種方法值的借鑒,在用不到時(shí)不輸出信號(hào),用到時(shí)輸出信號(hào),最大量的節(jié)省時(shí)鐘。Led_data_out是先從高位輸出到低位。
2.2 LED數(shù)據(jù)產(chǎn)生部分
在模塊聲明處,仍舊使用全局定義變量,控制模塊中常量的使用。
計(jì)數(shù)模塊,產(chǎn)生時(shí)鐘使能信號(hào)。
Reg型變量Led_out_cnt是用來控制LED變化, 每當(dāng)時(shí)鐘信號(hào)使能開始計(jì)數(shù),板卡上面一共有8個(gè)LED,所以計(jì)數(shù)8個(gè)即可。
LED解碼部分,通過上面的led_out_cnt信號(hào)進(jìn)行解碼,控制LED的流水操作。
3 modelsim驗(yàn)證部分
43行產(chǎn)生時(shí)鐘信號(hào),通過PERIOD進(jìn)行周期控制。49~51產(chǎn)生復(fù)位信號(hào),當(dāng)時(shí)鐘兩次下降沿后復(fù)位信號(hào)拉高。56行用來監(jiān)測(cè)led_out輸出的時(shí)間,生成的腳本文件如圖5.3所示。
圖5.3仿真波形
圖5.4是利用腳本文件生成,可以觀察到實(shí)現(xiàn)了流水功能,且時(shí)間間隔1s;
圖5.4 腳本生成文件
3.2 led_74HC595 模塊仿真
前半部分和上述都一樣,可以作為固定部分,大家可以自行復(fù)制即可。59行到63行增加了系統(tǒng)輸入信號(hào)初始化部分。在輸入信號(hào)輸入前,最好最安全就是進(jìn)行一次初始化。
75行到87行是對(duì)輸入進(jìn)行模擬輸入,并監(jiān)測(cè)led_data-out信號(hào),輸出的結(jié)果如圖5.5所示,由圖可以看到時(shí)間間隔為120ns。
圖5.6是仿真波形,可以看到時(shí)鐘led_sclk每次采樣在輸入信號(hào)的正中間位置,最大程度保證采樣可靠。
圖5.5 腳本文件
圖5.6 仿真波形
-
led
+關(guān)注
關(guān)注
242文章
23847瀏覽量
674156 -
74HC595
+關(guān)注
關(guān)注
7文章
193瀏覽量
31655
發(fā)布評(píng)論請(qǐng)先 登錄
74hc595難題。。
74HC595驅(qū)動(dòng)LED點(diǎn)陣或數(shù)碼管的正確用法 精選資料推薦
74HC595的工作原理是什么,怎么使用
單片機(jī)IO直連控制74HC595
74HC595怎么使用
如何使用HAL 庫的SPI實(shí)現(xiàn)74HC595芯片控制
74HC595芯片的運(yùn)用原理是什么
MCU驅(qū)動(dòng)74hc595的方法
基于74HC595的串行數(shù)碼管顯示實(shí)驗(yàn)
利用74HC595實(shí)現(xiàn)多位LED顯示的新方法
74hc595的主要功能(74hc595引腳圖及功能_工作原理及電壓_典型應(yīng)用電路)

任務(wù)7:74HC595的使用方法

評(píng)論