中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AVR VUSB技術(shù)的數(shù)控直流穩(wěn)壓電源設(shè)計(jì)

        基于AVR VUSB技術(shù)的數(shù)控直流穩(wěn)壓電源設(shè)計(jì)

        作者: 時(shí)間:2013-10-11 來源:網(wǎng)絡(luò) 收藏


        圖3 電壓電流放大電路。

        1.3 VUSB接口

        VUSB是用普通的通用單片機(jī),配以較高頻率的晶振(12MHz或16MHz),模擬產(chǎn)生USB所需信號(hào),從而模擬出標(biāo)準(zhǔn)的USB HID設(shè)備(鼠標(biāo)、鍵盤、簡(jiǎn)單通信)的解決方案,構(gòu)成一個(gè)低成本的USB設(shè)備。USB共有4根線,2根5V電源,兩根差分信號(hào)線D+、D-.由于是低速設(shè)備,D-必須要有1.5kΩ的上拉電阻。

        VUSB接口電路如圖4所示,單片機(jī)的PD1和PD2通過68Ω的限流電阻分別接入標(biāo)準(zhǔn)USB接口的D-、D+.

        需要注意的是D+必須接上單片機(jī)的外部中斷0管腳,在此為了簡(jiǎn)化連接直接將PD2(INT0)接入作為其中的一根信號(hào)線使用。由于USB信號(hào)線的電壓最大為3.6V,所以在D-和D+上分別并接了一個(gè)3.6V的穩(wěn)壓二極管。

        圖4 VUSB接口電路。

        2 系統(tǒng)軟件設(shè)計(jì)


        軟件設(shè)計(jì)包括下位機(jī)和上位機(jī)2部分。下位機(jī)主要負(fù)責(zé)接收上位機(jī)的設(shè)置電壓值,并經(jīng)過轉(zhuǎn)換后輸入到MAX522,從而輸出設(shè)置電壓。上位機(jī)則通過VUSB與下位機(jī)連接,并通過模擬的USB協(xié)議向下位機(jī)寫入數(shù)據(jù)。

        2.1 下位機(jī)軟件

        下位機(jī)軟件流程圖如圖5所示。其中設(shè)備初始化包括單片機(jī)端口初始化、DAC初始化及VUSB端口初始化。在初始化之后,程序進(jìn)入主循環(huán),在其中加入了USB輪詢函數(shù)usbPoll(),用來偵測(cè)USB事件。一旦偵測(cè)到上位機(jī)有USB通信請(qǐng)求時(shí),usbdrv就會(huì)調(diào)用usbFunctionSetup()函數(shù)來處理請(qǐng)求。在此請(qǐng)求函數(shù)中接收上位機(jī)傳來的數(shù)據(jù)并將此數(shù)據(jù)轉(zhuǎn)換后寫入MAX522數(shù)據(jù)端口,啟動(dòng)DAC輸出電壓。

        圖5 下位機(jī)軟件流程。

        設(shè)計(jì)中需注意以下幾點(diǎn):

        1)單片機(jī)方面的VUSB 底層驅(qū)動(dòng)函數(shù)使用USB,最新版本的-USB為C語言編寫并有詳細(xì)的注釋。開發(fā)平臺(tái)為WinAVR.GCC項(xiàng)目文件夾中需包含驅(qū)動(dòng)文件(usbdrv文件夾),并對(duì)usbconfig.h中的部分宏定義做一些修改。

        #define USB_CFG_IOPORTNAME D//這個(gè)接口連接USB總線。當(dāng)配置為"D"時(shí),寄存器PORTD,PIND and DDRD將有效。

        #define USB_CFG_DMINUS_BIT 1//位配置,是在USB_CFG_IOPORT 中連接USB D-的線。可以配置為接口的任何位。

        #define USB_CFG_DPLUS_BIT 2//位配置,是在USB_CFG_IOPORT 中連接USB D+的線。也可以連接到任意口,但是注意D+一定要連接都中斷口INT0

        2)單片機(jī)在接收到讀取數(shù)據(jù)命令時(shí)會(huì)自動(dòng)調(diào)用usbFunctionSetup(uchar data[8]),在函數(shù)內(nèi)把全局指針*usbMsgPtr指向所要發(fā)送的數(shù)據(jù)首地址,然后返回(函數(shù)返回值)所發(fā)送數(shù)據(jù)的長(zhǎng)度就可以了。由于采用的是命令包方式傳輸數(shù)據(jù),每次只能接收4個(gè)字節(jié)的有效數(shù)據(jù),存儲(chǔ)在data[2]~data[4]中。


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