找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5587|回復(fù): 0
收起左側(cè)

MSP430之GPIO&ADC&串口

[復(fù)制鏈接]
ID:262 發(fā)表于 2014-5-20 00:54 | 顯示全部樓層 |閱讀模式

最近做的采集設(shè)備,采用低功耗的MSP430,。主控芯片需要完成完成三個(gè)功能:恒流芯片的驅(qū)動(四個(gè)管腳輸出),8通道ADC轉(zhuǎn)換,波特率230400串口通信。調(diào)試完成,每1ms啟動一次轉(zhuǎn)換與串口發(fā)送數(shù)據(jù),沒50 ms更改一次GPIO管腳輸出,作為橫流芯片驅(qū)動信號。
遇到的問題以及解決方案:
1. 恒流芯片驅(qū)動。恒流芯片需要單片機(jī)輸出八個(gè)脈沖信號完成一次驅(qū)動,最開始采用TimerA中斷進(jìn)行延時(shí),一個(gè)周期下來最小也要10ms,對采樣率影響很大。后面發(fā)現(xiàn)驅(qū)動的高低電平之間不加延時(shí),恒流芯片也能正常驅(qū)動,因此每50ms在GPIO引腳輸出八個(gè)脈沖,進(jìn)行一次驅(qū)動,耗時(shí)小于1ms,可以忽略。
2.中斷。ADC采樣和發(fā)送數(shù)據(jù)均在TimerB的中斷中完成。TimerB有兩個(gè)中斷,TBIE和CCIE,前者是計(jì)數(shù)器從0計(jì)數(shù)到65535觸發(fā)一次中斷,后者是從0計(jì)數(shù)到TBCCR0觸發(fā)中斷。且進(jìn)入的中斷服務(wù)程序不同,TBIFG 一般進(jìn) TIMERB1_VECTOR;CCIFG 的話要看用的是哪個(gè)定時(shí)器如果是 CCR0 的話就進(jìn)TIMERB0_VECTOR,如果是CR1,CCR2……則進(jìn)TIMERB1_VECTOR。啟動計(jì)數(shù)器,通過將其模式由停止計(jì)數(shù)設(shè)置為增計(jì)數(shù)即可。SMCLK采用8M,8分頻,TBCCR0=1000,準(zhǔn)確達(dá)到1ms中斷一次。
3.ADC轉(zhuǎn)換。先使能通道,打開轉(zhuǎn)換內(nèi)核,由于采樣率較高,設(shè)置較低的采樣保持時(shí)間。MSC置位,使一次采樣轉(zhuǎn)換完成后立即進(jìn)行下一次。SHP置位,采用采樣觸發(fā)器。第一次采樣由ADC12SC啟動,中斷程序中直接disable中斷ENC,停止采樣。中斷結(jié)尾處,使能ENC。
4.串口通信,波特率230400,較高。極限傳輸數(shù)據(jù)230400/(10*16)=1440.大于1000,1ms能夠完成數(shù)據(jù)傳輸任務(wù)。注意:串口通信需要p3.5,p3.4一定不要用這兩個(gè)管腳作為輸出。選擇SMCLK,8M,通過工具計(jì)算即可設(shè)置波特率發(fā)生寄存器的值。


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表