匿名
未登录
登录
丢石头百科
搜索
查看“STM8 beCAN工作模式”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
STM8 beCAN工作模式
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<table border="0" cellpadding="0" cellspacing="0" style="color: rgb(72, 61, 139); font-family: Arial, 新宋体, 微软雅黑; font-size: 12px;" width="780"><tbody><tr><th class="type_483D8B" scope="col" style="line-height: 20px; font-weight: normal; border-top-style: none;" valign="top"> 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个连续的隐性位。 <strong>初始化模式</strong> 软件初始化应该在STM8S硬件处于初始化模式时进行。设置CAN_MCR寄存器的INRQ位为'1',请求beCAN进入初始化模式,然后等待硬件对CAN_MSR寄存器的INAK位置'1'来进行确认。 可以通过清除CAN_MCR寄存器的INRQ位,来请求beCAN退出初始化模式,一旦硬件对CAN_MSR寄存器的INAK位清'0',beCAN就退出了初始化模式。不管怎样,退出初始化模式时性RX引脚必须处于隐状态。 当beCAN处于初始化模式时,禁止CANz总线上报文的接收和发送,并且CANTX引脚输出隐性位(高电平)。进入初始化模式,不会改变寄存器的配置。 要初始化beCAN控制器,软件至少要对位时间特性寄存器和过滤器组进行设置。如果没有使用过滤器组,建议保持其处于非激活状态(使CAN_FCRx寄存器中相应的FACT位为0) <strong>正常模式</strong> 在初始化完成后,软件必须请求STM8硬件进入正常模式,以便正常接收和发送报文。软件可以通过对CAN_MCR寄存器的INRQ位清'0',来请求从初始化模式进入正常模式,然后要等待硬件对CAN_MSR寄存器的INAK位置'1'的确认。再与CAN总线取得同步,即在CANRX引脚上监测到11个连续的隐性位(等效于总线空闲)后,beCAN才能正常接收和发送报文。 过滤器初值的设置不需要在初始化模式中完成,但必须在过滤器处于非激活状态下完成(相应的FACT位为0)。但是过滤器的位宽和模式的设置,则必须在初始化模式中进行。 <strong>睡眠模式(低功耗)</strong> 为了降低功耗,beCAN可工作在低功耗模式---睡眠模式。根据软件的使用需求,通过对CAN_MCR寄存器的SLEEP位置'1',以进入睡眠模式。在睡眠模式下,beCAN的时钟停止了,但软件仍然可以访问邮箱寄存器。 注:当STM8_beCAN处于睡眠模式时,软件通过对CAN_MCR寄存器的INRQ位置'1'来请求进入初始化模式,必须同时将SLEEP位清'0',才能进入初始化模式。可以通过两种方式CAN将be唤醒(退出睡眠模式):由软件清除SLEEP位,或者当硬件检测到CAN总线的活动时。 如果CAN_MCR寄存器的AWUM位为'1',一旦检测到CAN总线的活动,硬件就自动对SLEEP位清'0'来唤醒beCAN。如果CAN_MCR寄存器的AWUM位为'0',当唤醒中断发生时,软件必须将SLEEP位清'0'以退出睡眠状态。 注:如果唤醒中断被使能(CAN_IER寄存器的WKUIE位为'1'),那么一旦检测到CAN总线活动就会产生唤醒中断,而不管硬件是否会自动唤醒beCAN。 当SLEEP位被清'0'后,睡眠模式的退出必须与CAN总线同步,请参考图128:beCAN工作模式。不管怎样,在退出初始化模式时RX引脚必须处于隐性状态。当硬件对SLAK就确位清'0'时,认了睡眠模式的退出。 [[File:STM8_P318_2.jpg]] (图128:STM8_beCAN工作模式 ) <strong>时间触发通讯模式</strong> 在该模式下,CAN的内部硬件计数器被激活,用于产生(Rx和Tx邮箱)时间戳,分别存储在CAN_MTSRH寄存器和CAN_MTSRL寄存器中,内部计数器在接收和发送的帧起始位的采样点位置被捕捉,生成时间戳。 TGT位(CAN_MDLCR寄存器中发送时间戳位)能将CAN_MTSRH寄存器和CAN_MTSRL寄存器里的内容以报文的最后两个字节自动发送出去(请参考TTCAN的规范ISO 11898-4)。在这种情况下,TTCM位(CAN_MCR寄存器中时间触发通讯模式位)必须置位以使能时间触发通讯机制。</th></tr></tbody></table>
返回至
STM8 beCAN工作模式
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志