BG96 Cat.M1 basic sample for WIZnet IoT Shield based on Mbed-OS Cellular APIs (SK telecom network in Korea)
Overview
This code could be access via Cat.M1(BG96 module) of SK telecom network in Korea. Need a WIZnet IoT Shield BG96 board and development board. The code forked Daniel_Lee's mbed-os-example-cellular-BG96 repository and added some features.
Tested with
- NUCLEO_L476RG
- DISCO_L475VG_IOT01A
- K64F
Example functionality
This example showcases the following device functionality:
1. Import the application into your desktop:
mbed import https://os.mbed.com/users/hkjung/code/mbed-os-example-cellular-BG96/ cd mbed-os-example-cellular-BG96
2. Compile and program:
mbed compile -t <toolchain> -m <TARGET_BOARD>
(supported toolchains : GCC_ARM / ARM / IAR)
3. Download binary to a target board
If need more information such as how to test, please look at https://os.mbed.com/teams/mbed-os-examples/code/mbed-os-example-cellular/.
Diff: main.cpp
- Revision:
- 38:8e4d8ba30f9f
- Parent:
- 36:6294a71c9e9e
--- a/main.cpp Thu Apr 25 08:19:34 2019 +0000 +++ b/main.cpp Mon Apr 29 00:37:57 2019 +0000 @@ -19,6 +19,15 @@ #include "UDPSocket.h" #include "CellularLog.h" +/* Pin configuraiton */ +// Cat.M1 +#define MBED_CONF_IOTSHIELD_CATM1_RESET D7 +#define MBED_CONF_IOTSHIELD_CATM1_PWRKEY D9 +// On-board sensors +#define MBED_CONF_IOTSHIELD_SENSOR_CDS A0 +#define MBED_CONF_IOTSHIELD_SENSOR_TEMP A1 + + #define UDP 0 #define TCP 1 @@ -35,6 +44,24 @@ static rtos::Mutex trace_mutex; +void iotshield_modem_init(void) +{ + DigitalOut _RESET_IOTSHIELD(MBED_CONF_IOTSHIELD_CATM1_RESET); + DigitalOut _PWRKEY_IOTSHIELD(MBED_CONF_IOTSHIELD_CATM1_PWRKEY); + + _RESET_IOTSHIELD = 1; + _PWRKEY_IOTSHIELD = 1; + wait_ms(300); + + _RESET_IOTSHIELD = 0; + _PWRKEY_IOTSHIELD = 0; + wait_ms(400); + + _RESET_IOTSHIELD = 1; + wait_ms(1000); +} + + #if MBED_CONF_MBED_TRACE_ENABLE static void trace_wait() { @@ -219,6 +246,9 @@ dot_thread.start(dot_event); #endif // #if MBED_CONF_MBED_TRACE_ENABLE + // Cat.M1 module init: Hardware reset and power on + iotshield_modem_init(); + // sim pin, apn, credentials and possible plmn are taken atuomtically from json when using get_default_instance() iface = NetworkInterface::get_default_instance(); MBED_ASSERT(iface);