Fork to support REVB hardware.

Dependents:   C027_BootTest_revb C027_EthernetSniffTest C027_M3_SerialEcho C027_HelloWorld_revb ... more

Fork of C027 by u-blox

Files at this revision

API Documentation at this revision

Comitter:
mazgch
Date:
Fri Dec 06 09:27:49 2013 +0000
Parent:
13:fb30e9923a7b
Child:
15:971186932592
Commit message:
switch to new revision of board ; for revision A version of board you have to use the define C027_REVA

Changed in this revision

C027.cpp Show annotated file Show diff for this revision Revisions of this file
C027.h Show annotated file Show diff for this revision Revisions of this file
--- 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)
--- a/C027.h	Tue Nov 19 12:26:01 2013 +0000
+++ b/C027.h	Fri Dec 06 09:27:49 2013 +0000
@@ -13,7 +13,7 @@
 // We do not have fancy leds that can be flashed on the C027.
 void mbed_die(void);
 
-#define C027_REVA // remove this define for the revision B boards
+//#define C027_REVA // remove this define for the revision B boards
 
 class C027
 {
@@ -21,6 +21,7 @@
     C027();
 
     void mdmPower(bool enable);
+    void mdmUsbEnable(bool enable); // enable the USB interface
     void mdmReset(void);
     void mdmWakeup(void);
     void mdmSleep(void);
@@ -36,6 +37,7 @@
     DigitalOut      mdmILvlOe;
     DigitalOut      mdmUsbDet;
     bool            mdmIsEnabled;
+    bool            mdmUseUsb;
     // gps pins
     DigitalOut      gpsEn;
     DigitalOut      gpsRst;