Other Parts Discussed in Thread: LAUNCHXL2-TMS57012
Tool/software: Code Composer Studio
Hi
12V Pull Up GPIOA7 open drain does not work.
gioInit() source is
void gioInit(void)
{
/* USER CODE BEGIN (2) */
/* USER CODE END */
/** bring GIO module out of reset */
gioREG->GCR0 = 1U;
gioREG->ENACLR = 0xFFU;
gioREG->LVLCLR = 0xFFU;
/** @b initialize @b Port @b A */
/** - Port A output values */
gioPORTA->DOUT = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)1U << 7U); /* Bit 7 */
/** - Port A direction */
gioPORTA->DIR = (uint32)((uint32)1U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)1U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)1U << 6U) /* Bit 6 */
| (uint32)((uint32)1U << 7U); /* Bit 7 */
/** - Port A open drain enable */
gioPORTA->PDR = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)1U << 7U); /* Bit 7 */
/** - Port A pullup / pulldown selection */
gioPORTA->PSL = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/** - Port A pullup / pulldown enable*/
gioPORTA->PULDIS = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/** @b initialize @b Port @b B */
/** - Port B output values */
gioPORTB->DOUT = (uint32)((uint32)1U << 0U) /* Bit 0 */
| (uint32)((uint32)1U << 1U) /* Bit 1 */
| (uint32)((uint32)1U << 2U) /* Bit 2 */
| (uint32)((uint32)1U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/** - Port B direction */
gioPORTB->DIR = (uint32)((uint32)1U << 0U) /* Bit 0 */
| (uint32)((uint32)1U << 1U) /* Bit 1 */
| (uint32)((uint32)1U << 2U) /* Bit 2 */
| (uint32)((uint32)1U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/** - Port B open drain enable */
gioPORTB->PDR = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/** - Port B pullup / pulldown selection */
gioPORTB->PSL = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/** - Port B pullup / pulldown enable*/
gioPORTB->PULDIS = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U); /* Bit 7 */
/* USER CODE BEGIN (3) */
/* USER CODE END */
/** @b initialize @b interrupts */
/** - interrupt polarity */
gioREG->POL = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U) /* Bit 7 */
| (uint32)((uint32)0U << 8U) /* Bit 8 */
| (uint32)((uint32)0U << 9U) /* Bit 9 */
| (uint32)((uint32)0U << 10U) /* Bit 10 */
| (uint32)((uint32)0U << 11U) /* Bit 11 */
| (uint32)((uint32)0U << 12U) /* Bit 12 */
| (uint32)((uint32)0U << 13U) /* Bit 13 */
| (uint32)((uint32)0U << 14U) /* Bit 14 */
| (uint32)((uint32)0U << 15U); /* Bit 15 */
/** - interrupt level */
gioREG->LVLSET = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)0U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)0U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U) /* Bit 7 */
| (uint32)((uint32)0U << 8U) /* Bit 8 */
| (uint32)((uint32)0U << 9U) /* Bit 9 */
| (uint32)((uint32)0U << 10U) /* Bit 10 */
| (uint32)((uint32)0U << 11U) /* Bit 11 */
| (uint32)((uint32)0U << 12U) /* Bit 12 */
| (uint32)((uint32)0U << 13U) /* Bit 13 */
| (uint32)((uint32)0U << 14U) /* Bit 14 */
| (uint32)((uint32)0U << 15U); /* Bit 15 */
/** - clear all pending interrupts */
gioREG->FLG = 0xFFU;
/** - enable interrupts */
gioREG->ENASET = (uint32)((uint32)0U << 0U) /* Bit 0 */
| (uint32)((uint32)1U << 1U) /* Bit 1 */
| (uint32)((uint32)0U << 2U) /* Bit 2 */
| (uint32)((uint32)0U << 3U) /* Bit 3 */
| (uint32)((uint32)0U << 4U) /* Bit 4 */
| (uint32)((uint32)1U << 5U) /* Bit 5 */
| (uint32)((uint32)0U << 6U) /* Bit 6 */
| (uint32)((uint32)0U << 7U) /* Bit 7 */
| (uint32)((uint32)0U << 8U) /* Bit 8 */
| (uint32)((uint32)0U << 9U) /* Bit 9 */
| (uint32)((uint32)0U << 10U) /* Bit 10 */
| (uint32)((uint32)0U << 11U) /* Bit 11 */
| (uint32)((uint32)0U << 12U) /* Bit 12 */
| (uint32)((uint32)0U << 13U) /* Bit 13 */
| (uint32)((uint32)0U << 14U) /* Bit 14 */
| (uint32)((uint32)0U << 15U); /* Bit 15 */
/* USER CODE BEGIN (4) */
/* USER CODE END */
}
gioSetBit(gioPORTA, 7, 0); // output is 0V
delay(1000);
gioSetBit(gioPORTA, 7, 1); // output is 4V (12V Pull Up 1k ohm Res)
delay(1000);
I want to know. 12V does not come out.
please answer about my question.