Skip to content

Commit d74055e

Browse files
committed
fixed analog pins definitions and pin initialization
1 parent a38d992 commit d74055e

File tree

1 file changed

+12
-22
lines changed

1 file changed

+12
-22
lines changed

sam/1.0.3/variants/geolink_opentracker/variant.cpp

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ extern const PinDescription g_APinDescription[]=
136136
{ PIOA, PIO_PA20B_PWML2, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), NO_ADC, NO_ADC, PWM_CH2, NOT_ON_TIMER }, // PWML2
137137

138138
// 8
139-
{ PIOB, PIO_PB17, ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 8 = S_INLEVEL
139+
{ PIOB, PIO_PB17, ID_PIOB, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 8 = S_INLEVEL
140140
{ PIOB, PIO_PB16, ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 9 = CAN_RS
141141
{ PIOB, PIO_PB18, ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 10 = C_OUT_1
142142
{ PIOB, PIO_PB19, ID_PIOB, PIO_OUTPUT_0, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 11 = C_OUT_2
@@ -176,8 +176,8 @@ extern const PinDescription g_APinDescription[]=
176176
{ PIOA, PIO_PA23X1_AD5, ID_PIOA, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_ANALOG, ADC2, ADC5, NOT_ON_PWM, NOT_ON_TIMER }, // AD2 = EXT_PA23
177177

178178
// 32/33 - CANRX0/CANTX0
179-
{ PIOA, PIO_PA1A_CANRX0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, ADC14, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // CANRX
180-
{ PIOA, PIO_PA0A_CANTX0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, ADC15, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // CANTX
179+
{ PIOA, PIO_PA1A_CANRX0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // CANRX
180+
{ PIOA, PIO_PA0A_CANTX0, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // CANTX
181181

182182
// 34/35/36 - SPI
183183
{ PIOA, PIO_PA25A_SPI0_MISO,ID_PIOA,PIO_PERIPH_A, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // MISO
@@ -188,8 +188,8 @@ extern const PinDescription g_APinDescription[]=
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

190190
// 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
191+
{ PIOA, PIO_PA18A_TWCK0, ID_PIOA, PIO_OUTPUT_1, 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_1, PIO_DEFAULT, PIN_ATTR_DIGITAL, NO_ADC, NO_ADC, NOT_ON_PWM, NOT_ON_TIMER }, // PIN 50 = C_IN2_PD
193193

194194
// 40 - End of standard pins -----
195195

@@ -216,7 +216,7 @@ extern const PinDescription g_APinDescription[]=
216216
{ 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
217217

218218
// 48 - DAC1 (alias)
219-
{ PIOB, PIO_PB16X1_DAC1, ID_PIOB, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_ANALOG, ADC13, DA1, NOT_ON_PWM, NOT_ON_TIMER }, // DAC1
219+
{ PIOB, PIO_PB16X1_DAC1, ID_PIOB, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_ANALOG, NO_ADC, DA1, NOT_ON_PWM, NOT_ON_TIMER }, // DAC1
220220

221221
// 49 - Analog (alias)
222222
{ PIOB, PIO_PB17X1_AD10, ID_PIOB, PIO_INPUT, PIO_DEFAULT, PIN_ATTR_ANALOG, ADC8, ADC10, NOT_ON_PWM, NOT_ON_TIMER }, // AD8 = S_INLEVEL
@@ -321,23 +321,14 @@ void init( void )
321321
// Initialize C library
322322
__libc_init_array();
323323

324-
// Disable pull-up on every pin
324+
// Initialize every pin
325325
for (unsigned i = 0; i < PINS_COUNT; i++)
326326
{
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-
}
327+
PIO_Configure(
328+
g_APinDescription[i].pPort,
329+
g_APinDescription[i].ulPinType,
330+
g_APinDescription[i].ulPin,
331+
g_APinDescription[i].ulPinConfiguration);
341332
}
342333

343334
// Enable parallel access on PIO output data registers
@@ -350,7 +341,6 @@ void init( void )
350341
g_APinDescription[PINS_UART].ulPinType,
351342
g_APinDescription[PINS_UART].ulPin,
352343
g_APinDescription[PINS_UART].ulPinConfiguration);
353-
digitalWrite(0, HIGH); // Enable pullup for RX0
354344
PIO_Configure(
355345
g_APinDescription[PINS_USART0].pPort,
356346
g_APinDescription[PINS_USART0].ulPinType,

0 commit comments

Comments
 (0)