全志F1C上测试一下USB-Gadget-Ethernet功能
内核配置
驱动加载
此项功能依赖于 u_ether.ko usb_f_rndis.ko usb_f_fs.ko g_ether.ko,直接使用modprobe g_ether.ko即可
查看板子输出,会多出一个叫usb0的网卡123456789101112131415161718192021222324252627282930313233343536373839[ 2734.604498] using random self ethernet address[ 2734.609106] using random host ethernet address[ 2734.614621] usb0: HOST MAC 06:d6:3f:f1:88:be[ 2734.619126] usb0: MAC 82:5a:d5:83:b9:da[ 2734.623035] using random self ethernet address[ 2734.627555] using random host ethernet address[ 2734.632127] g_ether gadget: Et ...
VSCode使用SSH登录无法格式化代码问题
现象在win10主机上使用VSCode远程登录到Ubuntu18.04主机上写代码,保存时无法自动格式化代码,相关的插件已经安装,本地可以正常格式化代码,但是远程无法格式化,也没有错误提示
解决搜索后,发现可以使用clang-format来格式化程序,由于本地主机无法联网,所以到vscode插件市场下载clang-format插件,通过离线方式安装,装好后,可以选择clang-format来格式化了,此时会提示错误,因为我们的远程Ubuntu主机还没有安装clang-format.
安装输入下边命令进行安装
系统默认的版本太老,这里安装的是ubuntu18.04支持的最新clang-format-10
123456789101112sudo apt install clang-format-10正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会同时安装下列软件: libclang-cpp10下列【新】软件包将被安装: clang-format-10 libclang-cpp10升级了 0 个软件包,新安装了 2 ...
C#编写的字体图片取模软件
基于C#编写的字体,图片取模工具,支持gbk字库,fontawesome图标字体编写初衷在单片机开发过程中,难免会用到各种字体,图片等资源,如果没有文件系统支持,这时就需要用工具对资源进行取模或转换了,目前网络上工具也是很多,但总是会有功能不满足,或者使用很麻烦,于是就萌生了自己写一个小工具的想法,现在软件功能已经基本满足自己使用了,分享给大家使用,如果使用过程中,有什么问题,请留言告知,我抽空修复一下
支持的功能
支持加载字库文件,支持字体批量取模
支持导出数组,bin,图片功能
支持图标字体取模,可以更换图标字体
支持取模时,旋转,镜像,支持修改前景色,背景色
支持图片批量取模,数组格式可支持8位,16位
支持等宽与非等宽取模,可以混合取模
……
界面展示
软件下载MosFontTool_Release
基于LVGL-8编写的小软件-1
前言之前一直是用C#在Windows平台编写软件,这次整个不一样的,使用一个嵌入式非常流行的GUI框架 LVGL来编写,其中用到的库有pthread,libconfig,serial_lite,freetype 这几个库都是跨平台的,用的是C或者C++编写,所以可以运行于任何平台
相关库lvgl, freetype, libconfig, serial_lite
软件功能如果有购买SNAPAV 70Mini 型号的功放,可以下载此软件进行控制,支持音量调节,信号源切换等操作
配置文件这里给出配置文件,支持多语言,支持更换字体
12345678910111213141516171819202122#语言配置lang = "zh-CN";#font = "C:\WINDOWS\FONTS\simkai.ttf";font = "yayuan.ttf";#中文zh-CN = { label_connect = "点击连接"; label_disconnect = " ...
全志F1C做的桌面小功放
全志F1C100S做的一个桌面小功放,主要结构为F1C100S(Linux)+RTL8189ETV(SDIO WIFI模块)+BM64(双模蓝牙模块)+TAS5805M+3 Rotary Encoder + 12 RGB LED
主要功能支持的功能列表
1.BT Audio(BM64)2.BLE APP(BM64)3.Airplay(WIFI)4.DLNA(WIFI)5.RCA(Line in)6.USB Audio(USB Gadget Audio)7.Web Server(websocket通信)8.FM(WIFI,暂未实现)9.语音合成(WIFI,暂未实现)
供电方式
整机供电由typec线供电,通过诱骗方式使充电器输出12V,系统可支持5–20V电源输入
控制方式
控制方式由顶部3个带按钮的编码器,下边由SPI驱动的12颗RGB灯做为背光构成,此外还可以通过BLE APP(android)和WebPage控制
功放部分
功放部分为TAS5805M 这颗芯片用于桌面小音箱再合适不过了,音质也非常OK,简单设置几个寄存器即可,当然也可以通过TI的PPC3软件进行配置,这个 ...
Linux应用层SPI驱动WS2812_RGB灯
在F1C100S上调试的,原本打算用GPIO来驱动RGB灯的,使用GPIOD这个库来操作GPIO,实测下来翻转速度还到不了1MHZ,这肯定是不行。于是就用SPI来驱动了
首先是在设备树添加SPI1,这样系统启动后应用层才可以操作SPI设备,注意这里并没有匹配“spi-dev”,因为启动时会有错误提示,但是spi是可以用的,这里为了去除那个错误就匹配的下边这个,用起来是一样的。
123456789 &spi1{ status = "okay"; spidev@0{ compatible = "rohm,dh2228fv"; spi-max-frequency = <50000000>; reg = <0>; status = "okay"; };};
系统启动后,查看/dev是否有spidev1.0。另外虽然SPI初始化后有4个脚,但是实际测试依然可以做为普通 ...
全志F1C桌面气象站-大屏版
以下是界面预览,仅供参考,具体以实物为准,屏幕规格为7英寸 RGB666 800*480
在Win10上编译libcurl-7.80.0 支持openssl与wolfssl
不带SSL的编译libcurl默认编译时是不带SSL支持的,如果不需要SSL支持,那么直接编译就可以,这种方式比较简单,网上教程比较多,请参考网上教程,之里不再赘述
编译带openssl支持的版本编译带wolfssl支持的版本wolfSSL是一个基于C语言的轻量级SSL / TLS库,专门针对嵌入式和RTOS环境,主要是因为其体积小,速度快,便于携带和功能集 wolfSSL,它是一个轻量级的 SSL 实现,主要应用于嵌入式系统。它的卖点就是速度快,功能多,包比较小,目前已经支持 TLS 1.3,只有 OpenSSL 的1/20 大小。
为什么选择wolfssl替换已有的openssl库 wolfssl比较小。 要从工程中移除openssl的最主要的一个原因是openssl太大了。在嵌入式工程中,为了实现一个小的功能,引用了一个openssl,编译生成的固件太大了,flash装不下了。而wolfssl在满足基本需求的同时,又能大大减小固件的大小。
wolfssl性能相对优秀。 和openssl对比,wolfssl的性能更加优秀,关于openssl和wolfssl的对比,可从wolf ...
手工贴片助手
开发背景一直一来,在开发完新样品做样机的时候,手工贴片非常痛苦,板子简单还好,如果板子复杂且样机数量又多(一般10台以内),那真是贴的眼疼胳膊酸啊,在贴片过程中最耗费时间的就是在密密麻麻的丝印图上找元件座位号了,所以如果有什么工具能一下子找到并能图形化标注出来位置,那将大大加快贴片的速度,也不用闻那么长时间的锡膏散发出来的有毒气体了。
灵感来源之前在用Kicad设计板子的时候,有一款插件不得不提一下,就是InteractiveHtmlBom,这款插件可以生成一个交互式BOM的文件,可以在浏览器里打开,图形化展示出来各个元件位置,手工贴片非常方便
这正是我想要的效果,但是这个插件只适合用在Kicad或者LCEDA里,其它软件使用不了,而且还得是源代码才能生成交互式BOM,只能自己开发了,于是就有了这个软件
实现原理由于没有源文件,要实现这种效果,需要有BOM表,Gerber,及坐标文件,这些是工厂批量生产的最基本的东西,都会提供的。原理:根据BOM表获取同一种元件的座位号,再从坐标里件里获取每一个元件的坐标,然后生成每一个元件的gerber绘图语句,最后就是渲染gerber丝印图并在上 ...
软件配合实现的一键开关机电路
一键开关机电路仅使用一个按键,就可以实现开机和关机的功能。这个电路可以令产品更加简洁注: 文章为转载 电路网
一、原理分析整个电路以+5V供电举例。
1.在关机状态时:电路中各位置的电压大小如下。
可以看出,关机状态下,电路没有形成任何回路,没有产生电流,关机功耗为0。
2.按键被按下并且保持按下时:
a. Q1的G极电压通过二极管D1和按键SW1,被拉低到约0.3V。0.3V是二极管D1的导通压降。
b. 于是MOS管Q1的Vgs = 0.3 - 5 = -4.7V,MOS管Q1被打开,VCC电压变为5V,并对MCU供电。
c. MCU迅速跑起来后,软件令GPIO-Out输出高电平5V,打开三极管Q2,饱和导通的三极管Q2将MOS管Q1的g极拉到0V,Vgs变为0 - 5 = -5V。
3.按键松开后:
①MCU的GPIO-Out维持输出高电平5V。
②三极管Q2继续饱和导通,将MOS管Q1的g极拉到0V,维持其Vgs = 0 - 5 = -5V。
③MOS管Q1维持打开,令VCC电压维持为5V。
4.此时 ...