Fork to support REVB hardware.
Dependents: C027_BootTest_revb C027_EthernetSniffTest C027_M3_SerialEcho C027_HelloWorld_revb ... more
Fork of C027 by
Diff: C027.cpp
- Revision:
- 14:e30f90b5447e
- Parent:
- 13:fb30e9923a7b
- Child:
- 15:971186932592
--- a/C027.cpp Tue Nov 19 12:26:01 2013 +0000 +++ b/C027.cpp Fri Dec 06 09:27:49 2013 +0000 @@ -30,8 +30,10 @@ mdmLvlOe(MDMLVLOE), mdmILvlOe(MDMILVLOE), mdmUsbDet(MDMUSBDET), // MDM IF gpsEn(GPSEN), gpsRst(GPSRST) // GPS CTRL { + DigitalOut led(LED); DigitalOut mdmRts(MDMRTS); - mdmRts = 0; // RTS. 0=ready to send + led = 0; // LED1: 0=off + mdmRts = 0; // RTS: 0=ready to send // we start with the gps disabled gpsEn = 0; // LDOEN: 1=on,0=off gpsRst = 0; // RESET: 0=reset,1=operating @@ -44,6 +46,7 @@ mdmEn = 0; // LDOEN: 1=on, 0=off mdmRst = 0; // RESET: 0=reset, 1=operating mdmIsEnabled = false; + mdmUseUsb = false; } void C027::mdmPower(bool enable) @@ -54,18 +57,19 @@ // we need the gps ldo for the level shifters of the modem gpsEn = 1; // LDOEN(gps): 0=off -> 1=on #endif - mdmPwrOn = 1; // PWRON: 1=idle + mdmPwrOn = 0; // PWRON: 0=turn on mdmEn = 0; // LDOEN: 0=off mdmRst = 0; // RESET: 0=reset mdmLvlOe = 1; // LVLEN: 1=disabled mdmILvlOe = 0; // ILVLEN: 0=disabled - mdmUsbDet = 0; // USBDET: 0=disabled + mdmUsbDet = mdmUseUsb ? 1 : 0; // USBDET: 0=disabled, 1=enabled wait_ms( 10); // wait until supply switched off mdmEn = 1; // LDOEN: 0=off -> 1=on wait_ms( 10); // wait until supply stable and on wait_ms(300); // power on sequence is triggered by keeping reset 50ms-300ms low mdmRst = 1; // RESET: 0=reset -> 1=operating - mdmUsbDet = 1; // USBDET: 1=enabled + wait_ms(150); // LISA-C requires 150ms low to turn on + mdmPwrOn = 1; // PWRON: 0=turn on -> 1=idle mdmIsEnabled = true; // the interfaces of the modem should be fully ready after a certain period // LISA-U200 5000ms @@ -99,6 +103,13 @@ } +void C027::mdmUsbEnable(bool enable) +{ + mdmUseUsb = enable; + if (mdmIsEnabled) + mdmUsbDet = mdmUseUsb ? 1 : 0; +} + void C027::mdmReset(void) { if (mdmIsEnabled)