首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SPI的SERCOM引脚设置为SAMD21上主程序的对立面。

将SPI的SERCOM引脚设置为SAMD21上主程序的对立面。
EN

Stack Overflow用户
提问于 2020-10-01 14:59:18
回答 1查看 231关注 0票数 0

我想让我的SAMD21芯片成为SPI奴隶。

我有下列图钉:

  • PB10 as MOSI
  • PB11 as SCK
  • PA10 as SS
  • PA12 as MISO

这些引脚大多属于SERCOM4

但是,当我将引脚按以下方式设置时,引脚不能正常工作:

代码语言:javascript
复制
 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 (导航)板布局来编程芯片。

根据文件所述的图钉:

  • 2/
  • 1/WO TCC2 1/WO
  • 22
  • 2

MISO 12 SERCOM4 2/

  • 23 4( PB10 /EXTINT11 10*SERCOM4 4/PAD3 2 TC5/WO TC5 0/WO4

TC5 0/WO4 TC5 0/WO5 TC5 0/WO5

EN

回答 1

Stack Overflow用户

发布于 2022-11-15 20:11:00

谢谢你的问题。我刚看到你的帖子。我是你使用的存储库的作者。我将在此回复,供其他读者参考。

您的代码包含了一些问题。

  • 使用PORTA和PORTB定义PB10。对于PB,应使用PORTB。同样,对于PA,必须使用PORTA。使用不正确的PMUX的
  • 。如果您想使用PB10,您应该使用PMUX5而不是PMUX6,作为10/2 =5。对于PB11,您也使用PMUX5,作为11/2 = 5.5。PMUXE和PMUXO定义将选择偶数或奇数引脚。

为了更容易地使用不同的引脚,我发布了库的0.2.0版本。这将允许您使用任何SERCOM (SERCOM0到SERCOM5),并选择可用于该SERCOM的任何引脚。

请参阅存储库https://github.com/lenvm/SercomSPISlave上SercomSPISlave.h和https://github.com/lenvm/SercomSPISlave中的自述文件和代码注释,以进一步参考。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64158023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档