Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed FXOS8700CQ
Revision 17:38a8cc0c6ba5, committed 2016-07-13
- Comitter:
- JMF
- Date:
- Wed Jul 13 15:48:37 2016 +0000
- Parent:
- 16:17c5916f2d12
- Child:
- 18:b08471eb1d1c
- Commit message:
- Updated power-up sequence per WNC.
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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();

