Skip to content

Commit 3834b50

Browse files
committed
updated variant pin definitions for HW rev 2.4
1 parent d70ed52 commit 3834b50

File tree

2 files changed

+67
-32
lines changed

2 files changed

+67
-32
lines changed

1.0.3/variants/geolink_opentracker/variant.cpp

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -187,38 +187,42 @@ extern const PinDescription g_APinDescription[]=
187187
// 37 - SPI CS0
188188
{ PIOA, PIO_PA28A_SPI0_NPCS0,ID_PIOA,PIO_PERIPH_A,PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // NPCS0
189189

190-
// 38 - End of standard pins -----
190+
// 38
191+
{ PIOA, PIO_PA18A_TWCK0, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 49 = C_IN1_PD
192+
{ PIOA, PIO_PA19, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 50 = C_IN2_PD
191193

192-
// 38 .. 42 - "All pins" masks
194+
// 40 - End of standard pins -----
193195

194-
// 38 - TWI1 all pins
196+
// 40 .. 44 - "All pins" masks
197+
198+
// 40 - TWI1 all pins
195199
{ PIOB, PIO_PB12A_TWD1|PIO_PB13A_TWCK1, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_COMBO), NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER },
196-
// 39 - UART (Serial) all pins
200+
// 41 - UART (Serial) all pins
197201
{ PIOA, PIO_PA8A_URXD|PIO_PA9A_UTXD, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_COMBO), NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER },
198-
// 40 - USART0 (Serial1) all pins
202+
// 42 - USART0 (Serial1) all pins
199203
{ PIOA, PIO_PA11A_TXD0|PIO_PA10A_RXD0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_COMBO), NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER },
200-
// 41 - USART1 (Serial2) all pins
204+
// 43 - USART1 (Serial2) all pins
201205
{ PIOA, PIO_PA13A_TXD1|PIO_PA12A_RXD1, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_COMBO), NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER },
202-
// 42 - USART3 (Serial3) all pins
206+
// 44 - USART3 (Serial3) all pins
203207
{ PIOB, PIO_PB20A_TXD2|PIO_PB21A_RXD2, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_COMBO), NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER },
204208

