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