USB to UART bridge
Fork of XBee-ExplorerLite by
UART | pinout |
---|---|
TXD | p9 |
RXD | p10 |
RTS | p5 |
DTR | p6 |
Windows serial driver:
https://developer.mbed.org/handbook/USBSerial
https://developer.mbed.org/media/uploads/samux/serial.zip
Revision 2:79ca417c25b2, committed 2015-08-11
- Comitter:
- va009039
- Date:
- Tue Aug 11 23:07:42 2015 +0000
- Parent:
- 1:3d02f8b77d68
- Commit message:
- add LPC11U35
Changed in this revision
diff -r 3d02f8b77d68 -r 79ca417c25b2 USBDevice.lib --- a/USBDevice.lib Tue May 13 15:46:37 2014 +0900 +++ b/USBDevice.lib Tue Aug 11 23:07:42 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/va009039/code/USBDevice/#8615d80a0568 +http://mbed.org/users/va009039/code/USBDevice/#8bd969c0b0f2
diff -r 3d02f8b77d68 -r 79ca417c25b2 main.cpp --- a/main.cpp Tue May 13 15:46:37 2014 +0900 +++ b/main.cpp Tue Aug 11 23:07:42 2015 +0000 @@ -1,64 +1,55 @@ +// main.cpp 2015/7/8 +// USB-to-UART-bridge #include "BaseUsbUartBridge.h" -DigitalOut led_xbee(LED1),led_usb(LED2),led_reset(LED3),led_heartbeat(LED4); -RawSerial pc(MBED_UARTUSB); -#if defined(TARGET_LPC4088) -#define XBEE_UART P4_22,P4_23 -DigitalOut xbee_rts(P4_21); -DigitalOut xbee_dtr(P4_19); -DigitalOut xbee_reset(P4_17); -DigitalIn reset_sw(P2_10); -#define SW_MODE PullUp -#elif defined(TARGET_LPC1768) -#define XBEE_UART p9,p10 -DigitalOut xbee_rts(p21); -DigitalOut xbee_dtr(p22); -DigitalOut xbee_reset(p30); -DigitalIn reset_sw(p14); -#define SW_MODE PullDown + +DigitalInOut uart_nRTS(p5); +DigitalInOut uart_nDTR(p6); +#if defined(TARGET_MCU_LPC11U35_501) +DigitalOut led_uart(LED1); +DigitalOut led_usb(LED2); +DigitalOut led_rts(p18); +DigitalOut led_dtr(p20); #else -#error "target error" +DigitalOut led_uart(LED1); +DigitalOut led_usb(LED2); +DigitalOut led_rts(LED3); +DigitalOut led_dtr(LED4); #endif -class USB_XBee : public BaseUsbUartBridge { +class USB_UART : public BaseUsbUartBridge { public: - USB_XBee(PinName tx, PinName rx) : BaseUsbUartBridge(tx, rx) {} - virtual void controlLineStateChanged(int rts, int dtr){ - xbee_rts = rts ^ 1; - xbee_dtr = dtr ^ 1; + USB_UART(PinName tx, PinName rx) : BaseUsbUartBridge(tx, rx) { + uart_nRTS.mode(PullUp); + uart_nDTR.mode(PullUp); + uart_nRTS.input(); + uart_nDTR.input(); + } + virtual void controlLineStateChanged(int rts, int dtr) { + led_rts = rts; + led_dtr = dtr; + if (rts) { + uart_nRTS.output(); + uart_nRTS = 0; + } else { + uart_nRTS.input(); + } + if (dtr) { + uart_nDTR.output(); + uart_nDTR = 0; + } else { + uart_nDTR.input(); + } } virtual void monitor(src_t src, uint8_t c) { switch(src) { - case _UART: led_xbee = !led_xbee; break; + case _UART: led_uart = !led_uart; break; case _USB: led_usb = !led_usb; break; } - //pc.putc(c);// debug } -}; - -USB_XBee usb_xbee(XBEE_UART); +} usb_uart(UART_TX, UART_RX); int main() { - pc.baud(115200); - - xbee_rts = 0; - xbee_dtr = 0; - xbee_reset = 1; - reset_sw.mode(SW_MODE); - int prev_sw = 1; - - Timer heartbeat_t; - heartbeat_t.reset(); - heartbeat_t.start(); while(1) { - if (reset_sw ^ prev_sw) { - prev_sw = reset_sw; - xbee_reset = prev_sw ^ (SW_MODE == PullDown ? 1 : 0); - led_reset = xbee_reset; - } - if (heartbeat_t.read_ms() > 500) { - heartbeat_t.reset(); - led_heartbeat = !led_heartbeat; - } - usb_xbee.poll(); + usb_uart.poll(); } }
diff -r 3d02f8b77d68 -r 79ca417c25b2 mbed.bld --- a/mbed.bld Tue May 13 15:46:37 2014 +0900 +++ b/mbed.bld Tue Aug 11 23:07:42 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/8a40adfe8776 \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/b9ad9a133dc7 \ No newline at end of file