@@ -46,30 +46,57 @@ void onboard_modem_init()
46
46
gpio_init_inout (& gpio , RADIO_PWR , PIN_OUTPUT , PushPullNoPull , 1 );
47
47
gpio_init_inout (& gpio , BUF_EN , PIN_OUTPUT , OpenDrainNoPull , 0 );
48
48
gpio_init_inout (& gpio , MDMRST , PIN_OUTPUT , OpenDrainNoPull , 1 );
49
+ gpio_init_inout (& gpio , MDMPWRON , PIN_OUTPUT , OpenDrainNoPull , 1 );
49
50
}
50
51
51
52
void onboard_modem_deinit ()
52
53
{
53
54
gpio_t gpio ;
54
55
55
56
// Back into reset
56
- gpio_init_inout (& gpio , RADIO_PWR , PIN_OUTPUT , PushPullNoPull , 0 );
57
- gpio_init_inout (& gpio , BUF_EN , PIN_OUTPUT , OpenDrainNoPull , 1 );
58
57
gpio_init_inout (& gpio , MDMRST ,PIN_OUTPUT , OpenDrainNoPull , 0 );
58
+ gpio_init_inout (& gpio , BUF_EN , PIN_OUTPUT , OpenDrainNoPull , 1 );
59
+ gpio_init_inout (& gpio , RADIO_PWR , PIN_OUTPUT , PushPullNoPull , 0 );
59
60
}
60
61
62
+
63
+
64
+
61
65
void onboard_modem_power_up ()
62
66
{
63
67
#if defined(TARGET_UBLOX_C030_R410M )
64
68
/* keep the power line low for 1 seconds */
65
69
press_power_button (1000000 );
66
70
#else
67
71
/* keep the power line low for 50 microseconds */
68
- press_power_button (1000000 );
72
+ gpio_t gpio ;
73
+ gpio_init_in (& gpio , MON_1V8 );
74
+
75
+ if (gpio_is_connected (& gpio ) != 0 && gpio_read (& gpio ) != 0 ) {
76
+ unsigned int i = 0 ;
77
+ while (i < 5 )
78
+ {
79
+ press_power_button ( 2000000 );
80
+ wait_ms (1000 );
81
+ onboard_modem_deinit ();
82
+ wait_ms (1000 );
83
+ onboard_modem_init ();
84
+ wait_ms (250 );
85
+
86
+ if (gpio_is_connected (& gpio ) != 0 && gpio_read (& gpio ) == 0 )
87
+ {
88
+ break ;
89
+ }
90
+ i ++ ;
91
+ }
92
+ }
93
+
94
+ press_power_button ( 2000000 );
95
+
69
96
#endif
70
97
71
98
/* give modem a little time to respond */
72
- wait_ms (100 );
99
+ wait_ms (500 );
73
100
}
74
101
75
102
void onboard_modem_power_down ()
@@ -79,7 +106,7 @@ void onboard_modem_power_down()
79
106
press_power_button (1500000 );
80
107
#else
81
108
/* keep the power line low for 1 seconds */
82
- press_power_button (1500000 );
109
+ press_power_button (300000 );
83
110
#endif
84
111
}
85
112
0 commit comments