USB to UART bridge

Dependencies:   USBDevice mbed

Fork of XBee-ExplorerLite by Norimasa Okamoto

UARTpinout
TXDp9
RXDp10
RTSp5
DTRp6

Windows serial driver:
https://developer.mbed.org/handbook/USBSerial
https://developer.mbed.org/media/uploads/samux/serial.zip

Committer:
va009039
Date:
Tue Aug 11 23:07:42 2015 +0000
Revision:
2:79ca417c25b2
Parent:
0:9b1aa393acb3
add LPC11U35

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 2:79ca417c25b2 1 // main.cpp 2015/7/8
va009039 2:79ca417c25b2 2 // USB-to-UART-bridge
va009039 0:9b1aa393acb3 3 #include "BaseUsbUartBridge.h"
va009039 2:79ca417c25b2 4
va009039 2:79ca417c25b2 5 DigitalInOut uart_nRTS(p5);
va009039 2:79ca417c25b2 6 DigitalInOut uart_nDTR(p6);
va009039 2:79ca417c25b2 7 #if defined(TARGET_MCU_LPC11U35_501)
va009039 2:79ca417c25b2 8 DigitalOut led_uart(LED1);
va009039 2:79ca417c25b2 9 DigitalOut led_usb(LED2);
va009039 2:79ca417c25b2 10 DigitalOut led_rts(p18);
va009039 2:79ca417c25b2 11 DigitalOut led_dtr(p20);
va009039 0:9b1aa393acb3 12 #else
va009039 2:79ca417c25b2 13 DigitalOut led_uart(LED1);
va009039 2:79ca417c25b2 14 DigitalOut led_usb(LED2);
va009039 2:79ca417c25b2 15 DigitalOut led_rts(LED3);
va009039 2:79ca417c25b2 16 DigitalOut led_dtr(LED4);
va009039 0:9b1aa393acb3 17 #endif
va009039 0:9b1aa393acb3 18
va009039 2:79ca417c25b2 19 class USB_UART : public BaseUsbUartBridge {
va009039 0:9b1aa393acb3 20 public:
va009039 2:79ca417c25b2 21 USB_UART(PinName tx, PinName rx) : BaseUsbUartBridge(tx, rx) {
va009039 2:79ca417c25b2 22 uart_nRTS.mode(PullUp);
va009039 2:79ca417c25b2 23 uart_nDTR.mode(PullUp);
va009039 2:79ca417c25b2 24 uart_nRTS.input();
va009039 2:79ca417c25b2 25 uart_nDTR.input();
va009039 2:79ca417c25b2 26 }
va009039 2:79ca417c25b2 27 virtual void controlLineStateChanged(int rts, int dtr) {
va009039 2:79ca417c25b2 28 led_rts = rts;
va009039 2:79ca417c25b2 29 led_dtr = dtr;
va009039 2:79ca417c25b2 30 if (rts) {
va009039 2:79ca417c25b2 31 uart_nRTS.output();
va009039 2:79ca417c25b2 32 uart_nRTS = 0;
va009039 2:79ca417c25b2 33 } else {
va009039 2:79ca417c25b2 34 uart_nRTS.input();
va009039 2:79ca417c25b2 35 }
va009039 2:79ca417c25b2 36 if (dtr) {
va009039 2:79ca417c25b2 37 uart_nDTR.output();
va009039 2:79ca417c25b2 38 uart_nDTR = 0;
va009039 2:79ca417c25b2 39 } else {
va009039 2:79ca417c25b2 40 uart_nDTR.input();
va009039 2:79ca417c25b2 41 }
va009039 0:9b1aa393acb3 42 }
va009039 0:9b1aa393acb3 43 virtual void monitor(src_t src, uint8_t c) {
va009039 0:9b1aa393acb3 44 switch(src) {
va009039 2:79ca417c25b2 45 case _UART: led_uart = !led_uart; break;
va009039 0:9b1aa393acb3 46 case _USB: led_usb = !led_usb; break;
va009039 0:9b1aa393acb3 47 }
va009039 0:9b1aa393acb3 48 }
va009039 2:79ca417c25b2 49 } usb_uart(UART_TX, UART_RX);
va009039 0:9b1aa393acb3 50
va009039 0:9b1aa393acb3 51 int main() {
va009039 0:9b1aa393acb3 52 while(1) {
va009039 2:79ca417c25b2 53 usb_uart.poll();
va009039 0:9b1aa393acb3 54 }
va009039 0:9b1aa393acb3 55 }