微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SAMD21上将SPI的SERCOM引脚设置为主机对面

如何解决在SAMD21上将SPI的SERCOM引脚设置为主机对面

我正试图将SAMD21芯片设为SPI从设备。

我有以下针脚:

  • PB10作为MOSI
  • PB11作为SCK
  • PA10为SS
  • PA12作为MISO

这些引脚大多数属于SERCOM4

但是,当我按如下所示设置它们时,它们不能正常工作:

 PORT->Group[PORTB].PINCFG[10].bit.PMUXEN = 0x1; //Enable Peripheral Multiplexing for SERCOM4 SPI PA12 Arduino PIN22
 PORT->Group[PORTA].PMUX[6].bit.PMUXE = 0x3; //SERCOM 4 is selected for peripheral use of this pad (0x3 selects peripheral function D: SERCOM-ALT)
 PORT->Group[PORTB].PINCFG[11].bit.PMUXEN = 0x1; //Enable Peripheral Multiplexing for SERCOM4 SPI PB09 Arduino PIN16
 PORT->Group[PORTB].PMUX[4].bit.PMUXO = 0x3; //SERCOM 4 is selected for peripheral use of this pad (0x3 selects peripheral function D: SERCOM-ALT)
 PORT->Group[PORTA].PINCFG[10].bit.PMUXEN = 0x1; //Enable Peripheral Multiplexing for SERCOM4 SPI PB10 Arduino PIN23
 PORT->Group[PORTB].PMUX[5].bit.PMUXE = 0x3; //SERCOM 4 is selected for peripheral use of this pad (0x3 selects peripheral function D: SERCOM-ALT)
 PORT->Group[PORTA].PINCFG[12].bit.PMUXEN = 0x1; //Enable Peripheral Multiplexing for SERCOM4 SPI PB11 Arduino PIN24
 PORT->Group[PORTB].PMUX[5].bit.PMUXO = 0x3; //SERCOM 4 is selected for peripheral use of this pad (0x3 selects peripheral function D: SERCOM-ALT)

我使用的是 https://github.com/lenvm/SercomSPISlave

我使用arduino IDE和SAMD对芯片进行编程:M0或M0 Pro(原始)板布局。

根据文档说明的针脚:

  • | 1 | 1
  • | 22 | 1 | PA12 | MISO | EIC / EXTINT [12] SERCOM2 / PAD [0] * SERCOM4 / PAD [0] TCC2 / WO [0] TCC0 / WO [6]
  • | 23 | 4 | PB10 | MOSI | EIC / EXTINT [10] * SERCOM4 / PAD [2] TC5 / WO [0] TCC0 / WO [4]
  • | 24 | 3 | PB11 | SCK | EIC / EXTINT [11] * SERCOM4 / PAD [3] TC5 / WO [1] TCC0 / WO [5]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。