S32K1XX调试--irda红外通信

本文介绍了在项目中使用MCU的irda功能进行红外通信的模拟实现过程。通过将uart时序转换为红外时序,发送时使用2400bps波特率,配置定时器产生2400Hz时序,并利用38KHz PWM波模拟载波。在接收端,直接利用uart的rx接收。遇到的问题包括tx默认输出状态干扰,建议设置为低电平。由于时间紧迫,未能深入研究相关细节。
摘要由CSDN通过智能技术生成

1、背景

  • 项目需要用到红外模块来通信,考虑到MCU自带irda功能,即确定使用irda通信来完成。
  • 但芯片自带irda功能,官网、手册以及各个论坛均未找到配置irda流程,项目又比较赶,于是决定模拟时序收发。

2、时序

2.1 红外发
  • 使用uart时序。原uart时序高电平,对应红外的时序为低电平;原uart时序低电平,对应红外产生38KHz的载波(根据红外型号,我这里是用到38KHz),载波这里我用到占用比为50%的方波。
2.2 红外收
  • 因为红外发送是使用uart时序,即接收也是uart时序。可以直接利用uart的rx来接收
3、 配置
  • uart时序波特率为2400bps。
  • 配置uart波特率2400,检验位停止位根据实际要求来配置。配置uart的接收模式
  • 配置一个2400Hz的定时器,用来产生模拟2400波特率的时序
  • 配置一个38KHz的PWM波,对应发送接口引脚,待有需要开启
  • 需要发送的时候,根据发送时序以及2400Hz的定时器,来控制是否产生38KHz的PWM波。
  • 例如定义一块缓存来存放发送数据,定时器时间到就判断缓存是否要发送数据,如果要发送数据,模拟uart时序,uart的起始位为0,即对应开启PWM波,等定时器又一次到来,判断数据位,数据位对应bit为0,产生PWM波;数据位对应bit为1,关闭PWM波,等待一个个数据位处理完毕,再处理停止位,停止位为1,即不产生PWM波。这样一个数据就发送完毕了
  • 调试过程中发现,如果tx的默认输出状态为高,会存在干扰。建议tx的默认状态为低,即不产生PWM波时的状态为低。

其他

  • 因为时间比较紧促,更深层的东西未了解。一些专业词汇描述难免有错,欢迎指正。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值