如何設定GPIO pin用於什麼用途,例如當作 PWM接腳、I2C、SPI、I/O ....

TMS320F28379D 舉例來說:

a.如下圖片所示,單晶片是透過四位元多工器來決定GPIO PIN接腳,透過GPyGMUX1-2GPyMUX1-2來決定

每個 GPIO pin是輸入端或是輸出端,或是傳輪通訊之類的

GPIO_Logic_F28379D.png

 

b. 假設我們要將GPIO 設定成SPI 傳輪用接腳,依F28379D Spe. 該晶片有三組SPI傳輸port,

  分別為 SPIA, SPIB, SPIC,該接腳位分別為於GPIO58~GPIO72               

GPIO_SPI_F28379D.png

GPIO_SPI_F28379D_2.png

c. 以SPIB為例,SPI_MISOB, SPI_MOSIB, SPI_CLKB分別位於GPIO63~GPIO65

   GPIO INDEX為15= 0b1111 分別對映GPyGMUX:GPyMUX =0b11 : 0b11

   CODE:

   void SetSPIB_GPIO(vod)

    EALLOW;   // Access to emulation registers is disabled 

    // Set SPI B SIMO

   GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 0b11;

   GpioCtrlRegs.GPBGMUX2.bit.GPIO63 = 0b11;

   // Set SPI B SOMI

   GpioCtrlRegs.GPCMUX1.bit.GPIO64 = 0b11;

   GpioCtrlRegs.GPCGMUX1.bit.GPIO64 = 0b11;

   // Set SPI B CLK

   GpioCtrlRegs.GPCMUX1.bit.GPIO65 = 0b11;

   GpioCtrlRegs.GPCGMUX1.bit.GPIO65 = 0b11;

  EDIS;  // Access to emulation registers is enabled
}       

 

創作者介紹
創作者 Dennis的學習筆記 的頭像
Dennis

Dennis的學習筆記

Dennis 發表在 痞客邦 留言(0) 人氣( 119 )