cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 182|回复: 2

HP39gs红外对管模拟成普通遥控器使用

[复制链接]
发表于 2023-9-3 09:45:35 | 显示全部楼层 |阅读模式
本帖最后由 Creeper 于 2023-9-3 09:47 编辑

P0(X_[PEMXD4[8X(~JG__WH.png
39gs的红外对管除了TX和RX两根信号线还有一根额外的控制信号线,该对管的型号未知,尝试翻查其他类似的红外对管文档简单研究下,
找到一个类似的红外对管(RPM871)原理图:

$%5R84DF0LC}6C1MMW34.png
这个控制引脚应该就是用来控制对管关闭和启动的信号(高电平关闭),要想在39gs上单独驱动这个红外对管,需要寻找到这三根信号线对应的IO口,然后使用hpgcc对IO口所在的地址进行相关操作,对于TX和RX两个IO很容易找到,板子也标明了是接在SoC的UART2脚上,查询对应的Datasheet就可以确定,主要是这根控制脚。
这里用JTAG扫描的方法来确定这根GPIO的地址:39gs本身支持红外收发文件的通信,只要接上JTAG后,在执行文件发送前后分别扫描一下全部IO口的寄存器,反复几次后大概就能确定具体是那根信号线:
s1.png
机上启动文件红外发送后,GPD2口的输出从高电平跳到了低电平,发送接收或取消发送后又跳回高电平,大概就可以确定这个IO口就是控制红外对管关闭和开启的IO口。
找齐了全部IO口后主要的问题就解决了,接下来研究如何使用该红外对管模拟普通的遥控器,既然它能接收和发射,就可以整成一个学习遥控器。
但是对于一遍的遥控器来说,是需要38KHz的载波信号来进行调制的,39gs上的红外对管无调制解调功能,故要去识别模拟成一个普通的遥控器,需要在软件上完成38KHz的解调和调制(或者调用soc硬件定时器,但是hpgcc上还是算了..)。
38KHz的软件调制和解调对于39gs的cpu性能来说还算绰绰有余,测试72MHz下,使用hpgcc不开启优化,死循环计数到9的倍数时翻转IO口,输出的频率恰好是38KHz。
s2.png
具备以上条件后,简单搓下hpgcc代码就可以实现录制和重放功能,源码放在GitHub仓库:https://github.com/Repeerc/hp39gs_ir_remote
编译好的aplet放在附件(或github下载)。

ALPET安装说明:和普通hpgcc出来的程序一样,用连接套件安装程序本体(REMOTE00.000)和运行库(LIB275L.000)
除此之外还需将IRDATA00.000传入计算器的NOTEPAD中,该文件是用于给程序保存录制的红外编码信号使用

目前程序设置了4个存储插槽(SLOT 0 1 2 3),可以录制4组红外编码信号,每组信号最长录制511个编码后的采样。

另外由于是软件实现的红外调制,在CPU超频的情况下可能影响到载波调制频率以及重放采样的时长,可能会导致无法使用。


进入主界面后显示如下,第一次启动时4个存储槽记录的采样数量应该都为0,按数字键0到3切换存储槽(如果已录好样本,切换的同时会使用红外发送该样本),
modulating cycle为载波信号的调制周期,值越小调制频率越高,默认的9对应调制频率应为38KHz:
0.png
按下[F1]键发射该存储插槽的样本,按[F2]进入录制模式:
出现该界面时红外接收管已进入录制状态,此时用外部的遥控器靠近计算器的红外窗按下按钮发射后,程序会进行录制,录制过程中不会有提示。
2.png
外部遥控器发送完成后按下[ON]键结束录制,此时会显示录制的样本数,按[Enter]保存,[ON]取消:
4.png
若录制样本数过多超出511个样本会报错:
3.png

录制正常回到主界面后会显示录制的样本数,此时按下对于存储槽按键程序会将存储的样本重放。

5.png


还有个问题是是39gs的红外发射功率很小,基本上得靠近接收设备才会有反应,除非改换大号的发射管可能才有点实用价值(


39gs_ir_remote_aplet.zip (18.56 KB, 下载次数: 2)


发表于 2023-9-3 10:50:38 来自手机 | 显示全部楼层
高手
发表于 2023-9-3 10:51:18 来自手机 | 显示全部楼层
手上39gs已经刷成了40gs,没了红外功能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2023-9-27 19:32 , Processed in 0.064445 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表