@@ -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