数码之家

标题: 探讨一下,通过手机otg烧录stc单片机 [打印本页]

作者: 兔包公    时间: 2023-11-17 15:11
标题: 探讨一下,通过手机otg烧录stc单片机
书从何起,说是以前在论坛阅过一贴介绍关于使用OTG烧录的内容,但当我想研究一下下再次检索时,由于缺乏关键信息再也找不到相关帖子,大海捞针,有点困难,于是瞎78乱搜,都知道安卓是基于linux,既然可以在linux里使用交叉编译来搞C51的开发环境,那么安卓应该也是可以,于是查找相关资料时,惊奇的发现大多都是使用giuhub上的1个库,通过py脚本可以实现烧录,于是想简单测试一下在手机上可不可以?
第一,软硬件相关信息,
硬件:type-C口OTG转接线,板载CH340的STC15开发板,已root的安卓系统手机。
软件:termux
[attach]1976310[/attach]
第二,STC相关flash库地址
Github库地址1:(这个有点老旧,从16年起,没见更新)
https://github.com/laborer/stcflash
GitHub库地址2:(这个几乎支持所有系列的STC单片机,近期还一直在更新,本次就是测试这个)
https://github.com/grigorig/stcgal
第三,
3.1,安装并打开termux,通过命令,图形界面选择清华大学的镜像源(最好的选择还是爬长城,毕竟有时候要克隆一些GitHub上的东西方便,可忽略此步)
命令:termux-change-repo
[attach]1976311[/attach]
3.2,通过命令或手机设置里的授权管理赋予termux存储权限
命令:termux-setup-storage
3.3,
更新一下软件包
命令:pkg update && pkg upgrade
安装python
命令:pkg install python -y
[attach]1976312[/attach]
3.4,确保python和相关依赖安装成功后,直接使用pip安装stcgal
命令:pip install stcgal
[attach]1976313[/attach]
再克隆源码到本地,参考相关.md文件,中英文都有,搞就是了,这里就不过多废了,运行帮助命令看看
./stcgal/stcgal.py -h
[attach]1976314[/attach]
3.5,otg连接单片机开发板,尝试连接
命令:./stcgal/stcgal.py -P stc15
报错鸟,找不到otg相关内容,
[attach]1976315[/attach]
termux给予root权限,再次尝试,还是报错找不到,于是又从CH340官网,下载安卓的驱动,安装好其中的demo.APK,进去扫描设备,发现设备地址是/dev/bus/usb/001/002/,(如果多次插拔后面数字会对应增加)
[attach]1976322[/attach]
于是怀疑是不是和linux中com口设备地址不一样导致,查找stcgal源码中/dev/ttyUSB0,尝试把它替换为/dev/bus/usb/001/002/
[attach]1976317[/attach]
再次在运行命令,这回还是报错,端口配置错误,怀疑是通讯协议的问题
[attach]1976318[/attach]
想尝试从其他源码中看出stc通信协议的其他相关内容,无果,怪自己才疏学浅呀。
第四,尝试是不是可以通过API来访问,参考以下链接termux中提供的内容搞就是了
链接:
https://wiki.termux.com/wiki/Termux-usb
4.1,手机下载安装好termux-api.APK(建议用F-Droid里的,使用签名不一样,可能会导致其他问题)
4.2,termux里命令安装
pkg install termux-api libusb -y
4.3,命令termux-usb -l,这回可见它列出otg设备
4.4,命令termux-usb -r /dev/bus/usb/001/002,弹出权限,授予
[attach]1976326[/attach]
4.5, 按前面termux链接内容搞, 家目录下建立usbtest.c,复制相关内容并gcc编译。
4.6,运行命运看下
termux-usb -e ./usbtest /dev/bus/usb/001/002
虽然有其它设备信息错误,但是这里是是可以看出版本号vid和PID是和CH340demo.apk中给出的一样,
[attach]1976327[/attach]
第五,最后总结,探讨一下。
5.1,既然CH340官方安卓驱动中提供有apk源码和配置文档,那是不是在源码中加入stc的通信协议,实现hex文件的烧录呢?
5.2,再者termux-usb可以识别出otg设备,那是不是可以在testusb.c中加入stc通信协议和写入hex相关内容就可以呢呢?
5.3,又或者能否把stcgal这个库改为适配termux,我感觉是源码中缺少权限导致,如果能搞定像termux-api那样,出现usb2.0-seriel的授权,那么这个库应该可以使用上?
手机毕竟是手机,玩玩还是可以的,简单的代码高亮,提示等功能可以通过代码编辑器,C++编辑器等apk软件实现,vim也可以,就这样,才疏学浅,咋都不懂,蹭一帖,不废话了,万一哪天有大婶解决了一下也挺好了,谢谢观看。


