数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 11995|回复: 72

[另类] 论坛跟风买的POS机的另类玩法。。。打造最强Luat开发板!

    [复制链接]
发表于 2022-7-13 23:04:04 | 显示全部楼层 |阅读模式
前段时间论坛有人发帖说有5.1元的彩屏POS卖。于是也跟风买了个,但是实际到手的和拆机视频的不一样,到手的缩水很多,特别是屏幕比较小只有1.8寸,一般的彩屏POS机屏幕有2.4寸(320*240)。这个分辨率很渣也只有160*128,屏幕显示颗粒感很强。
https://www.mydigit.cn/forum.php ... ;page=1#pid12663654
既然已经买了,就折腾下吧,搜索发现其主控MH1903S与合宙的Air105是同一款芯片,既然MH1903S不能重新烧录程序(应该是出厂是封了JTAG端口不能再次烧录,这次没有试过读写啊,直接替换了。以前有试过MH1902的POS机Jtag识别不了),那我重新买个Air105芯片焊上总可以吧。网上Air105这个芯片可是有全套的资料,而且支持Luat脚本语言。
合宙也挺给力,芯片8.8元一片包邮。随手买了一片。

下图已经是更换了主控芯片后拍摄的,原始开机画面等没有留念。
更换了芯片后跑了电路图,测试了LCD,键盘,蜂鸣器,触摸屏,摄像头等接口IO管脚。
随即用Luat脚本语言的DEMO写了个显示图片,触摸屏,蜂鸣器,按键等驱动都没有问题。这个难道不比合宙卖断货的19.9元的小开发板还香吗?
就是摄像头至今没有调通,不知道摄像头型号,改装之前也没有用逻辑分析仪测量信号。大意了。请知道的大侠共享下,谢谢!


内部图:只有主控芯片更换成Air105,飞线两根,主要原因是原设计是USB的数据线输出,而Air105要求串口下载,飞的2根线就是将串口线引到USB座子上,然后通过USB连接器进行烧录。
跑线路还发现右下角的QFN32空焊盘应该是焊ESP8285的WiFi芯片,本机只有4G模块,阉割掉了WiFi功能。

下图是跑线路的原始记录,各种接口定义都列出来了。


程序就是拿Air105的参考例程略加修改即可。
1、屏驱动
spi_lcd = spi.deviceSetup(5,pin.PE11,0,0,8,96*1000*1000,spi.MSB,1,1)
lcd.init("st7735",{port = "device",pin_dc = pin.PC12 ,pin_rst = pin.PB05,pin_pwr = pin.PC08,direction = 1,w = 160,h = 128,xoffset = 0,yoffset = 0},spi_lcd)

2、矩阵软键盘驱动
    key_in = {pin.PA00,pin.PA01,pin.PA02,pin.PA03}
    key_out = {pin.PA07,pin.PE09,pin.PE10}
    softkb.init(0,key_in,key_out)


3、触摸屏管脚定义
YU=pin.PE07
YD=pin.PC03   --ADC通道4
XR=pin.PC04   --ADC通道5
XL=pin.PB04


4、摄像头还没有驱动成功,参考管脚在原始记录中有。

以上抛砖引玉,看看有没有人这么玩法。可以交流下,有些坑需要趟过去。

附:
初识Luat脚本语言,感觉很不适应,烧录工具只是简单的语法检查,没有编译功能,有些错误只有烧录到芯片上看串口打印才知道是什么错误。若不用串口根本不知道错误原因是什么,无法定位。很不方便。
个人觉得芯片能够做的事电脑主机软件当然能够做,烧录工具集成编译功能,将错误问题拦截在烧录前就好了。有问题不让烧录,软件提示出来。直到编译通过才允许烧录。以免浪费时间。
这个芯片还支持Keil直接编程,后续再尝试下,但无论是keil还是Luat,终归没有arduino阵营的好玩,资源巨多。随手就可移植个游戏。我用ESP32改装多个POS机游戏机,有感兴趣的后续可以更新发帖。

Air105这个芯片要是支持arduino就好了。。。目前这个POS机亮个屏后不知道干什么用了。。。




补充内容 (2022-8-7 21:02):
20220807更新:
上次说道Luat脚本语言很不习惯,想移植游戏等要花很大力气。于是不用Luat,改用RT-thread系统。
这个方便移植,RT-Thread支持Air105,后面gx...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 9家元 +264 收起 理由
IlovePLC + 30
家睦 + 120
zhkrid + 20
xiaoxuanfeng + 20 謝謝分享
kaixi_ants + 20
cushion + 20 原創內容
geek云中漫步 + 20 原創內容
ch104517745 + 4 做个小电视机时钟。
jf201006 + 10 謝謝分享

查看全部打赏

 楼主| 发表于 2022-7-14 11:54:13 | 显示全部楼层
找到一张更换芯片前原始的图片,主控是MH1903S,没有试过能否烧程序。直接替换成Air105

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-17 22:11:08 | 显示全部楼层
sm_june 发表于 2022-7-17 17:45
看样子还支持TF卡?

那个不是TF卡座,是预留的SIM卡座焊盘,不过Air105是支持TF卡。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-3 08:45:37 | 显示全部楼层
zongher 发表于 2022-8-3 00:36
你好,请问MH1902的芯片可以这样改吗?

封装管脚不一样啊,无法原焊盘焊上。ATS2825与MH1902封装一样。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-7 21:17:37 | 显示全部楼层
上次发帖说Luat脚本语言很不习惯使用。不好移植各种游戏。于是改用RT-thread,顺便熟悉下实时操作系统,移植起来也方便。
需要注意的是这个POS改装板子上无外部晶振,而RT-Thread对应的Air105开发包BSP中默认是外部晶振,导致上电运行不了。修改为内部晶振就可工作了。
void SystemInit(void)
{
//#ifdef __USE_XTL__     //change to use internal clock
#if 0
    SYSCTRL->FREQ_SEL = 0x20000000 | SYSCTRL_FREQ_SEL_HCLK_DIV_1_2 | (1 << 13) | SYSCTRL_FREQ_SEL_CLOCK_SOURCE_EXT | SYSCTRL_FREQ_SEL_XTAL_192Mhz;
#else
    SYSCTRL->FREQ_SEL = 0x20000000 | SYSCTRL_FREQ_SEL_HCLK_DIV_1_2 | (1 << 13) | SYSCTRL_FREQ_SEL_CLOCK_SOURCE_INC | SYSCTRL_FREQ_SEL_XTAL_192Mhz;
#endif
    SCB->VTOR = (uint32_t)(&__isr_start_address);
    SYSCTRL->CG_CTRL1 = SYSCTRL_APBPeriph_ALL;
    SYSCTRL->SOFT_RST1 = SYSCTRL_APBPeriph_ALL;
    SYSCTRL->PHER_CTRL &= ~(1 << 20);
    SYSCTRL->SOFT_RST2 &= ~SYSCTRL_USB_RESET;
    SYSCTRL->LOCK_R |= SYSCTRL_USB_RESET;
    __enable_irq();
}

官方的库不太全,移植了LCD的驱动,没有能力把硬件SPI用起来,暂时采用了软件模拟SPI驱动LCD,导致刷新速度较慢。
官方的矩阵键盘驱动代码看不懂,也是自己写了个驱动。现在移植2048游戏已完成,还有些小问题。基本能玩。


后面想移植个俄罗斯方块吧,但是屏幕分辨率太低,又不太想耗费精力,厂家缩水太多了。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-12 15:39 , Processed in 0.358800 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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