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:
Tue Nov 19 12:26:01 2013 +0000
Parent:
12:31fb5ff9fef5
Child:
14:e30f90b5447e
Commit message:
added ilevoe (i2c buffer oe)

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
C027_PinNames.h Show annotated file Show diff for this revision Revisions of this file
--- a/C027.cpp	Sun Nov 10 18:46:43 2013 +0000
+++ b/C027.cpp	Tue Nov 19 12:26:01 2013 +0000
@@ -26,19 +26,21 @@
 }
 
 C027::C027() :
-    mdmEn(MDMEN),   mdmRst(MDMRST),     mdmPwrOn(MDMPWRON),   // MDM CTRL
-    mdmRts(MDMRTS), mdmLvlOe(MDMLVLOE), mdmUsbDet(MDMUSBDET), // MDM IF
-    gpsEn(GPSEN),   gpsRst(GPSRST)                            // GPS CTRL
+    mdmEn(MDMEN),       mdmRst(MDMRST),         mdmPwrOn(MDMPWRON),   // MDM CTRL
+    mdmLvlOe(MDMLVLOE), mdmILvlOe(MDMILVLOE),   mdmUsbDet(MDMUSBDET), // MDM IF
+    gpsEn(GPSEN),       gpsRst(GPSRST)                                // GPS CTRL
 {
+    DigitalOut mdmRts(MDMRTS);
+    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
     gpsIsEnabled = false;
     // we start with the modem disabled
-    mdmLvlOe  = 1;  // LVLEN:  1=disabled
+    mdmLvlOe  = 1;  // LVLEN:  1=disabled (uart/gpio)
+    mdmILvlOe = 0;  // ILVLEN: 0=disabled (i2c)
     mdmUsbDet = 0;  // USBDET: 0=disabled
     mdmPwrOn  = 1;  // PWRON:  1=idle, 0=action
-    mdmRts    = 0;  // RTS.    0=ready to send 
     mdmEn     = 0;  // LDOEN:  1=on, 0=off
     mdmRst    = 0;  // RESET:  0=reset, 1=operating
     mdmIsEnabled = false;
@@ -56,13 +58,13 @@
         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
         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
-        mdmLvlOe  = 0;  // LVLEN:  0=enabled
         mdmUsbDet = 1;  // USBDET: 1=enabled
         mdmIsEnabled = true;
         // the interfaces of the modem should be fully ready after a certain period
@@ -70,12 +72,16 @@
         // SARA-G350  3000ms
         // LISA-C200       
         wait_ms(1000);
+        mdmLvlOe  = 0;  // LVLEN:  0=enabled (uart/gpio)
+        if (gpsIsEnabled) 
+            mdmILvlOe = 1; // ILVLEN: 1=enabled (i2c)
     }
     else if (mdmIsEnabled && !enable) // disable modem
     {
         mdmIsEnabled = false;
         // initiate power off sequence by setting PwnOn low for >1s
-        mdmLvlOe  = 1;  // LVLEN:  1=disabled
+        mdmILvlOe = 0;  // ILVLEN: 0=disabled (i2c)
+        mdmLvlOe  = 1;  // LVLEN:  1=disabled (uart/gpio)
         mdmUsbDet = 0;  // USBDET: 0=disabled
         mdmPwrOn  = 0;  // PWRON:  0=active
         wait_ms(1000);  //         send to sleep
@@ -90,6 +96,7 @@
             gpsEn = 0;  // LDOEN(gps): 1=on -> 0=off
 #endif
     }
+        
 }
 
 void C027::mdmReset(void)
@@ -144,17 +151,20 @@
         gpsRst   = 1;   // RESET: 0=reset -> 1=operating
         gpsIsEnabled = true;
         // the gps schould be fully ready after 50ms
+        if (mdmIsEnabled) 
+            mdmILvlOe = 1; // ILVLEN: 0=enabled (i2c)
     }
     else if (gpsIsEnabled && !enable) // diasble gps
     {
         gpsIsEnabled = false;
-        gpsRst   = 0;   // RESET: 1=operating -> 0=reset
+        mdmILvlOe = 0;   // ILVLEN: 0=disabled (i2c)
+        gpsRst    = 0;   // RESET: 1=operating -> 0=reset
 #ifdef C027_REVA
         // the gps ldo may have to remain enabled for the level shifters of the modem
         if (!mdmIsEnabled) 
-            gpsEn    = 0;   // LDOEN: 1=on -> 0=off 
+            gpsEn = 0;   // LDOEN: 1=on -> 0=off 
 #else
-        gpsEn    = 0;   // LDOEN: 1=on -> 0=off 
+        gpsEn     = 0;   // LDOEN: 1=on -> 0=off 
 #endif
     }
 }
--- a/C027.h	Sun Nov 10 18:46:43 2013 +0000
+++ b/C027.h	Tue Nov 19 12:26:01 2013 +0000
@@ -32,8 +32,8 @@
     DigitalOut      mdmEn;
     DigitalOut      mdmRst;
     DigitalOut      mdmPwrOn;
-    DigitalOut      mdmRts;
     DigitalOut      mdmLvlOe;
+    DigitalOut      mdmILvlOe;
     DigitalOut      mdmUsbDet;
     bool            mdmIsEnabled;
     // gps pins
--- a/C027_PinNames.h	Sun Nov 10 18:46:43 2013 +0000
+++ b/C027_PinNames.h	Tue Nov 19 12:26:01 2013 +0000
@@ -48,6 +48,7 @@
 #define MDMGPIO1    (P2_7)  // GPIO1, Network status
 #define MDMRST      (P2_8)  // Reset (active low, set as open drain!)
 #define MDMLVLOE    (P0_9)  // Serial/GPIO Level Shifter Output Enable (n/a on REV.A board)
+#define MDMILVLOE   (P0_8)  // I2C Level Shifter Output Enable (n/a on REV.A board)
 
 // PIN header connector
 // for standard-based form factor with expansion board
@@ -121,5 +122,4 @@
 
 // Reserved / NC pins 
 // -----------------------------------------------------------
-#define RSVD1       (P0_9)
 #define RSVD2       (P3_26)