作者: cyj988    时间: 2023-11-17 15:24
我也有这种想法,但是不懂英文不懂硬件。坐等老师研究成功。
作者: yjfxue    时间: 2023-11-17 15:25
学习了。要是有不用root的方法更好了。
作者: szb314    时间: 2023-11-17 15:37
STC有下载协议的,你说的这个功能可以实现,只是没有人去做这事
作者: devcang    时间: 2023-11-17 15:40
毕竟是linux,有root权限,要干吗都可以了  


作者: 兔包公    时间: 2023-11-17 15:46
szb314 发表于 2023-11-17 15:37
STC有下载协议的,你说的这个功能可以实现,只是没有人去做这事

1,(转)STC 51单片机烧录协议分析
2,
谈宏晶STC单片机的ISP功能 (芯片保密性)转
3,PYQT5:基于QsciScintilla的代码编辑器分析9--STC51烧写协议及实现
看这几遍文章,这协议似乎还是有点搞头,不是太难
作者: bg4rff    时间: 2023-11-17 15:51
沁恒电子官网有APK驱动的
作者: 全利88    时间: 2023-11-17 16:09
年轻就是资本,爬长城跟玩儿似的,羡慕呀
作者: alangxl    时间: 2023-11-17 16:52
看着好高级的样子,这是说不用电脑直接手机编程了
作者: kindzhon    时间: 2023-11-17 17:22
帮你问了一下claude2:
安卓手机上可以下载的51单片机程序下载软件有以下几款:

ISP Flash
这是一款功能强大的51系列单片机程序烧录工具。支持USB下载,可以通过OTG线将安卓手机/平板连接到单片机开发板进行程序下载。

可以在Google Play中搜索ISP Flash进行下载。

ISI
这也是一款51单片机下载软件,提供ISP/IAP/ICP功能,操作简单方便。

可以在应用商店搜索ISI进行下载。

USB ASP
聚创软件开发的51单片机下载工具,可以直接通过微型USB线连接手机和开发板。

可以前往聚创软件官网或者应用商店下载。

YK-ISP
一款免费的单片机编程工具,支持多种接口,可以通过OTG线进行下载。

可以在Google Play中搜索YK-ISP下载。

LptISP
这是一款小巧的ISP工具,需要自行编译,代码开源在GitHub上。

以上都是可以在安卓手机上使用的51单片机下载软件,大多可以在应用商店直接搜索下载即可。也可以到开发者的官网进行下载。

https://github.com/IOsetting/stc8prog
作者: ww5223017240    时间: 2023-11-17 17:28
可以肯定是可以的,但是就安卓那个小屏幕你看着不眼睛疼吗?感觉没啥实际意义吧?就算烧录方便了调试也麻烦吧,还不如带台小笔记本或者WIN平板了不是?与其这么搞的话还不如搞台7寸屏的3735的win平板,啥都有了不是?也不比手机大多少啊
作者: 兔包公    时间: 2023-11-17 17:50
kindzhon 发表于 2023-11-17 17:22
帮你问了一下claude2:
安卓手机上可以下载的51单片机程序下载软件有以下几款:


谢谢分享,周末有空试试。
作者: 兔包公    时间: 2023-11-17 17:53
ww5223017240 发表于 2023-11-17 17:28
可以肯定是可以的,但是就安卓那个小屏幕你看着不眼睛疼吗?感觉没啥实际意义吧?就算烧录方便了调试也麻烦 ...

习惯躺平了耍,屏幕小换平板就是了,可惜了平板还是安卓的,呵呵
作者: gl542400    时间: 2023-11-17 23:37
root的方法现在只有小米放开。
作者: lemontreenm    时间: 2023-11-18 00:20
额,楼主这个研究有点深入的。理论上肯定是可行的。现在的安卓手机其实性能并不弱,而且现在手机内存和闪存都够大所以应该使用的也是完整版linux底层,这么一来理论上成功率就更高了。
但是,楼主你不会真的想在手机上开发单片机吧???
作者: y00ooo00y    时间: 2023-11-18 11:12
这个功能实用吗?
作者: pcdoctor    时间: 2023-11-18 14:20
具有钻研精神的一次尝试


不过这不是解决技术痛点,而是没有痛点创造痛点。
作者: gzhs560    时间: 2023-11-18 19:43
回个贴居然还扣了2币,签到也没见加币上去,这论坛咋了?
作者: 兔包公    时间: 2023-11-19 10:39
gzhs560 发表于 2023-11-18 19:43
回个贴居然还扣了2币,签到也没见加币上去,这论坛咋了?

