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
main.cpp@0:9b1aa393acb3, 2014-05-12 (annotated)
- Committer:
- va009039
- Date:
- Mon May 12 15:53:39 2014 +0000
- Revision:
- 0:9b1aa393acb3
- Child:
- 2:79ca417c25b2
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
va009039 | 0:9b1aa393acb3 | 1 | #include "BaseUsbUartBridge.h" |
va009039 | 0:9b1aa393acb3 | 2 | DigitalOut led_xbee(LED1),led_usb(LED2),led_reset(LED3),led_heartbeat(LED4); |
va009039 | 0:9b1aa393acb3 | 3 | RawSerial pc(MBED_UARTUSB); |
va009039 | 0:9b1aa393acb3 | 4 | #if defined(TARGET_LPC4088) |
va009039 | 0:9b1aa393acb3 | 5 | #define XBEE_UART P4_22,P4_23 |
va009039 | 0:9b1aa393acb3 | 6 | DigitalOut xbee_rts(P4_21); |
va009039 | 0:9b1aa393acb3 | 7 | DigitalOut xbee_dtr(P4_19); |
va009039 | 0:9b1aa393acb3 | 8 | DigitalOut xbee_reset(P4_17); |
va009039 | 0:9b1aa393acb3 | 9 | DigitalIn reset_sw(P2_10); |
va009039 | 0:9b1aa393acb3 | 10 | #define SW_MODE PullUp |
va009039 | 0:9b1aa393acb3 | 11 | #elif defined(TARGET_LPC1768) |
va009039 | 0:9b1aa393acb3 | 12 | #define XBEE_UART p9,p10 |
va009039 | 0:9b1aa393acb3 | 13 | DigitalOut xbee_rts(p21); |
va009039 | 0:9b1aa393acb3 | 14 | DigitalOut xbee_dtr(p22); |
va009039 | 0:9b1aa393acb3 | 15 | DigitalOut xbee_reset(p30); |
va009039 | 0:9b1aa393acb3 | 16 | DigitalIn reset_sw(p14); |
va009039 | 0:9b1aa393acb3 | 17 | #define SW_MODE PullDown |
va009039 | 0:9b1aa393acb3 | 18 | #else |
va009039 | 0:9b1aa393acb3 | 19 | #error "target error" |
va009039 | 0:9b1aa393acb3 | 20 | #endif |
va009039 | 0:9b1aa393acb3 | 21 | |
va009039 | 0:9b1aa393acb3 | 22 | class USB_XBee : public BaseUsbUartBridge { |
va009039 | 0:9b1aa393acb3 | 23 | public: |
va009039 | 0:9b1aa393acb3 | 24 | USB_XBee(PinName tx, PinName rx) : BaseUsbUartBridge(tx, rx) {} |
va009039 | 0:9b1aa393acb3 | 25 | virtual void controlLineStateChanged(int rts, int dtr){ |
va009039 | 0:9b1aa393acb3 | 26 | xbee_rts = rts ^ 1; |
va009039 | 0:9b1aa393acb3 | 27 | xbee_dtr = dtr ^ 1; |
va009039 | 0:9b1aa393acb3 | 28 | } |
va009039 | 0:9b1aa393acb3 | 29 | virtual void monitor(src_t src, uint8_t c) { |
va009039 | 0:9b1aa393acb3 | 30 | switch(src) { |
va009039 | 0:9b1aa393acb3 | 31 | case _UART: led_xbee = !led_xbee; break; |
va009039 | 0:9b1aa393acb3 | 32 | case _USB: led_usb = !led_usb; break; |
va009039 | 0:9b1aa393acb3 | 33 | } |
va009039 | 0:9b1aa393acb3 | 34 | //pc.putc(c);// debug |
va009039 | 0:9b1aa393acb3 | 35 | } |
va009039 | 0:9b1aa393acb3 | 36 | }; |
va009039 | 0:9b1aa393acb3 | 37 | |
va009039 | 0:9b1aa393acb3 | 38 | USB_XBee usb_xbee(XBEE_UART); |
va009039 | 0:9b1aa393acb3 | 39 | |
va009039 | 0:9b1aa393acb3 | 40 | int main() { |
va009039 | 0:9b1aa393acb3 | 41 | pc.baud(115200); |
va009039 | 0:9b1aa393acb3 | 42 | |
va009039 | 0:9b1aa393acb3 | 43 | xbee_rts = 0; |
va009039 | 0:9b1aa393acb3 | 44 | xbee_dtr = 0; |
va009039 | 0:9b1aa393acb3 | 45 | xbee_reset = 1; |
va009039 | 0:9b1aa393acb3 | 46 | reset_sw.mode(SW_MODE); |
va009039 | 0:9b1aa393acb3 | 47 | int prev_sw = 1; |
va009039 | 0:9b1aa393acb3 | 48 | |
va009039 | 0:9b1aa393acb3 | 49 | Timer heartbeat_t; |
va009039 | 0:9b1aa393acb3 | 50 | heartbeat_t.reset(); |
va009039 | 0:9b1aa393acb3 | 51 | heartbeat_t.start(); |
va009039 | 0:9b1aa393acb3 | 52 | while(1) { |
va009039 | 0:9b1aa393acb3 | 53 | if (reset_sw ^ prev_sw) { |
va009039 | 0:9b1aa393acb3 | 54 | prev_sw = reset_sw; |
va009039 | 0:9b1aa393acb3 | 55 | xbee_reset = prev_sw ^ (SW_MODE == PullDown ? 1 : 0); |
va009039 | 0:9b1aa393acb3 | 56 | led_reset = xbee_reset; |
va009039 | 0:9b1aa393acb3 | 57 | } |
va009039 | 0:9b1aa393acb3 | 58 | if (heartbeat_t.read_ms() > 500) { |
va009039 | 0:9b1aa393acb3 | 59 | heartbeat_t.reset(); |
va009039 | 0:9b1aa393acb3 | 60 | led_heartbeat = !led_heartbeat; |
va009039 | 0:9b1aa393acb3 | 61 | } |
va009039 | 0:9b1aa393acb3 | 62 | usb_xbee.poll(); |
va009039 | 0:9b1aa393acb3 | 63 | } |
va009039 | 0:9b1aa393acb3 | 64 | } |