avandalen / SAM15x15

SAM15x15 board / Arduino Zero package which describes all SAMD21G pins
https://www.avdweb.nl/arduino/samd21/samd21-variant
MIT License
6 stars 6 forks source link

Default SPI does not work because of pin MUX setting #1

Closed georgychen closed 4 years ago

georgychen commented 6 years ago

The package was installed as per http://www.avdweb.nl/arduino/samd21/sam-15x15-installation.html.

Default SPI does not work.

In "...user\AppData\Local\arduino15\packages\SAM15x15\hardware\samd\1.12.16\variants\arduino_zerovariant.cpp", under // SPI D22..D24 section, pin functions were set as PIO_TIMER: { PORTA, 12, PIO_TIMER, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH0, TCC2_CH0, EXTERNAL_INT_12 }, // p21 { PORTB, 10, PIO_TIMER, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH0, TC5_CH0, EXTERNAL_INT_10 }, // p19 { PORTB, 11, PIO_TIMER, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH1, TC5_CH1, EXTERNAL_INT_11 }, // p20

After changing the PIO_TIMER to PIO_SERCOM_ALT: { PORTA, 12, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH0, TCC2_CH0, EXTERNAL_INT_12 }, // p21 { PORTB, 10, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH0, TC5_CH0, EXTERNAL_INT_10 }, // p19 { PORTB, 11, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH1, TC5_CH1, EXTERNAL_INT_11 }, // p20

The default SPI works normally.

avandalen commented 6 years ago

Hi

Thank you very much for this help! i will change the package soon.

Albert

From: georgy Sent: Friday, December 22, 2017 4:03 AM To: avandalen/SAM15x15 Cc: Subscribed Subject: [avandalen/SAM15x15] Default SPI does not work because of pin MUX setting (#1)

The package was installed as per http://www.avdweb.nl/arduino/samd21/sam-15x15-installation.html.

Default SPI does not work.

In "...user\AppData\Local\arduino15\packages\SAM15x15\hardware\samd\1.12.16\variants\arduino_zerovariant.cpp", under // SPI D22..D24 section, pin functions were set as PIO_TIMER: { PORTA, 12, PIO_TIMER, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH0, TCC2_CH0, EXTERNAL_INT_12 }, // p21 { PORTB, 10, PIO_TIMER, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH0, TC5_CH0, EXTERNAL_INT_10 }, // p19 { PORTB, 11, PIO_TIMER, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH1, TC5_CH1, EXTERNAL_INT_11 }, // p20

After changing the PIO_TIMER to PIO_SERCOM_ALT: { PORTA, 12, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM2_CH0, TCC2_CH0, EXTERNAL_INT_12 }, // p21 { PORTB, 10, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH0, TC5_CH0, EXTERNAL_INT_10 }, // p19 { PORTB, 11, PIO_SERCOM_ALT, (PIN_ATTR_DIGITAL | PIN_ATTR_PWM | PIN_ATTR_TIMER), No_ADC_Channel, PWM5_CH1, TC5_CH1, EXTERNAL_INT_11 }, // p20

The default SPI works normally.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

avandalen commented 6 years ago

Thank you to fix that bug! I will update the SAM15x15 package soon.

boseji commented 4 years ago

Package updated and bug fixed in v1.8.6 core