/** @fn void sciInit(void) * @brief Initializes the SCI Driver * * This function initializes the SCI module. */ void sciInit(void) { /* USER CODE BEGIN (2) */ /* USER CODE END */ /** @b intalise @b SCILIN */ /** - bring SCI out of reset */ scilinREG->GCR0 = 1U; /** - Disable all interrupts */ scilinREG->CLRINT = 0xFFFFFFFFU; scilinREG->CLRINTLVL = 0xFFFFFFFFU; /** - global control 1 */ scilinREG->GCR1 = (1 << 25) /* enable transmit */ | (1 << 24) /* enable receive */ | (1 << 5) /* internal clock (device has no clock pin) */ | ((1-1) << 4) /* number of stop bits */ | (0 << 3) /* even parity, otherwise odd */ | (0 << 2) /* enable parity */ | (1 << 1); /* asynchronous timing mode */ /** - set baudrate */ scilinREG->BAUD = 259; /* baudrate */ /** - tranmision length */ scilinREG->LENGTH = 8 - 1; /* length */ /** - set SCI pins functional mode */ scilinREG->FUN = (1 << 2) /* tx pin */ | (1 << 1) /* rx pin */ | (0); /* clk pin */ /** - set SCI pins default output value */ scilinREG->DOUT = (0 << 2) /* tx pin */ | (0 << 1) /* rx pin */ | (0); /* clk pin */ /** - set SCI pins output direction */ scilinREG->DIR = (0 << 2) /* tx pin */ | (0 << 1) /* rx pin */ | (0); /* clk pin */ /** - set SCI pins open drain enable */ scilinREG->ODR = (0 << 2) /* tx pin */ | (0 << 1) /* rx pin */ | (0); /* clk pin */ /** - set SCI pins pullup/pulldown enable */ scilinREG->PD = (0 << 2) /* tx pin */ | (0 << 1) /* rx pin */ | (0); /* clk pin */ /** - set SCI pins pullup/pulldown select */ scilinREG->PSL = (1 << 2) /* tx pin */ | (1 << 1) /* rx pin */ | (1); /* clk pin */ /** - set interrupt level */ scilinREG->SETINTLVL = (0 << 26) /* Framing error */ | (0 << 25) /* Overrun error */ | (0 << 24) /* Pariry error */ | (0 << 9) /* Receive */ | (0 << 8) /* Transmit */ | (0 << 1) /* Wakeup */ | (0); /* Break detect */ /** - set interrupt enable */ scilinREG->SETINT = (0 << 26) /* Framing error */ | (0 << 25) /* Overrun error */ | (0 << 24) /* Pariry error */ | (1 << 9) /* Receive */ | (0 << 1) /* Wakeup */ | (0); /* Break detect */ /** - inialise global transfer variables */ g_sciTransfer[0].mode = 0 << 8; g_sciTransfer[0].length = 0; /** - Finaly start SCILIN */ scilinREG->GCR1 |= (1 << 7); /* USER CODE BEGIN (3) */ /* USER CODE END */ }