205-
// 43 - USB
209+
// 45 - USB
206210
{ PIOB, PIO_PB11A_UOTGID|PIO_PB10A_UOTGVBOF, ID_PIOB, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL,NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // ID - VBOF
207211

208-
// 44 - SPI CS2 (alias)
212+
// 46 - SPI CS2 (alias)
209213
{ PIOB, PIO_PB21B_SPI0_NPCS2, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // NPCS2
210214

211-
// 45 - SPI CS1 (alias)
215+
// 47 - SPI CS1 (alias)
212216
{ PIOB, PIO_PB20B_SPI0_NPCS1, ID_PIOB, PIO_PERIPH_B, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // NPCS1
213217

214-
// 46 - DAC1 (alias)
218+
// 48 - DAC1 (alias)
215219
{ PIOB, PIO_PB16X1_DAC1, ID_PIOB, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_ANALOG, ADC13, DA1, NOT_ON_PWM, NOT_ON_TIMER }, // DAC1
216220

217-
// 47 - Analog (alias)
221+
// 49 - Analog (alias)
218222
{ PIOB, PIO_PB17X1_AD10, ID_PIOB, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_ANALOG, ADC8, ADC10, NOT_ON_PWM, NOT_ON_TIMER }, // AD8 = S_INLEVEL
219223

220-
// 48 .. - "All CAN pins" masks
221-
// 48 - CAN0 all pins
224+
// 50 .. - "All CAN pins" masks
225+
// 50 - CAN0 all pins
222226
{ PIOA, PIO_PA1A_CANRX0|PIO_PA0A_CANTX0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_COMBO), NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER },
223227

224228
// END
@@ -319,7 +323,22 @@ void init( void )
319323

320324
// Disable pull-up on every pin
321325
for (unsigned i = 0; i < PINS_COUNT; i++)
322-
digitalWrite(i, LOW);
326+
{
327+
switch (i)
328+
{
329+
case -1: //fake
330+
#ifdef PIN_C_IN1_PD
331+
case PIN_C_IN1_PD: // 36V input range, for compatibility
332+
#endif
333+
#ifdef PIN_C_IN2_PD
334+
case PIN_C_IN2_PD: // 36V input range, for compatibility
335+
#endif
336+
digitalWrite(i, HIGH);
337+
break;
338+
default:
339+
digitalWrite(i, LOW);
340+
}
341+
}
323342

324343
// Enable parallel access on PIO output data registers
325344
PIOA->PIO_OWER = 0xFFFFFFFF;

1.0.3/variants/geolink_opentracker/variant.h

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,14 @@
1515
License along with this library; if not, write to the Free Software
1616
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1717
*/
18+
#pragma once
19+
20+
#ifndef _VARIANT_OPENTRACKER_
21+
#define _VARIANT_OPENTRACKER_
1822

1923
#ifndef _VARIANT_ARDUINO_DUE_X_
20-
#define _VARIANT_ARDUINO_DUE_X_
24+
#define _VARIANT_ARDUINO_DUE_X_ // for compatibility (required?)
25+
#endif
2126

2227
/*----------------------------------------------------------------------------
2328
* Definitions
@@ -55,8 +60,8 @@ extern "C"{
5560
*----------------------------------------------------------------------------*/
5661

5762
// Number of pins defined in PinDescription array
58-
#define PINS_COUNT (38u)
59-
#define NUM_DIGITAL_PINS (28u)
63+
#define PINS_COUNT (40u)
64+
#define NUM_DIGITAL_PINS (40u)
6065
#define NUM_ANALOG_INPUTS (5u)
6166

6267
#define digitalPinToPort(P) ( g_APinDescription[P].pPort )
@@ -86,8 +91,8 @@ extern "C"{
8691
#define SPI_INTERFACE_ID ID_SPI0
8792
#define SPI_CHANNELS_NUM 3
8893
#define PIN_SPI_SS0 (37u)
89-
#define PIN_SPI_SS1 (45u)
90-
#define PIN_SPI_SS2 (44u)
94+
#define PIN_SPI_SS1 (47u)
95+
#define PIN_SPI_SS2 (46u)
9196
#define PIN_SPI_MOSI (35u)
9297
#define PIN_SPI_MISO (34u)
9398
#define PIN_SPI_SCK (36u)
@@ -126,18 +131,18 @@ static const uint8_t SCK = PIN_SPI_SCK;
126131
* UART/USART Interfaces
127132
*/
128133
// Serial
129-
#define PINS_UART (39u)
134+
#define PINS_UART (41u)
130135
// Serial1
131-
#define PINS_USART0 (40u)
136+
#define PINS_USART0 (42u)
132137
// Serial2
133-
#define PINS_USART1 (41u)
138+
#define PINS_USART1 (43u)
134139
// Serial3
135-
#define PINS_USART3 (42u)
140+
#define PINS_USART3 (44u)
136141

137142
/*
138143
* USB Interfaces
139144
*/
140-
#define PINS_USB (43u)
145+
#define PINS_USB (45u)
141146

142147
/*
143148
* Analog pins
@@ -146,14 +151,14 @@ static const uint8_t A2 = 31;
146151
static const uint8_t A3 = 30;
147152
static const uint8_t A5 = 28;
148153
static const uint8_t A6 = 29;
149-
static const uint8_t A8 = 47;
150-
static const uint8_t DAC1 = 46;
154+
static const uint8_t A8 = 49;
155+
static const uint8_t DAC1 = 48;
151156
static const uint8_t CANRX = 32;
152157
static const uint8_t CANTX = 33;
153158
#define ADC_RESOLUTION 12
154159

155160
// CAN0
156-
#define PINS_CAN0 (48u)
161+
#define PINS_CAN0 (50u)
157162
// no enable pin (due_can compatibility)
158163
#define CAN0_EN 255
159164

@@ -196,7 +201,6 @@ static const uint8_t CANTX = 33;
196201
#define PIN_EXT_TX 1
197202
#define PIN_S_PPS_GPS 2
198203
#define PIN_S_DETECT 3
199-
#define PIN_C_REBOOT 4
200204
#define PIN_C_KILL_GSM 5
201205
#define PIN_EXT_PA21 6
202206
#define PIN_EXT_PA20 7
@@ -214,9 +218,21 @@ static const uint8_t CANTX = 33;
214218
#define PIN_RX0_GPS 19
215219
#define PIN_EXT_SDA 20
216220
#define PIN_EXT_SCL 21
217-
#define PIN_RING_GSM 22
218221
#define PIN_WAKE_GSM 23
222+
#if !defined(OPENTRACKER_HW_REV) || (OPENTRACKER_HW_REV < 0x0240)
223+
// HW Revision 2.3 (and earlier)
224+
#define PIN_C_REBOOT 4
225+
#define PIN_RING_GSM 22
219226
#define PIN_GSM_VDD_EXT 24
227+
#else
228+
// HW Revision 2.4
229+
// dropped "REBOOT" pin and "GSM VDD" (unused)
230+
// moved "RING" to wakeup capable pins
231+
// added "INx_PD" pull-down enable pins, to change analog input range
232+
#define PIN_RING_GSM 24
233+
#define PIN_C_IN1_PD 38
234+
#define PIN_C_IN2_PD 39
235+
#endif
220236
#define PIN_C_PWR_GSM 25
221237
#define PIN_RESET_GPS 26
222238
#define PIN_STANDBY_GPS 27
@@ -232,7 +248,7 @@ static const uint8_t CANTX = 33;
232248
#define PIN_EXT_NS0 37
233249

234250
#define ANALOG_VREF 3.4f
235-
#define AIN_S_INLEVEL 47
251+
#define AIN_S_INLEVEL 49
236252
#define AIN_EXT_IN1 28
237253
#define AIN_EXT_IN2 29
238254
#define AIN_EXT_PA22 30
@@ -276,5 +292,5 @@ extern USARTClass Serial3;
276292
#define SERIAL_PORT_HARDWARE2 Serial2
277293
#define SERIAL_PORT_HARDWARE3 Serial3
278294

279-
#endif /* _VARIANT_ARDUINO_DUE_X_ */
295+
#endif /* _VARIANT_OPENTRACKER_ */
280296

0 commit comments

Comments
 (0)