I want to set C6748 to SPI MASTER mode and 3-pin mode,which requires me to set SPI1_ ENA bit is set to 8. I implement it through the following program:
void SPIPinMuxSetup(unsigned int instanceNum)
{
unsigned int savePinMux = 0;
if(0 == instanceNum)
{
savePinMux = HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) & \
~(SYSCFG_PINMUX3_PINMUX3_3_0 | \
SYSCFG_PINMUX3_PINMUX3_15_12 | \
SYSCFG_PINMUX3_PINMUX3_11_8 | \
SYSCFG_PINMUX3_PINMUX3_7_4);
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) = \
(PINMUX3_SPI0_CLK_ENABLE | PINMUX3_SPI0_SIMO_ENABLE | \
PINMUX3_SPI0_SOMI_ENABLE | PINMUX3_SPI0_ENA_ENABLE | \
savePinMux);
}
else if(1 == instanceNum)
{
savePinMux = HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) & \
~(SYSCFG_PINMUX5_PINMUX5_11_8 | \
SYSCFG_PINMUX5_PINMUX5_23_20 | \
SYSCFG_PINMUX5_PINMUX5_19_16 | \
SYSCFG_PINMUX5_PINMUX5_15_12);
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = \
(PINMUX5_SPI1_CLK_ENABLE | PINMUX5_SPI1_SIMO_ENABLE | \
PINMUX5_SPI1_SOMI_ENABLE | PINMUX5_SPI1_ENA_ENABLE | \
savePinMux);
}
else if(2 == instanceNum)
{
savePinMux = HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) & \
~(SYSCFG_PINMUX5_PINMUX5_11_8 | \
SYSCFG_PINMUX5_PINMUX5_23_20 | \
SYSCFG_PINMUX5_PINMUX5_19_16 | \
SYSCFG_PINMUX5_PINMUX5_15_12);
HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(5)) = \
(PINMUX5_SPI1_CLK_ENABLE | PINMUX5_SPI1_SIMO_ENABLE | \
PINMUX5_SPI1_SOMI_ENABLE | PINMUX5_SPI1_GPIO_ENABLE | \
savePinMux);
}
else
{
}
}
#define PINMUX5_SPI1_CLK_ENABLE (SYSCFG_PINMUX5_PINMUX5_11_8_SPI1_CLK << \
SYSCFG_PINMUX5_PINMUX5_11_8_SHIFT)
#define PINMUX5_SPI1_SIMO_ENABLE (SYSCFG_PINMUX5_PINMUX5_23_20_SPI1_SIMO0 << \
SYSCFG_PINMUX5_PINMUX5_23_20_SHIFT)
#define PINMUX5_SPI1_SOMI_ENABLE (SYSCFG_PINMUX5_PINMUX5_19_16_SPI1_SOMI0 << \
SYSCFG_PINMUX5_PINMUX5_19_16_SHIFT)
#define PINMUX5_SPI1_ENA_ENABLE (SYSCFG_PINMUX5_PINMUX5_15_12_NSPI1_ENA << \
SYSCFG_PINMUX5_PINMUX5_15_12_SHIFT)
#define PINMUX5_SPI1_GPIO_ENABLE (SYSCFG_PINMUX5_PINMUX5_15_12_GPIO2_12 << \
SYSCFG_PINMUX5_PINMUX5_15_12_SHIFT)
#define SYSCFG_PINMUX5_PINMUX5_11_8_SHIFT (0x00000008u)
#define SYSCFG_PINMUX5_PINMUX5_11_8_SPI1_CLK (0x00000001u)
#define SYSCFG_PINMUX5_PINMUX5_23_20_SHIFT (0x00000014u)
#define SYSCFG_PINMUX5_PINMUX5_23_20_SPI1_SIMO0 (0x00000001u)
#define SYSCFG_PINMUX5_PINMUX5_19_16_SHIFT (0x00000010u)
#define SYSCFG_PINMUX5_PINMUX5_19_16_SPI1_SOMI0 (0x00000001u)
#define SYSCFG_PINMUX5_PINMUX5_15_12_SHIFT (0x0000000Cu)
#define SYSCFG_PINMUX5_PINMUX5_15_12_NSPI1_ENA (0x00000001u)
#define SYSCFG_PINMUX5_PINMUX5_15_12_GPIO2_12 (0x00000008u)
My program was obtained by modifying SPIFLASH.I added the scenario of instanceNum=2 to meet my requirements. But the result of the program running did not change much. I set the instanceNum in the main program to 0, 1, and 2, and their results are all in the case where instanceNum=1 when I did not modify the program. I suspect that the function library I modified is not the one my main program calls, but I can only find the SPIPinMuxSetup function in this library, which is a file called SPI. c. I want to know how to find the function I need to modify next.
The following link is my previous discussion with Gary: