![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
A simple project for sending button input up to AT&T Flow
Dependencies: FXOS8700CQ MODSERIAL mbed
For instructions on using this program, see the AT&T Starter Kit tutorial on it.
Diff: main.cpp
- Revision:
- 17:38a8cc0c6ba5
- Parent:
- 16:17c5916f2d12
- Child:
- 18:b08471eb1d1c
--- a/main.cpp Wed Jul 13 06:10:58 2016 +0000 +++ b/main.cpp Wed Jul 13 15:48:37 2016 +0000 @@ -135,51 +135,39 @@ } int mdm_init(void) { - // disable signal level translator (necessary - // for the modem to boot properly) - shield_3v3_1v8_sig_trans_ena = 0; - // Hard reset the modem (doesn't go through // the signal level translator) - mdm_reset = 1; - - // wait a moment for the modem to react - wait_ms(10); - - // Let modem boot mdm_reset = 0; - - // wait a moment for the modem to react + + // disable signal level translator (necessary + // for the modem to boot properly). All signals + // except mdm_reset go through the level translator + // and have internal pull-up/down in the module. While + // the level translator is disabled, these pins will + // be in the correct state. + shield_3v3_1v8_sig_trans_ena = 0; + + // While the level translator is disabled and ouptut pins + // are tristated, make sure the inputs are in the same state + // as the WNC Module pins so that when the level translator is + // enabled, there are no differences. + mdm_uart2_rx_boot_mode_sel = 1; // UART2_RX should be high + mdm_power_on = 0; // powr_on should be low + mdm_wakeup_in = 1; // wake-up should be high + mdm_uart1_cts = 0; // indicate that it is ok to send + + // Now, wait for the WNC Module to perform its initial boot correctly wait(1.0); - - // power modem on //off - mdm_power_on = 0; //1; - - // insure modem boots into normal operating mode - // and does not go to sleep when powered on - mdm_uart2_rx_boot_mode_sel = 1; - mdm_wakeup_in = 1; + + // The WNC module initializes comms at 115200 8N1 so set it up + mdm.baud(115200); - // initialze comm with the modem - mdm.baud(115200); - // clear out potential garbage - while (mdm.readable()) - mdm.getc(); + //Now, enable the level translator, the input pins should now be the + //same as how the M14A module is driving them with internal pull ups/downs. + //When enabled, there will be no changes in these 4 pins... + shield_3v3_1v8_sig_trans_ena = 1; - mdm_uart1_cts = 0; - - // wait a moment for the modem to react to signal - // conditions while the level translator is disabled - // (sorry, don't have enough information to know - // what exactly the modem is doing with the current - // pin settings) - wait(1.0); - - // enable the signal level translator to start - // modem reset process (modem will be powered down) - shield_3v3_1v8_sig_trans_ena = 1; - - // Give the modem 60 secons to start responding by + // Now, give the modem 60 secons to start responding by // sending simple 'AT' commands to modem once per second. Timer timer; timer.start();