這幾天做項(xiàng)目,用到了TMS320C6748這個(gè)DSP,用的是ROCK的板子,要驅(qū)動RF24L01,用的是模擬SPI時(shí)序,對于GPIO口的配置弄了好久,終于弄清楚了。C6748好像不像是C5509A一樣有統(tǒng)一的CSL庫文件,只在他的Demo板中提供了編程的簡單的庫,我后來也沒移植官方Demo的庫,直接使用的ROCK板子提供的第三方庫(可能是板子的廠家自己改裝的Demo里面的庫)。廢話不多說了。進(jìn)入正題。
1->GPIO口接線方式
2-> GPIO口配置2.1->MUX寄存器配置GPIO口C6748一個(gè)引腳可能復(fù)用四五個(gè)功能,所以這個(gè)地方配置有點(diǎn)說道,跟一般的嵌入式設(shè)備不同??闯跏蓟疓PIO的例程: void GPIO_INIT( void ) { RK6748_pinmuxConfig(13,0x80088808,0x80088808); RK6748_pinmuxConfig(18,0x00800000,0x00800000); RK6748_pinmuxConfig(19,0x00800000,0x00800000); 主要就是前三句RK6748_pinmuxConfig()這個(gè)函數(shù)是對功能寄存器的配置,研究了好久,資料也沒說這塊,看了好幾個(gè)文檔。最后自己研究出來了。 配置GPIO口先調(diào)用RK6748_pinmuxConfig(Uint32 reg, Uint32 in_mask, Uint32 val);三個(gè)參數(shù)。這三個(gè)參數(shù)的值需要運(yùn)行Pin Mux Ultility工具軟件獲得。如圖4.5所示為Pin Mux Ultility軟件界面。
圖4.5 Pin Mux Utility軟件界面 如圖4.5中兩個(gè)紅框,在紅框內(nèi)選擇我們要使用GPIO口,在本設(shè)計(jì)中如圖3.1b所示連線圖,驅(qū)動RF24L01用到了IO6_13,IO6_15,IO0_2,IO6_11,IO6_12,IO6_11, IO6_12,IO0_8,這些引腳和RF24L01的IRQ,MOSI,CSN,MISO,SCK,CE信號線和數(shù)據(jù)線相連。則需要在Pin Mux Utility軟件中使能這些IO口。圖中4.5中在1處選擇DSP信號,然后在2處選擇上述提到的GPIO口,雙擊后使能,背景會如圖中變綠,在3處查看寄存器值,這些寄存器值就是編程時(shí)需要用到的,分別是PINMUX0:0x800000000,PINMUX1:0x008000000,PINMUX13:0x0088808,在配置DSP的IO引腳的MUX寄存器時(shí),輸入以下參數(shù): RK6748_pinmuxConfig(0, 0x8000000000, 0x8000000000); RK6748_pinmuxConfig(1, 0x00800000, 0x00800000); RK6748_pinmuxConfig(13, 0x0088808, 0x0088808); 完成GPIO口的使能配置。 之后通過GPIO_setDir( GPIO_BANK6, GPIO_PIN13, GPIO_INPUT ); 語句配置GPIO口的方向,上述語句是配置IO6_13為輸入方向,同理對其他引腳進(jìn)行操作也是按照這個(gè)語句稍作修改。
附帶這個(gè)軟件的下載地址:http://download.csdn.net/detail/u014281970/9824202
|
|