新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)字信號(hào)處理器與音頻模擬芯片的接口設(shè)計(jì)

        數(shù)字信號(hào)處理器與音頻模擬芯片的接口設(shè)計(jì)

        作者: 時(shí)間:2012-02-08 來源:網(wǎng)絡(luò) 收藏

        格式如下:

          系統(tǒng)復(fù)位后,必須通過DSP的DX口向的DIN寫數(shù)據(jù),如果采用一片,只需初始化其寄存器1、寄存器2和寄存器4。

          由于通信數(shù)據(jù)長(zhǎng)度為16位,初始化時(shí)應(yīng)通過RCR1和XCR1設(shè)置McBSP的傳輸數(shù)據(jù)長(zhǎng)度為16。考慮到復(fù)位后至少經(jīng)過6個(gè)MCLK才可以脫離復(fù)位,故可以在此時(shí)間內(nèi)初始化DSP的串行口。

        3.3 軟件實(shí)現(xiàn)

        SERIAL_INIT:

        LD #AIC_DP,DP *為AIC的復(fù)位初始化DP

        ST #K_RESET,AIC_IN_RESET

        PORTW #AIC_IN_RESET,K_AIC_ADDR *復(fù)位AIC

        Need at least 6 cycles to pull the aic out of reset

        STM #K_SERIAL_RETRSPCR1

        STM #K_SERIAL_RETXSPCR2 *初始化串行口控制寄存器1,2復(fù)位串行口

        STM #K_SERIAL_OUTRETR,SPCR1

        STM #K_SERIAL_OUTRETX,SPXR2 *使串行口脫離復(fù)位

        RSBXINTM *INTM=0,打開所有的中斷

        LD #0,DP

        ORM #(K_BRINT0 K_BXINT0),IMT *打開BRINT0和BXINT0

        LD #AIC_DP,DP

        STM #(~K_BRINT0),IFR *清除標(biāo)志

        ST #K_ORESET,AIC_OUT_RESET

        PORTW #AIC_OUT_RESET,K_AIC_ADDR *AIC脫離復(fù)位

        STM RCR1,#K_RFW 初始化接收控制寄存器1,設(shè)置接收數(shù)據(jù)長(zhǎng)度為16位

        STM XCR1,#K_XFW *初始化發(fā)送控制寄存器1,設(shè)置發(fā)送數(shù)據(jù)長(zhǎng)度為16位

        STM PCR,#K_SERIAL *設(shè)置為串行口工作方式,而不是通用I/O方式

        STM #K_DATA,DXR1 *向DIN寫數(shù)據(jù),引起二次通信,等待串行口中斷

        IDLE 在BXINT0的中斷服務(wù)程序里,向DXR1寫入寄存器的值。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 丘北县| 博湖县| 乐安县| 和田县| 北碚区| 宁津县| 广平县| 台前县| 梅州市| 香港 | 衡山县| 万山特区| 浮山县| 白城市| 贵溪市| 开阳县| 奉节县| 五指山市| 庆云县| 通河县| 渝中区| 雷州市| 新郑市| 金乡县| 台州市| 平陆县| 临夏县| 登封市| 阿拉善左旗| 沽源县| 津市市| 平乡县| 阳江市| 玛沁县| 菏泽市| 隆昌县| 金堂县| 玛多县| 阿图什市| 集安市| 西林县|