|
| 1 | + |
| 2 | +#include "gpio_api.h" |
| 3 | +#include "wait_api.h" |
| 4 | + |
| 5 | + // called before main |
| 6 | +void mbed_main() |
| 7 | +{ |
| 8 | + gpio_t modemEn, modemRst, modemPwrOn, modemLvlOe, modemILvlOe, modemUsbDet; |
| 9 | + gpio_t gpsEn, gpsRst, led, modemRts; |
| 10 | + |
| 11 | + gpio_init(&modemEn, MDMEN, PIN_OUTPUT); |
| 12 | + gpio_init(&modemRst, MDMRST, PIN_OUTPUT); |
| 13 | + gpio_init(&modemPwrOn, MDMPWRON, PIN_OUTPUT); |
| 14 | + gpio_init(&modemLvlOe, MDMLVLOE, PIN_OUTPUT); |
| 15 | + gpio_init(&modemILvlOe, MDMILVLOE, PIN_OUTPUT); |
| 16 | + gpio_init(&modemUsbDet, MDMUSBDET, PIN_OUTPUT); |
| 17 | + gpio_init(&gpsEn, GPSEN, PIN_OUTPUT); |
| 18 | + gpio_init(&gpsRst, GPSRST, PIN_OUTPUT); |
| 19 | + gpio_init(&led, LED, PIN_OUTPUT); |
| 20 | + gpio_init(&modemRts, MDMRTS, PIN_OUTPUT); |
| 21 | + |
| 22 | + gpio_write(&led, 0); // LED1: 0=off |
| 23 | + gpio_write(&modemRts, 0); // RTS: 0=ready to send |
| 24 | + // we start with the gps disabled |
| 25 | + gpio_write(&gpsEn, 0); // LDOEN: 1=on,0=off |
| 26 | + gpio_write(&gpsRst, 0); // RESET: 0=reset,1=operating |
| 27 | + // we start with the modem disabled |
| 28 | + gpio_write(&modemLvlOe, 1); // LVLEN: 1=disabled (uart/gpio) |
| 29 | + gpio_write(&modemILvlOe, 0); // ILVLEN: 0=disabled (i2c) |
| 30 | + gpio_write(&modemUsbDet, 0); // USBDET: 0=disabled |
| 31 | + gpio_write(&modemPwrOn, 1); // PWRON: 1=idle, 0=action |
| 32 | + gpio_write(&modemEn, 0); // LDOEN: 1=on, 0=off |
| 33 | + gpio_write(&modemRst, 0); // RESET: 0=reset, 1=operating |
| 34 | + |
| 35 | + wait_ms(50); // when USB cable is inserted the interface chip issues |
| 36 | + // multiple resets to the target CPU We wait here for a short period to |
| 37 | + // prevent those resets from propagating to the modem and other |
| 38 | + // components. |
| 39 | +} |
0 commit comments