add BG96 povermanagemet

pull/10952/head
Pekka Pesu 2019-05-10 10:37:22 +03:00 committed by Arto Kinnunen
parent 4c0c4f5f08
commit d8ab1bb87e
3 changed files with 69 additions and 16 deletions

View File

@ -78,27 +78,30 @@ void QUECTEL_BG96::set_ready_cb(Callback<void()> callback)
nsapi_error_t QUECTEL_BG96::hard_power_on()
{
DigitalOut ModemResetIn (MBED_CONF_QUECTEL_BG96_POWER);
printf("QUECTEL_BG96::hard_power_on\n");
DigitalOut ModemResetIn (MBED_CONF_QUECTEL_BG96_PWR);
wait_ms(250);
ModemResetIn = 0;
wait_ms(250);
ModemResetIn = 1;
wait_ms(500);
wait_ms(250);
return NSAPI_ERROR_OK;
}
nsapi_error_t QUECTEL_BG96::soft_power_on()
{
DigitalOut ModemPwrkey (MBED_CONF_QUECTEL_BG96_RESET);
printf("QUECTEL_BG96::soft_power_on\n");
// turn moden on
DigitalOut ModemPwrkey (MBED_CONF_QUECTEL_BG96_RST);
ModemPwrkey = 0;
wait_ms(100);
ModemPwrkey = 1;
wait_ms(500);
ModemPwrkey = 0;
wait_ms(500);
printf("wait for RDY\n");
// wait for RDY
_at->lock();
_at->set_at_timeout(60000);
_at->resp_start();
@ -106,21 +109,66 @@ printf("wait for RDY\n");
bool rdy = _at->consume_to_stop_tag();
_at->set_stop_tag(OK);
_at->unlock();
if (!rdy)
{
return NSAPI_ERROR_DEVICE_ERROR;
}
return NSAPI_ERROR_OK;
}
nsapi_error_t QUECTEL_BG96::hard_power_off()
{
DigitalOut ModemPwrkey (MBED_CONF_QUECTEL_BG96_POWER);
printf("QUECTEL_BG96::hard_power_off\n");
// turn moden off
DigitalOut ModemPwrkey (MBED_CONF_QUECTEL_BG96_PWR);
ModemPwrkey = 1;
wait_ms(250);
ModemPwrkey = 0;
return NSAPI_ERROR_OK;
}
nsapi_error_t QUECTEL_BG96::init()
{
int retry = 0;
_at->lock();
_at->flush();
_at->cmd_start("ATE0"); // echo off
_at->cmd_stop_read_resp();
_at->cmd_start("AT+CMEE=1"); // verbose responses
_at->cmd_stop_read_resp();
if (_at->get_last_error() != NSAPI_ERROR_OK)
{
do
{
_at->cmd_start("AT+CFUN=1"); // set full functionality
_at->cmd_stop_read_resp();
// CFUN executed ok
if (_at->get_last_error() != NSAPI_ERROR_OK)
{
// wait some time that modem gets ready for CFUN command, and try again
retry++;
_at->flush();
wait_ms(64);
}
else
{
// yes continue
break;
}
/* code */
} while ( (retry < 3) );
}
return _at->unlock_return_error();
}
#if MBED_CONF_QUECTEL_BG96_PROVIDE_DEFAULT
#include "UARTSerial.h"
CellularDevice *CellularDevice::get_default_instance()

View File

@ -43,6 +43,7 @@ protected: // AT_CellularDevice
virtual nsapi_error_t hard_power_on();
virtual nsapi_error_t hard_power_off();
virtual nsapi_error_t soft_power_on();
virtual nsapi_error_t init();
public:
void handle_urc(FileHandle *fh);

View File

@ -17,6 +17,18 @@
"help": "CTS pin for serial connection",
"value": null
},
"pwr": {
"help": "Power control pin",
"value": null
},
"rst": {
"help": "Reset control pin",
"value": null
},
"polarity": {
"help": "Pin polarity, 1 = Active high, 0 = Active low",
"value": null
},
"baudrate" : {
"help": "Serial connection baud rate",
"value": 115200
@ -24,14 +36,6 @@
"provide-default": {
"help": "Provide as default CellularDevice [true/false]",
"value": false
},
"power": {
"help": "Modem's power key.",
"value": null
},
"reset": {
"help": "Modem's reset key.",
"value": null
}
}
}