/** Initialize **/ void BULKInitEndpoint(void) { // BULK Data EP is IN and OUT EP BULK_DATA_EP_UEP = EP_OUT_IN | HSHK_EN; // now build EP EP_OUT_BD(BULK_DATA_EP_NUM).Cnt = sizeof(BULKRxBuffer); EP_OUT_BD(BULK_DATA_EP_NUM).ADDR = PTR16(&BULKRxBuffer); // USB owns buffer EP_OUT_BD(BULK_DATA_EP_NUM).Stat.uc = BDS_UOWN | BDS_DTSEN; EP_IN_BD(BULK_DATA_EP_NUM).ADDR = PTR16(&BULKTxBuffer); // CPU owns buffer EP_IN_BD(BULK_DATA_EP_NUM).Stat.uc = BDS_DTS ; }
/** Initialize **/ void UARTInitEndpoint(void) { #ifdef DEBUG_UART printf("UARTInitEndpoint\r\n"); #endif // UART Data EP is IN and OUT EP UART_DATA_EP_UEP = EP_OUT_IN | HSHK_EN; // now build EP EP_OUT_BD(UART_DATA_EP_NUM).Cnt = sizeof(UARTRxBuffer); EP_OUT_BD(UART_DATA_EP_NUM).ADDR = PTR16(&UARTRxBuffer); // USB owns buffer EP_OUT_BD(UART_DATA_EP_NUM).Stat.uc = BDS_UOWN | BDS_DTSEN; EP_IN_BD(UART_DATA_EP_NUM).ADDR = PTR16(&UARTTxBuffer); // CPU owns buffer EP_IN_BD(UART_DATA_EP_NUM).Stat.uc = BDS_DTS ; }
/** Initialize **/ void CDCInitEndpoint(void) { #ifdef DEBUG_PRINT_CDC printf("CDCInitEndpoint\r\n"); #endif line_config.dwDTERate = USB_CDC_BAUD_RATE; line_config.bCharFormat = USB_CDC_STOP_BITS; line_config.bParityType = USB_CDC_PARITY; line_config.bDataBits = USB_CDC_DATA_BITS; zlp.wValue0=0; zlp.wValue1=0; zlp.wValue2=0; zlp.wValue3=0; zlp.wValue4=0; zlp.wValue5=0; zlp.wValue6=0; zlp.wValue7=0; // set global state variable // Configure USB_COMM_EP_UEP as IN and Communication PIPE USB_COMM_EP_UEP = EP_IN | HSHK_EN; // CDC Data EP is IN and OUT EP CDC_DATA_EP_UEP = EP_OUT_IN | HSHK_EN; // configure buffer for the Eps // firt communication EP EP_IN_BD(USB_COMM_EP_NUM).ADDR = PTR16(&CDCControlBuffer); EP_IN_BD(USB_COMM_EP_NUM).Stat.uc = BDS_DAT1 | BDS_COWN; // now Buld EP EP_OUT_BD(CDC_DATA_EP_NUM).Cnt = sizeof(CDCRxBuffer); EP_OUT_BD(CDC_DATA_EP_NUM).ADDR = PTR16(&CDCRxBuffer); EP_OUT_BD(CDC_DATA_EP_NUM).Stat.uc = BDS_UOWN | BDS_DAT0 | BDS_DTSEN; EP_IN_BD(CDC_DATA_EP_NUM).ADDR = PTR16(&CDCTxBuffer); // +1 EP_IN_BD(CDC_DATA_EP_NUM).Stat.uc = BDS_DAT1 | BDS_COWN; deviceState=CONFIGURED; #ifdef DEBUG_PRINT_CDC printf("end CDCInitEndpoint\r\n"); #endif }
#include "../portable.h" #include "../peripheral.h" #include "hardware.h" #ifdef __dsPIC33FJ128GP802__ IOPort_t IOPorts[NUM_PORTS] = { {PTR16(0x2C0), PTR16(0x2C2), PTR16(0x2C4), PTR16(0x2C6)}, {PTR16(0x2C8), PTR16(0x2CA), PTR16(0x2CC), PTR16(0x2CE)} #if PINCOUNT==44 ,{PTR16(0x2D0), PTR16(0x2D2), PTR16(0x2D4), PTR16(0x2D6)} #endif }; void FW_Init(void) { // Initialize the CPU clock. AD1PCFGL = 0xFFFF; // Initially configurate everything as analog ports. int i=0; for (i = 0 ; i < HARDWARE_LEDCOUNT; i++) { SGPIO_Direction(LEDs[i].port, LEDs[i].pin, OUTPUT); } // Register all peripherals in the peripheral driver. Peripheral_Register(PERIPHERAL_UART_1, 1, Uart_Init, Uart_Mode, Uart_Tx, Uart_Rx); Peripheral_Register(PERIPHERAL_UART_2, 2, Uart_Init, Uart_Mode, Uart_Tx, Uart_Rx); }