Board support library for C027

Dependents:   IoTWorkshopLCD IoTWorkshopBuzzer IoTWorkshopSensors C027_USSDTest ... more

Fork of C027 by u-blox

/media/uploads/ublox/c027_pinout_new.png

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?

UserRevisionLine numberNew 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 };