只有交易区版块回复会扣,具体前往站务查看相关版规帖子
作者: gzhs560    时间: 2023-11-20 08:20
兔包公 发表于 2023-11-19 10:39
只有交易区版块回复会扣,具体前往站务查看相关版规帖子

看版规的时候打瞌睡了,惭愧惭愧
作者: 哈哈哈22442    时间: 2023-11-20 22:02
全是英文,看的我有点晕

作者: 茶壹杯    时间: 2023-11-21 10:29
核心问题是安卓下成功驱动USB口
用个2块钱的USB2TTL
刷STC/PIC/AVR/STM都是一回事情


作者: kindzhon    时间: 2023-11-21 12:46
银河小铁骑 发表于 2023-11-20 14:05
【手机,安卓系统,USB调试宝-应用软件】,
支持STC【一箭双雕之USB转双串口】当 USB转双串口使用;
也支持 ...

只是调试,不能下载固件吧。
作者: soma    时间: 2023-11-21 19:39
不一定要root吧有协议就可以通过ttl刷
作者: 兔包公    时间: 2023-11-21 19:55
soma 发表于 2023-11-21 19:39
不一定要root吧有协议就可以通过ttl刷

应该是可以,不是清楚,记得好像见过有串口调试助手的APK,没空试,没空研究,编程水平太菜,搞不来。
作者: jxcnj    时间: 2023-11-22 09:31
收了,以观后效
作者: ploestar    时间: 2023-11-22 20:57
所为何来?如果是升级固件,脱机下载器就是
作者: xueyeteng    时间: 2023-11-23 08:52
lemontreenm 发表于 2023-11-18 00:20
额,楼主这个研究有点深入的。理论上肯定是可行的。现在的安卓手机其实性能并不弱,而且现在手机内存和闪存 ...

我觉得这个可能有应急需求,临时改点东西就不需要开机了
作者: 孤云feng    时间: 2023-11-23 08:58
手机都能做单片机开发了
作者: kkstun    时间: 2023-11-23 09:45
本帖最后由 kkstun 于 2023-11-23 09:47 编辑

弄个win平板,或者口袋本。然后用手机远程控制。。。。   或者直接用win平板把。省事。 然后再加个蓝牙串口透传。妥了。
作者: lemontreenm    时间: 2023-11-24 12:33
xueyeteng 发表于 2023-11-23 08:52
我觉得这个可能有应急需求,临时改点东西就不需要开机了

这个确实。身边没有电脑的时候手机能临时用一下也挺好
作者: 小涵子爸爸    时间: 2023-11-27 20:14
感觉没啥必要,不过折腾值得鼓励
作者: jxcnj    时间: 2023-11-28 16:21
高手到处都有
作者: 南飞    时间: 2023-12-5 12:51
gzhs560 发表于 2023-11-18 19:43
回个贴居然还扣了2币,签到也没见加币上去,这论坛咋了?

看帖会扣吧,回帖好像不扣
作者: yiqihaha    时间: 2023-12-11 17:01
想不到能有什么用,但是感觉挺有意思的
作者: 19079571    时间: 2023-12-21 21:51
现在梯子不好找喽
作者: xfdr0805    时间: 2023-12-26 11:05
这个方法我在ubuntu用过完全没问题
作者: win2003sp2    时间: 2024-1-1 23:37
来学习一下
作者: b294303665    时间: 2024-2-19 15:11
孤云feng 发表于 2023-11-23 08:58
手机都能做单片机开发了

arduino 好早就可以在安卓上开发编译下载了
作者: b294303665    时间: 2024-2-19 15:26
兔包公 发表于 2023-11-21 19:55
应该是可以,不是清楚,记得好像见过有串口调试助手的APK,没空试,没空研究,编程水平太菜,搞不来。 ...

没用的,stc的握手和下载的波特率都不一样,这个要重编译内核加入串口驱动才可以,编译器可以用sdcc ,我搞了好久才搞定stc在手机上的工具链,别的单片机倒是可以用tl866 这个通用编程器,这个在安卓上也用app
作者: qaq1000w    时间: 2025-7-7 01:15
kindzhon 发表于 2023-11-17 17:22
帮你问了一下claude2:
安卓手机上可以下载的51单片机程序下载软件有以下几款:


我刚才搜了半天,就第1个,最后一个github有,其他的都找不到
哪来的野生ai
作者: 银河小铁骑    时间: 2025-7-9 08:47

手机也能对AI8051U, ISP/OTA升级用户程序
[attach]2488814[/attach]





欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4