页次: 1
现已增加本土数据源,无需连接github也可使用
https://ch55xduino.pek3b.qingstor.com/package_ch55xduino_mcs51_newest_qingcloud_index.json
感谢楼主,我之前也看到了这个开源项目,但是我编译的时候一直报错,就很无解了。用的GitHub上面代码,依赖也都弄好了,挺无语的。
编译失败原因及解决方法见此
@Blueskull
感谢大佬科普
外行纯好奇,我看这里的ch552核心图,
https://www.richis-lab.de/CH55x.htm
里面提到核心1.8x1.5mm。这芯片adc才8位,功能也简单。为啥面积比起1mm2大那么多?
给你个v3s的数据手册,有啥问题可以多查查资料。Allwinner_V3s_User_Manual_V1.0.pdf
你好,回帖请看帖,最后一段第一句就提了手册上没写。
之前也遇到了这个问题,
这篇文章讲的不错
https://www.cnblogs.com/USTHzhanglu/p/15222498.html
iamseer 说:移植一下 http://wiringpi.com/ 就可以。
原作者被喷子喷到弃坑了,不过本来它就不直接支持树莓派以外平台。这个库我知道,但是不能用arduino生态
为啥不能用? 自己写个IO兼容函数然后直接用库编译也没少干。除非你是指直接用Arduino一键工作,那只能自己写或者等其他人做支持包了。
@soso
Wiring Pi作者废弃项目时候的声明(http://wiringpi.com/wiringpi-deprecated/)
这里贴个翻译再高亮一下。
==============分割线================
这已经变成了一个有点咆哮的问题。对不起。
在过去的10年左右的时间里,我的生活发生了很多变化,主要是身体和精神健康问题,生意来来去去,但也有一些复古计算、arduino和Raspberry Pi的乐趣,以及我为它编写的wiringPi GPIO库。
然而,近年来,Raspberry Pi已经从一个小的黑客玩具变成了更大的东西,越来越多的人开始转向Python和其他语言,而wiringPi在设计上从来不支持这些语言--wiringPi是为有经验的C和RTB BASIC程序员所设计的。它不是一个新手学习工具。
我也从未打算让wiringPi进行静态链接--由于许多人的无能,他们就是这样做的,我已经收到了超过10,000封电子邮件,这些人升级了他们的Pi,发现代码停止工作,因为他们依赖于一个系统(通常是一些java/javascript/node或家庭自动化或UPS的东西),这个系统已经静态链接了一个旧版本。他们的这种纯粹的无能让我感到非常难过和郁闷。对未来的提示。如果你要这样做,至少要准备好支持它。
再加上那些把wiringPi "敲打 "到其他水果Pi平台上的人,却把我的名字作为联系邮箱......好吧,感谢你使用wiringPi,但不感谢你指望我支持你的一次性廉价勉强工作的电路板。如果你想得到支持,那就买一个真正的树莓派,这将有助于资助教育和研究,而不是一些廉价的山寨货,只是因为它有一些看起来更快/更大/更好的东西。
那些盗用我的软件并把它当作你自己的软件出售的人呢?嗯。当然--窃取自由软件是很难的,但是如果你是一个德国的Pi UPS制造商,你把wiringPi拆开,只得到你需要的部分,把它静态地连接到你自己的控制代码中,但是你没有公布代码和一个小小的 "感谢 "字条,而是把我的电子邮件地址留在里面,然后那些花钱买你的工具包的可怜的用户在升级他们的Pi时就会和我联系。
可悲的是,这只是迅速融化的冰山一角,但绝不是唯一的案例。可悲的是,人们一直在偷窃GPL、LGPL和其他自由/自由软件。甚至有人当面告诉我,他们会把我的代码拿到他们名下重新发布,因为我对此无能为力。所以没有了。
再有就是懒惰。我已经记不清有多少人问我wiringPi是否能支持这个、那个、其他......所以我说是的,你所要做的就是写代码来支持你的设备......然后他们就不高兴了,因为他们不知道怎么做(我有没有提到这不是一个新手学习工具?)或者我给他们报价,他们就更不高兴了,因为 - 免费软件和所有这些.... 我的微博呢?多年来,我在我的个人资料中写道:通过电子邮件支持wiringPi......但人们仍然在推特上谈论它。难道人们都不看别人的资料吗?我想不是。我最近把它删除了,因为它不值得占用空间。
关于针脚编号的混乱也是如此。我收到了许多关于这个问题的电子邮件和推特--为什么?因为人们太懒了,不愿意阅读详细的手册,也不愿意花时间去了解如何和为什么。这是关于针脚编号的最后一句话。
最后的救命稻草?一个叫DanielK的人,因为我没有及时发布Pi v4版本的源代码而大发牢骚。我放了一个为正确的动态链接设计的.deb文件,但Daniel指出
我不想成为一个完全的混蛋或任何东西,但从技术上讲,LGPL许可证要求你在它发布时提供源代码。
很好。谢谢你,丹。由于我当时的能力有限,我只是觉得就这样吧。如果我为了一个小项目而收到这样的邮件,那么就不值得了。
我将很快发布wiringPi的最终版本--包括源代码,但就是这样。不再有公开发布。我仍将为我自己的用途和客户维护它,但对于其他人来说,请为正在进行的项目寻找替代的GPIO库。
-戈登,2019年8月。
通过www.DeepL.com/Translator(免费版)翻译
移植一下 http://wiringpi.com/ 就可以。
原作者被喷子喷到弃坑了,不过本来它就不直接支持树莓派以外平台。
自问自答一下,顺便如果有人像我一样用到诡异分辨率屏,可以有帮助。
修改 drivers/gpu/drm/panel/panel-simple.c 添加屏信息:
static const struct display_timing tdo_tl040hds20_b1502a_timing = {
.pixelclock = { 36720000, 36720000, 36720000 },
.hactive = { 720, 720, 720 },
.hfront_porch = { 20, 20, 20 },
.hback_porch = { 40, 40, 40 },
.hsync_len = { 20, 20, 20 },
.vactive = { 720, 720, 720 },
.vfront_porch = { 15, 15, 15 },
.vback_porch = { 15, 15, 15 },
.vsync_len = { 15, 15, 15 },
.flags = DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_NEGEDGE |
DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
};
static const struct panel_desc tdo_tl040hds20_b1502a_parallel = {
.timings = &tdo_tl040hds20_b1502a_timing,
.num_timings = 1,
.bpc = 6,
.size = {
.width = 72,
.height = 72,
},
.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
};
//static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "tdo,tl040hds20-b1502a",
.data = &tdo_tl040hds20_b1502a_parallel,
把设备树dts里 panel: panel 的 compatible 改成
compatible = "tdo,tl040hds20-b1502a", "simple-panel";
即可
@无痕
我丢了一个bmp序列去压缩。代码为:
ffmpeg -r 30 -f image2 -i charAni-%03d.bmp test.mp4
frame= 60 fps=4.2 q=31.0 Lsize= 738kB time=00:00:01.96 bitrate=3072.6kbits/s speed=0.137x
video:737kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.150880%
ffmpeg -r 30 -f image2 -i charAni-%03d.bmp -c:v h264_omx test_hard.avi
frame= 60 fps=8.9 q=-0.0 Lsize= 114kB time=00:00:02.10 bitrate= 446.1kbits/s speed=0.313x
video:107kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 6.588876%
第一个应该是软压缩(Lavf58.76.100 编码器),第二个是硬压缩(Lavc58.134.100 h264_omx) 编码器。
速度是快了很多。但是如楼上压摄像头那样,效果很差,码率很低。简单试了-b:v 1M 参数没效果,不影响输出文件。
本人初用V3S,想用V3S驱动720x720屏幕。但是遇到了以下的问题。
我用自己画的转接板(好像红蓝和屏幕是反的,但问题不大)连接V3S和RGB接口屏幕。直接烧录荔枝派官方的 Zero_pub_V0.3.gz, 屏幕会亮,但是内容会快速滚动:
我按照官方教程,把LicheePi_Zero_720x720LCD_defconfig的lcd参数改了,显存CONFIG_SUNXI_MAX_FB_SIZE也改了。编译uboot然后用dd烧写到Zero_pub_V0.3.gz烧过的卡里。
然后uboot显示是正常的,照片糊是有点手抖。但是两秒过后启动linux后画面又滚动了。
我根据查的资料理解是:uboot会把屏参数传给linux,所以linux应该不用改?我看了sun8i-v3s-licheepi-zero-dock.dtb 里面也没有分辨率相关的内容。
最近遇到一个比较麻烦的需求,需要推6块720p的LCD屏,当然需要内容不一致,所以不能靠复制信号解决问题。
屏大概是这种。
在1688上查了一下,MIPI口和DPI口都有卖的。
我之前并没有接触过屏幕的驱动,所以还想问问我设想的这些方案有没有可行性,除此之外,大家有没有比较合理的方案?
1. 每个屏后面挂一块类似荔枝派zero的板子,然后互相通讯。这种方法虽然简单,但是应用层面上限制也不少。
2. 使用mipi分割,屏的驱动芯片是ST7703,好像支持1lane模式。然后我看到Jetson nano支持 Split Link Mode,所以有没有可能用像3399这种有两个4 lane mipi的soc分出6个接口推6块屏?
3. 分割dsi信号的话,一块屏就需要400M时钟,六块屏就要2.4G的时钟,似乎不太现实?
感谢各位有经验的坛友提供帮助。
关于ST-link不能烧Atmel的问题,这里有个帖子讲得比较清楚。基本原因是STLink不支持16位操作,所以NVMCTRL->CTRLA寄存器会出错。可以对OPENOCD打补丁解决。
https://electronics.stackexchange.com/a/371297
AFAIK the problem is in half word (16-bit) write to NVMCTRL->CTRLA register. STLink does not implement half word memory access and OpenOCD emulates is as two byte operations. Unfortunately CTRLA register comprises from key and command an have to be written atomically. If STLink writes two bytes, NVM controller sets PROGE bit in STATUS: "An invalid command and/or a bad keyword was/were written in the NVM Command register"
关于DAP_PACKET_COUNT的问题,我用CH552做daplink的时候只支持一个包,但是DAP_PACKET_COUNT没改,是4。OPENOCD使用没有问题,但是有人回报pyocd不能用。经检查pyocd确实会发多个包。所以LZ可以用pyocd再试试。
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.76262e8dzsKKpW&id=524754285200&_u=gef23h147f
这家还行,买过几次,是很粗线芯的硅胶线。可以少买点试试。
求新链接或关键字,这个链接已经打不开了。
先放个图
https://whycan.com/files/members/5702/微信图片_20210223160428.jpg受板上伙伴启发,抄了一个CH552的板子,lichuang打板,竟然自己犯了好几个错,哎好丢人:
1. 板子基本能工作
2. Arduino的cmsis_dap也能跑,就是速率差点,只有几K
哪位大拿有高速版本来着?出的几个问题:
1. 电源封装搞错了,回来只能自己把电源翻过来焊接
2. 悲催的SMT只能1.6的板子,USB后面要垫东西才能接到正常USB接口
3. <2.0的板子没法单个做,搞了拼版,数量忘记调整了,原计划做5个,搞了50片
1.6的板子用USB可以后面垫,但是垂直摇晃的问题不好解决,我想2mm也不会好。我找到一种叫 “USB 蓝牙铁壳12mm USB小铁壳 ”的东西,不到1毛钱,把USB那边做窄一点正好匹配USB口。如果有3D打印机,板上开孔自己打印几个支撑很好用的。直接胶粘估计也行。就算完全不粘,铁壳长度比母口深度大,不会拿不出来。
另外nerdralph回报说CH552用杜邦线连接HK32F是不可以用的。原因是振铃太大,时钟错误。CH552不能控制压摆率,所以SWD中间应该串一个50-150Ohm电阻做匹配,来消除振铃。
另外有人提到Speck比xxtea还能更省flash一些。
https://www.amobbs.com/thread-5715264-1-1.html
最近看到 https://hackaday.com/2020/12/11/remoticon-video-breaking-encrypted-firmware-workshop/ 讲了替换密码的破解方式。讲解的挺清楚的。
把LZ的代码移植到了SDCC,这样不用keil也能编译。暂时使用的是V1的HID协议,省内存,也比较简单。
配图是用CH552调试Arduino Zero。用Arduino环境测试烧写4KB/S,读取10KB/S。我在时钟上加了1us延迟,应该还是大有优化空间。
是单线复用的串口,而且还要保证tx发数据的时候,rx不会接收到同样的数据。。
那你要的叫半双工,不叫1-Wire
http://nerdralph.blogspot.com/2014/01/avr-half-duplex-software-uart.html
贴一下 blueskull 在 https://www.eevblog.com/ 贴出的有关3.3V的信息:
Despite being discouraged in the datasheet, the chip can be programmed reliably at 3.3V. Due to power distribution network dropout, the last 2kB (which is the ISP) may or may not be reliably programmed, but the first 14KB should be fine, as I was told by WCH's tech support.
客服确认了3.3V烧写没问题,只是最后2K存储器(Bootloader区)可能烧写不正常。
两颗低成本的片子。
CH552不用说了,WCH的低价片1块多。
LT8920是一个只有三颗外围器件的无线模块,某创只要1块多钱。具用过的大佬说天线随便搞根导线就能发射。
所以...两个片子加起来成本也不到3块钱.问题是.......
CH552资料只有官方的例子,本人USB以前没怎么接触过,现在在摸索。
LT8920几乎就没人用过,资料很少。目前USB在我看来有几种解决方案
1.直接通过WCH的HID代码魔改,基本不用了解USB,但速度其实挺低的,好处是免驱。
2.通过CDC驱动来做,看起来还可以,但是貌似驱动十分蛋疼。
3.就是通过WINUSB驱动,定制化能力高,但是编码会硬核一些。新人通过查询CH552资料到这个论坛,之后如果有更新会及时和大家分享。
等到差不多,和大家分享开源。目前只做了硬件,做开源也没全测,等没问题了再开好了。我估计会在USB坑里爬一段时间了。
之后再去挖LT8920的坑。。。
你要是对性能没有很高的要求,可以直接用 https://github.com/DeqingSun/ch55xduino
CDC在win10(也可能是win8)及以上可以免驱,描述符加好 Interface Association Descriptor 就问题不大。
如果想上winusb,配置好Microsoft OS 2.0 Platform Capability Descriptor也可以实现免驱。开发用webusb就很方便。
想跟大佬学习如何移植一款芯片到arduino ide中。
我这个也是用sduino改的。基本移植的重点是boards.txt 和 platform.txt。打开Verbose就能看到这两个文件的执行方式。也可以参考 https://arduino.github.io/arduino-cli/platform-specification/
另外Arduino手动安装和自动安装板子调用工具的路径不一样,可以参考sduino的相关文件。这是个小坑。
编译器如果不是GCC麻烦一些,像SDCC的话,需要用批处理套一层来回转换,模拟GCC的文件结构。如果你要加的芯片是M3 M0这种就简单了,直接调用Arduino-ARM的编译器就行,不需要自己打包了。
支持一下。像ch552这种flash可擦写次数好像不多
官方次数是200,我觉得这个数字相当保守,应该是加速老化的数据。如果不追求长时间flash数据不变会次数多很多。
https://www.mikrocontroller.net/topic/462538 有人提到过某俄罗斯论坛测试1000次写入没问题。我手头的芯片至少有300~500次写入,也没什么问题。
发现WhyCan已经很久了,刚刚才注册。就分享一个最近开发的CH552的Arduino开发包吧。
https://github.com/DeqingSun/ch55xduino
CH552价钱便宜,支持USB。只是51核心支持的编译器少,而且每次烧程序需要按按钮不方便。ch55xduino把编译器和核心库打包成Arduino安装包,直接支持USB串口,可以一键编译和烧录。
目前支持的函数不多,包括 delay, millis, 和 digital analog 读写函数,后期会逐渐增加。
开发版用什么都可以,过几天我打的板子送到后也会同步更新。
页次: 1