以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!
STM8 beCAN工作模式 beCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在硬件复位后,beCAN工作在睡眠模式以减少功耗。软件通过对CAN_MCR寄存器的INRQ或SLEEP置'1',可以请求beCAN进入初始化或睡眠模式。一旦进入了初始化或睡眠模式,beCAN就对CAN_MSR寄存器的INAK或SLAK位置'1'来进行确认。当INAK和SLAK位都为'0'时,beCAN就处于正常模式。在进入正常模式前,beCAN必须跟CAN总线取得同步;为取得同步,beCAN要等待直到CAN总线处于空闲状态,即在CANRX引脚上监测到11个连续的隐性位。 初始化模式 软件初始化应该在STM8S硬件处于初始化模式时进行。设置CAN_MCR寄存器的INRQ位为'1',请求beCAN进入初始化模式,然后等待硬件对CAN_MSR寄存器的INAK位置'1'来进行确认。 可以通过清除CAN_MCR寄存器的INRQ位,来请求beCAN退出初始化模式,一旦硬件对CAN_MSR寄存器的INAK位清'0',beCAN就退出了初始化模式。不管怎样,退出初始化模式时性RX引脚必须处于隐状态。 当beCAN处于初始化模式时,禁止CANz总线上报文的接收和发送,并且CANTX引脚输出隐性位(高电平)。进入初始化模式,不会改变寄存器的配置。 正常模式 过滤器初值的设置不需要在初始化模式中完成,但必须在过滤器处于非激活状态下完成(相应的FACT位为0)。但是过滤器的位宽和模式的设置,则必须在初始化模式中进行。 睡眠模式(低功耗) 为了降低功耗,beCAN可工作在低功耗模式---睡眠模式。根据软件的使用需求,通过对CAN_MCR寄存器的SLEEP位置'1',以进入睡眠模式。在睡眠模式下,beCAN的时钟停止了,但软件仍然可以访问邮箱寄存器。 注:当STM8_beCAN处于睡眠模式时,软件通过对CAN_MCR寄存器的INRQ位置'1'来请求进入初始化模式,必须同时将SLEEP位清'0',才能进入初始化模式。可以通过两种方式CAN将be唤醒(退出睡眠模式):由软件清除SLEEP位,或者当硬件检测到CAN总线的活动时。 注:如果唤醒中断被使能(CAN_IER寄存器的WKUIE位为'1'),那么一旦检测到CAN总线活动就会产生唤醒中断,而不管硬件是否会自动唤醒beCAN。
时间触发通讯模式 TGT位(CAN_MDLCR寄存器中发送时间戳位)能将CAN_MTSRH寄存器和CAN_MTSRL寄存器里的内容以报文的最后两个字节自动发送出去(请参考TTCAN的规范ISO 11898-4)。在这种情况下,TTCM位(CAN_MCR寄存器中时间触发通讯模式位)必须置位以使能时间触发通讯机制。 |
---|
STM8 beCAN工作模式
——