/* This function initializes the UART module */ void CyFxUartLpApplnInit (void) { CyU3PUartConfig_t uartConfig; CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS; /* Initialize the UART module */ apiRetStatus = CyU3PUartInit (); if (apiRetStatus != CY_U3P_SUCCESS) { /* Error handling */ CyFxAppErrorHandler(apiRetStatus); } /* Configure the UART: Baud-rate = 115200, One stop bit, No parity, Flow control enabled. */ CyU3PMemSet ((uint8_t *)&uartConfig, 0, sizeof(uartConfig)); uartConfig.baudRate = CY_U3P_UART_BAUDRATE_115200; uartConfig.stopBit = CY_U3P_UART_ONE_STOP_BIT; uartConfig.parity = CY_U3P_UART_NO_PARITY; uartConfig.flowCtrl = CyTrue; uartConfig.txEnable = CyTrue; uartConfig.rxEnable = CyTrue; uartConfig.isDma = CyFalse; /* Register mode */ /* Set the UART configuration */ apiRetStatus = CyU3PUartSetConfig (&uartConfig, NULL); if (apiRetStatus != CY_U3P_SUCCESS ) { /* Error handling */ CyFxAppErrorHandler(apiRetStatus); } }
/* This function initializes the Debug Module. */ void CyFxGpifAppDebugInit () { CyU3PUartConfig_t uartConfig; CyU3PReturnStatus_t status; /* Initialize the UART for printing debug messages */ status = CyU3PUartInit (); if (status != CY_U3P_SUCCESS) { /* Error Handling */ CyFxGpifAppErrorHandler (status); } /* Set UART Configuration */ uartConfig.baudRate = CY_U3P_UART_BAUDRATE_115200; uartConfig.stopBit = CY_U3P_UART_ONE_STOP_BIT; uartConfig.parity = CY_U3P_UART_NO_PARITY; uartConfig.txEnable = CyTrue; uartConfig.rxEnable = CyFalse; uartConfig.flowCtrl = CyFalse; uartConfig.isDma = CyTrue; /* Set the UART configuration */ status = CyU3PUartSetConfig (&uartConfig, NULL); if (status != CY_U3P_SUCCESS) { /* Error Handling */ CyFxGpifAppErrorHandler(status); } /* Set the UART transfer */ status = CyU3PUartTxSetBlockXfer (0xFFFFFFFF); if (status != CY_U3P_SUCCESS) { /* Error Handling */ CyFxGpifAppErrorHandler(status); } /* Initialize the Debug application */ status = CyU3PDebugInit (CY_U3P_LPP_SOCKET_UART_CONS, 8); if (status != CY_U3P_SUCCESS) { /* Error Handling */ CyFxGpifAppErrorHandler(status); } CyU3PDebugPreamble (CyFalse); }
/* This function initializes the debug module. The debug prints * are routed to the UART and can be seen using a UART console * running at 115200 baud rate. */ void CyFxApplnDebugInit (void) { CyU3PUartConfig_t uartConfig; CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS; /* Initialize the UART for printing debug messages */ apiRetStatus = CyU3PUartInit(); if (apiRetStatus != CY_U3P_SUCCESS) { /* Error handling */ CyFxAppErrorHandler(apiRetStatus); } /* Set UART configuration */ CyU3PMemSet ((uint8_t *)&uartConfig, 0, sizeof (uartConfig)); uartConfig.baudRate = CY_U3P_UART_BAUDRATE_115200; uartConfig.stopBit = CY_U3P_UART_ONE_STOP_BIT; uartConfig.parity = CY_U3P_UART_NO_PARITY; uartConfig.txEnable = CyTrue; uartConfig.rxEnable = CyFalse; uartConfig.flowCtrl = CyFalse; uartConfig.isDma = CyTrue; apiRetStatus = CyU3PUartSetConfig (&uartConfig, NULL); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } /* Set the UART transfer to a really large value. */ apiRetStatus = CyU3PUartTxSetBlockXfer (0xFFFFFFFF); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } /* Initialize the debug module. */ apiRetStatus = CyU3PDebugInit (CY_U3P_LPP_SOCKET_UART_CONS, 8); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } }
/* Initialize the debug module with UART. */ CyU3PReturnStatus_t CyFxDebugInit ( void) { CyU3PReturnStatus_t status = CY_U3P_SUCCESS; CyU3PUartConfig_t uartConfig; /* Initialize and configure the UART for logging. */ status = CyU3PUartInit (); if (status != CY_U3P_SUCCESS) { return status; } CyU3PMemSet ((uint8_t *)&uartConfig, 0, sizeof (uartConfig)); uartConfig.baudRate = CY_U3P_UART_BAUDRATE_115200; uartConfig.stopBit = CY_U3P_UART_ONE_STOP_BIT; uartConfig.parity = CY_U3P_UART_NO_PARITY; uartConfig.txEnable = CyTrue; uartConfig.rxEnable = CyFalse; uartConfig.flowCtrl = CyFalse; uartConfig.isDma = CyTrue; status = CyU3PUartSetConfig (&uartConfig, NULL); if (status != CY_U3P_SUCCESS) { return status; } /* Set the dma for an inifinity transfer */ status = CyU3PUartTxSetBlockXfer (0xFFFFFFFF); if (status != CY_U3P_SUCCESS) { return status; } /* Start the debug module for printing log messages. */ status = CyU3PDebugInit (CY_U3P_LPP_SOCKET_UART_CONS, 8); return status; }
static void UartBridgeStart(void) { uint16_t size = 0; CyU3PEpConfig_t epCfg; CyU3PUSBSpeed_t usbSpeed = CyU3PUsbGetSpeed(); CyU3PDmaChannelConfig_t dmaCfg; CyU3PUartConfig_t uartConfig; CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS; /* Initialize the UART for printing debug messages */ apiRetStatus = CyU3PUartInit(); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } /* Set UART configuration */ CyU3PMemSet ((uint8_t *)&uartConfig, 0, sizeof (uartConfig)); uartConfig.baudRate = CY_U3P_UART_BAUDRATE_4M; // CY_U3P_UART_BAUDRATE_115200; uartConfig.stopBit = CY_U3P_UART_ONE_STOP_BIT; uartConfig.parity = CY_U3P_UART_NO_PARITY; uartConfig.txEnable = CyTrue; uartConfig.rxEnable = CyTrue; uartConfig.flowCtrl = CyFalse; uartConfig.isDma = CyTrue; apiRetStatus = CyU3PUartSetConfig (&uartConfig, NULL); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } /* Set UART Tx and Rx transfer Size to infinite */ apiRetStatus = CyU3PUartTxSetBlockXfer(0xFFFFFFFF); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } apiRetStatus = CyU3PUartRxSetBlockXfer(0xFFFFFFFF); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } /* Determine max packet size based on USB speed */ switch (usbSpeed) { case CY_U3P_FULL_SPEED: size = 64; break; case CY_U3P_HIGH_SPEED: size = 512; break; case CY_U3P_SUPER_SPEED: size = 1024; break; default: CyU3PDebugPrint (4, "Error! Invalid USB speed.\n"); CyFxAppErrorHandler (CY_U3P_ERROR_FAILURE); break; } CyU3PMemSet ((uint8_t *)&epCfg, 0, sizeof (epCfg)); epCfg.enable = CyTrue; epCfg.epType = CY_U3P_USB_EP_BULK; epCfg.burstLen = 1; epCfg.streams = 0; epCfg.pcktSize = size; /* Producer endpoint configuration */ apiRetStatus = CyU3PSetEpConfig(BLADE_UART_EP_PRODUCER, &epCfg); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PSetEpConfig failed, Error code = %d\n", apiRetStatus); CyFxAppErrorHandler (apiRetStatus); } /* Consumer endpoint configuration */ apiRetStatus = CyU3PSetEpConfig(BLADE_UART_EP_CONSUMER, &epCfg); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PSetEpConfig failed, Error code = %d\n", apiRetStatus); CyFxAppErrorHandler (apiRetStatus); } CyU3PMemSet((uint8_t *)&dmaCfg, 0, sizeof(dmaCfg)); dmaCfg.size = 16; dmaCfg.count = 10; dmaCfg.prodSckId = CY_U3P_UIB_SOCKET_PROD_2; dmaCfg.consSckId = CY_U3P_LPP_SOCKET_UART_CONS; dmaCfg.dmaMode = CY_U3P_DMA_MODE_BYTE; dmaCfg.notification = 0; dmaCfg.cb = 0; dmaCfg.prodHeader = 0; dmaCfg.prodFooter = 0; dmaCfg.consHeader = 0; dmaCfg.prodAvailCount = 0; apiRetStatus = CyU3PDmaChannelCreate(&glChHandlebladeRFUtoUART, CY_U3P_DMA_TYPE_AUTO, &dmaCfg); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PDmaChannelCreate failed, Error code = %d\n", apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } dmaCfg.prodSckId = CY_U3P_LPP_SOCKET_UART_PROD; dmaCfg.consSckId = CY_U3P_UIB_SOCKET_CONS_2; apiRetStatus = CyU3PDmaChannelCreate(&glChHandlebladeRFUARTtoU, CY_U3P_DMA_TYPE_AUTO, &dmaCfg); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PDmaChannelCreate failed, Error code = %d\n", apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } /* Flush the endpoint memory */ CyU3PUsbFlushEp(BLADE_UART_EP_PRODUCER); CyU3PUsbFlushEp(BLADE_UART_EP_CONSUMER); /* Set DMA channel transfer size */ apiRetStatus = CyU3PDmaChannelSetXfer(&glChHandlebladeRFUtoUART, BLADE_DMA_TX_SIZE); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PDmaChannelSetXfer Failed, Error code = %d\n", apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } apiRetStatus = CyU3PDmaChannelSetXfer(&glChHandlebladeRFUARTtoU, BLADE_DMA_TX_SIZE); if (apiRetStatus != CY_U3P_SUCCESS) { CyU3PDebugPrint (4, "CyU3PDmaChannelSetXfer Failed, Error code = %d\n", apiRetStatus); CyFxAppErrorHandler(apiRetStatus); } /* Set UART Tx and Rx transfer Size to infinite */ apiRetStatus = CyU3PUartTxSetBlockXfer(0xFFFFFFFF); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } apiRetStatus = CyU3PUartRxSetBlockXfer(0xFFFFFFFF); if (apiRetStatus != CY_U3P_SUCCESS) { CyFxAppErrorHandler(apiRetStatus); } }