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:
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?

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 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