RA2L1(80pin)添加5路UART,1路SPI,2路IIC,会出现报错Error:Requires an interrupt channel in group 0 or 1

客户在实际应用中会增加不同的中断功能,会出现相同的问题,该如何解决,谢谢。

  • 您好!请问5路UART、1路SPI、2路IIC,引脚可以配置成功吗?

  • 您好!请问5路UART、1路SPI、2路IIC,引脚可以配置成功吗?

  • 可以的,引脚不冲突,就是提示上面的错误

  • 是为什么呢?是IDE的问题?还是软件的问题?还是芯片的问题?怎么解决呢?谢谢

  • 这是FSP的问题,我们将这个问题反馈给工具部门的同事了,后续会修改。

    目前的做法,客户可以自行修改中断向量表,我试了一下,是可以实现的,具体修改方法请参考附件文档和例程。

  • 好的,谢谢。

  • 好的,感谢。

  • 请问这个问题是只在RA上有,还是说在所有的系列上都会,比如我使用Rz的code generator 会有这个问题吗?

  • Hi Thomas,

    您好,不好意思讓您久等了。
    首先,這不是IDE的問題,也不算是芯片的問題,純粹是RA2L1 IELSRn 配置上的問題

    IELSRn register 負責配置每一個 IRQ channel (0-31, RA2上限32組) 的input source 已被NVIC所使用

    而針對您在Connectivity的使用,以MCU引腳的觀點是可以實現的不會有衝突的腳位,但在NVIC IRQ input source 的配置會產生衝突

    因為產生衝突導致,IIC0_RXI (or IIC1_RXI) 和 IIC0_TXI (or IIC1_TXI) 無法被順利配置到 "對應的IELSRn",而產生IDE提示給您的錯誤 (因此IDE扮演的角色是預先告知您有兩個周邊中斷並未實際被設定到NVIC IRQ input source,所以即使您忽略IDE的錯誤提示,直接運行就會發生TX/RX沒有產生需要的中斷觸發)

    而為什麼會產生衝突了,詳細解釋如下
    (以下根據RA2L1使用手冊12.3.3 ICU input link selection table的定義進行中斷配置的討論,實際上FSP Configuration在gen code的時候幫我們省了這個配置的功夫)

    以 IIC1_RXI 事件來看,支援此事件的IRQ channel 為 0/8/16/24 (即 IELSR0/8/16/24),只有這四個channel可以配置

    以 IIC0_RXI 事件來看,支援此事件的IRQ channel 為 0/8/16/24 和 4/12/20/28 (即 IELSR0/8/16/24 and IELSR4/12/20/28),有八個channel可以配置,
    但其中四個channel(即 IELSR0/8/16/24)跟支援 IIC1_RXI的一樣,且IIC1_TEI(Transmit end)事件使用IRQ channel 為 4/12/20/28(即 IELSR4/12/20/28)

    而其他interface的interrupt source也會用到這8個channel的如下

    SCI0_RXI,可配置的IRQ channel 為 0/8/16/24 和 4/12/20/28

    SCI1_RXI,可配置的IRQ channel 為 0/8/16/24

    SCI2_RXI,可配置的IRQ channel 為 4/12/20/28

    SCI3_RXI,可配置的IRQ channel 為 0/8/16/24

    SCI9_RXI,可配置的IRQ channel 為 4/12/20/28

    SPI0_RXI,可配置的IRQ channel 為 0/8/16/24 和 4/12/20/28

    總共有9個中斷事件(IIC0_RXI, IIC1_RXI, IIC1_TEI, SCI0_RXI, SCI1_RXI, SCI2_RXI, SCI3_RXI, SCI9_RXI, SPI0_RXI)要配置但只有8個channel可供配置,所以FSP Configurator 一定產生不出適合的組合,而導致您看到的問題,但在強調一次"此非FSP Configuration的問題"
    若你不透過FSP Configuration 來配置Connectivity interface, ex: IIC1,並自行對NVIC IRQ input source 進行配置,就會輕易發現此IRQ Channel 不夠使用的問題

    回歸到問題的主因,還是得從暫存器配置上的限制和您使用的需求找一個平衡點,若有些接口在使用情境下不會同時存在,也許可以在接口初始化前動態做中斷配置

    BR,

    CP

  • FSP只是面向RA族的产品的,不涉及RZ族产品。