Board support library for C027
Dependents: IoTWorkshopLCD IoTWorkshopBuzzer IoTWorkshopSensors C027_USSDTest ... more
Fork of C027 by
C027.h@18:06d5a702779c, 2014-04-12 (annotated)
- Committer:
- mazgch
- Date:
- Sat Apr 12 08:01:14 2014 +0000
- Revision:
- 18:06d5a702779c
- Parent:
- 16:3ce62caf4518
- Child:
- 19:61d31c12230d
docu
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mazgch | 2:b7bd3660ff64 | 1 | /* Platform header file, for the u-blox C27-C20/U20/G35 |
mazgch | 2:b7bd3660ff64 | 2 | * mbed Internet of Things Starter Kit |
mazgch | 2:b7bd3660ff64 | 3 | * http://mbed.org/platforms/u-blox-C027/ |
mazgch | 2:b7bd3660ff64 | 4 | * |
mazgch | 2:b7bd3660ff64 | 5 | */ |
mazgch | 2:b7bd3660ff64 | 6 | |
mazgch | 2:b7bd3660ff64 | 7 | #pragma once |
mazgch | 2:b7bd3660ff64 | 8 | |
mazgch | 6:e11bf54dd344 | 9 | #include "mbed.h" |
mazgch | 5:ff17f16cf70a | 10 | |
mazgch | 16:3ce62caf4518 | 11 | #ifdef TARGET_UBLOX_C027 |
mazgch | 16:3ce62caf4518 | 12 | // on the native platform the pins are already defined |
mazgch | 16:3ce62caf4518 | 13 | #elif defined(TARGET_LPC1768) |
mazgch | 16:3ce62caf4518 | 14 | // if not native we are using the pin definition file from this library |
mazgch | 16:3ce62caf4518 | 15 | #include "C027_PinNames.h" |
mazgch | 16:3ce62caf4518 | 16 | // we also need to override the mbed_die function |
mazgch | 16:3ce62caf4518 | 17 | void mbed_die(void); |
mazgch | 16:3ce62caf4518 | 18 | #else |
mazgch | 16:3ce62caf4518 | 19 | #error "this library is indended to be used only with the C027 board" |
mazgch | 16:3ce62caf4518 | 20 | #endif |
mazgch | 6:e11bf54dd344 | 21 | |
mazgch | 16:3ce62caf4518 | 22 | //#define C027_REVA // select this define if you use revision A boards. |
mazgch | 7:e3eab86f1de9 | 23 | |
mazgch | 18:06d5a702779c | 24 | /** C027 Helper class to control the power supply and interface |
mazgch | 18:06d5a702779c | 25 | signals of the extended peripherials |
mazgch | 18:06d5a702779c | 26 | */ |
mazgch | 6:e11bf54dd344 | 27 | class C027 |
mazgch | 6:e11bf54dd344 | 28 | { |
mazgch | 6:e11bf54dd344 | 29 | public: |
mazgch | 18:06d5a702779c | 30 | /** Constructor, this function initialized the control pins. |
mazgch | 18:06d5a702779c | 31 | */ |
mazgch | 6:e11bf54dd344 | 32 | C027(); |
mazgch | 6:e11bf54dd344 | 33 | |
mazgch | 18:06d5a702779c | 34 | /** Enable the power supply of the Modem (MDM) |
mazgch | 18:06d5a702779c | 35 | */ |
mazgch | 6:e11bf54dd344 | 36 | void mdmPower(bool enable); |
mazgch | 18:06d5a702779c | 37 | |
mazgch | 18:06d5a702779c | 38 | /** Activate the Usb Interface on LISA-C or LISA-U modems. For LISA-C this |
mazgch | 18:06d5a702779c | 39 | function must be called before its supply is enabled. |
mazgch | 18:06d5a702779c | 40 | \param enable true if supply should be truned on, false if off |
mazgch | 18:06d5a702779c | 41 | */ |
mazgch | 18:06d5a702779c | 42 | void mdmUsbEnable(bool enable); |
mazgch | 18:06d5a702779c | 43 | |
mazgch | 18:06d5a702779c | 44 | /** Reset the Modem |
mazgch | 18:06d5a702779c | 45 | \attention use with care and only a last resort. |
mazgch | 18:06d5a702779c | 46 | */ |
mazgch | 6:e11bf54dd344 | 47 | void mdmReset(void); |
mazgch | 18:06d5a702779c | 48 | |
mazgch | 18:06d5a702779c | 49 | /** Wakeup the Modem when in off mode. |
mazgch | 18:06d5a702779c | 50 | */ |
mazgch | 8:a356376db984 | 51 | void mdmWakeup(void); |
mazgch | 18:06d5a702779c | 52 | |
mazgch | 18:06d5a702779c | 53 | /** Some Modem can be commanded in sleep mode |
mazgch | 18:06d5a702779c | 54 | by setting the power pin low for a long period. |
mazgch | 18:06d5a702779c | 55 | */ |
mazgch | 8:a356376db984 | 56 | void mdmSleep(void); |
mazgch | 18:06d5a702779c | 57 | |
mazgch | 18:06d5a702779c | 58 | /** Enable the GPS Power supply |
mazgch | 18:06d5a702779c | 59 | \param enable true if supply should be truned on, false if off. |
mazgch | 18:06d5a702779c | 60 | */ |
mazgch | 7:e3eab86f1de9 | 61 | void gpsPower(bool enable); |
mazgch | 18:06d5a702779c | 62 | |
mazgch | 18:06d5a702779c | 63 | /** Reset the GPS |
mazgch | 18:06d5a702779c | 64 | \attention use with care and only a last resort. |
mazgch | 18:06d5a702779c | 65 | */ |
mazgch | 6:e11bf54dd344 | 66 | void gpsReset(void); |
mazgch | 6:e11bf54dd344 | 67 | |
mazgch | 6:e11bf54dd344 | 68 | private: |
mazgch | 7:e3eab86f1de9 | 69 | // modem pins |
mazgch | 18:06d5a702779c | 70 | DigitalOut mdmEn; //!< The modem LDO enable pin |
mazgch | 18:06d5a702779c | 71 | DigitalOut mdmRst; //!< The modem reset pin |
mazgch | 18:06d5a702779c | 72 | DigitalOut mdmPwrOn; //!< The power constrol pin of the modem |
mazgch | 18:06d5a702779c | 73 | DigitalOut mdmLvlOe; //!< The modem IO level shifter output enable (UART, GPIOs, active low) |
mazgch | 18:06d5a702779c | 74 | DigitalOut mdmILvlOe; //!< The modem I2C level shifter output enable (I2C, active high) |
mazgch | 18:06d5a702779c | 75 | DigitalOut mdmUsbDet; //!< The USB interface enable (active high) |
mazgch | 18:06d5a702779c | 76 | bool mdmIsEnabled; //!< Flag to remember if modem was enabled |
mazgch | 18:06d5a702779c | 77 | bool mdmUseUsb; //!< Flag to remember if USB pins were enabled |
mazgch | 7:e3eab86f1de9 | 78 | // gps pins |
mazgch | 18:06d5a702779c | 79 | DigitalOut gpsEn; //!< The GPS LDO enable pin |
mazgch | 18:06d5a702779c | 80 | DigitalOut gpsRst; //!< The GPS reset pin |
mazgch | 18:06d5a702779c | 81 | bool gpsIsEnabled; //!< Flag to remember if GPS was enabled |
mazgch | 6:e11bf54dd344 | 82 | }; |