Other Parts Discussed in Thread: SYSBIOS
Hi,
We have tried to configure the new GPIO's by following below steps. But the configured GPIO is not controlled.
1. configured the GPIO in "am43xx_idkevm_pinmux_data.c" file (MLO)
2. Do the below configurations in "GPIO_evmAM572x_bord.c" & "main.c" files (Application)
File: GPIO_evmAM572x_bord.c
#define MOTOR_0_ENABLE (0x0518) //GPIO4_18
#define MOTOR_1_ENABLE (0x0519) //GPIO4_19
/* GPIO Driver board specific pin configuration structure */
GPIO_PinConfig gpioPinConfigs[] = {
/* Output pin : AM437X_IDK_LD_PIN */
MOTOR_0_ENABLE | GPIO_CFG_OUTPUT,
MOTOR_1_ENABLE | GPIO_CFG_OUTPUT,
AM437X_IDK_GPIO_LD_PIN | GPIO_CFG_OUTPUT
};
/* GPIO Driver call back functions */
GPIO_CallbackFxn gpioCallbackFunctions[] = {
NULL,
NULL,
NULL
};
/* GPIO Driver configuration structure */
GPIO_v1_Config GPIO_v1_config = {
gpioPinConfigs,
gpioCallbackFunctions,
sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig),
sizeof(gpioCallbackFunctions) / sizeof(GPIO_CallbackFxn),
0,
};
-----------------------------------------------------------------------------------------
File:main.c
int main(){
GPIO_init();
GPIO_write(0, GPIO_PIN_VAL_HIGH);
AppDelay(500);
GPIO_write(0, GPIO_PIN_VAL_LOW);
AppDelay(500);
}
-----------------------------------------------------------------------------------------
File:am43xx_idkevm_pinmux_data.c
static pinmuxPerCfg_t gGpio4PinCfg[] =
{
{
/* Motor_0_Enable_GATE -> gpio4[18] -> AD22 */
PIN_CAM1_DATA4, 18, \
( \
PIN_MODE(7) | \
//((PIN_PULL_UD_DIS | PIN_PULL_UP_EN | PIN_RX_ACTIVE | PIN_DS_VALUE_OVERRIDE_EN | PIN_DS_OP_DIS | PIN_DS_PULL_UP_EN) & \
//(~PIN_DS_OP_VAL_1 & ~PIN_DS_PULL_UD_EN & ~PIN_WAKE_UP_EN))
((PIN_PULL_UP_EN | PIN_RX_ACTIVE | PIN_DS_VALUE_OVERRIDE_EN | PIN_DS_OP_DIS | PIN_DS_PULL_UP_EN) & \
(~PIN_PULL_UD_DIS & ~PIN_DS_OP_VAL_1 & ~PIN_DS_PULL_UD_EN & ~PIN_WAKE_UP_EN))
) \
},
{
/* Motor_1_Enable_GATE -> gpio4[19] -> AE23 */
PIN_CAM1_DATA5, 19, \
( \
PIN_MODE(7) | \
//((PIN_PULL_UD_DIS | PIN_PULL_UP_EN | PIN_RX_ACTIVE | PIN_DS_VALUE_OVERRIDE_EN | PIN_DS_OP_DIS | PIN_DS_PULL_UP_EN) & \
//(~PIN_DS_OP_VAL_1 & ~PIN_DS_PULL_UD_EN & ~PIN_WAKE_UP_EN))
((PIN_PULL_UP_EN | PIN_RX_ACTIVE | PIN_DS_VALUE_OVERRIDE_EN | PIN_DS_OP_DIS | PIN_DS_PULL_UP_EN) & \
(~PIN_PULL_UD_DIS & ~PIN_DS_OP_VAL_1 & ~PIN_DS_PULL_UD_EN & ~PIN_WAKE_UP_EN))
) \
},
};
------------------------------------------------------------------
File: idkAM437x.c
/*GPIO*/
if(S_PASS == status)
{
status = PRCMModuleEnable(CHIPDB_MOD_ID_GPIO, 0U, 0U);
}
if(S_PASS == status)
{
status = PRCMModuleEnable(CHIPDB_MOD_ID_GPIO, 1U, 0U);
}
if(S_PASS == status)
{
status = PRCMModuleEnable(CHIPDB_MOD_ID_GPIO, 2U, 0U);
}
if(S_PASS == status)
{
status = PRCMModuleEnable(CHIPDB_MOD_ID_GPIO, 3U, 0U);
}
if(S_PASS == status)
{
status = PRCMModuleEnable(CHIPDB_MOD_ID_GPIO, 4U, 0U);
}
if(S_PASS == status)
{
status = PRCMModuleEnable(CHIPDB_MOD_ID_GPIO, 5U, 0U);
}
---------------------------------------------------------------------------
File:idkAM437x_pinmux.c
/*GPIO*/
if(S_PASS == status)
{
status = PINMUXModuleConfig(CHIPDB_MOD_ID_GPIO, 0U, NULL);
}
if(S_PASS == status)
{
status = PINMUXModuleConfig(CHIPDB_MOD_ID_GPIO, 2U, NULL);
}
if(S_PASS == status)
{
status = PINMUXModuleConfig(CHIPDB_MOD_ID_GPIO, 3U, NULL);
}
if(S_PASS == status)
{
status = PINMUXModuleConfig(CHIPDB_MOD_ID_GPIO, 4U, NULL);
}
if(S_PASS == status)
{
status = PINMUXModuleConfig(CHIPDB_MOD_ID_GPIO, 5U, NULL);
}
But the configured GPIO is not set High.
RTOS SDK: pdk_am437x_1_0_15
SYSBIOS: bios_6_75_02_00
Kindly check & feedback us.
Regards,
Suresh