FireBeetle "软"USB Host Shield

喜欢军事的朋友一定经常听过这句话,这就是“只要推力大,板砖也能飞上天”。实际上,这句话并非玩笑之语,确有出处。当年,F-22是从“先进战术战斗机”(简称ATF)计划发展而来的。早期,好几家公司一起竞标,分别是波音,通用动力,洛克希德,诺思罗普,和麦道公司。大家提概念设计方案。结果,可能是因为洛克希德曾经设计出F-117隐形飞机的缘故,走老路当然是最轻松的,所以,洛克希德最初提出的F-22前身方案,它就像是F-117的放大版。设计跟F-117这个怪胎一样,为了隐身性能,以牺牲空气动力学为代价,飞机设计总重36吨。后来,有个人是这么评价这种早期设计的,他就是洛克希德在ATF计划中的项目经理巴特·奥[......]

阅读全文

CH55x 串口速度测试

使用上次的工具来测试 Ch55x(Ch551/2/4)开发板的串口速度。

实际测试的是 CH554 ,使用 Ch55xduino 编写代码如下:

1.PC端接收,Ch554发送,可以看到速度能达到37K/S左右

2.PC端发送,Ch554接收,可以看到速度能达到97K/S左右

从结果可以看出来,比 32U4 这样的芯片还是快一点点的(测试模式是 5V 24Mhz)

[......]

阅读全文

Win10 下通过BCDEDIT 增加启动选项

最近在看《软件调试(第二版)》,第四章讲述启动过程的时候作者提到了 bcdedit 相关内容。这次根据指引进行实验。

1.创建一个新的引导项目,这里我们只是将目前的引导选项多制作一个拷贝

2.重启后会出现下面的界面,可以选择

3.《软件调试》书中介绍了下面的命令可以将这个界面切换为 Win7 类似的

4.之后重启启动界面变成下面这种

5.可以在系统下运行 msconfig 编辑启动项

6.使用下面的命令可以恢复为 2. 这种样式

参考

  1. https://www.howtogeek.com/245175/how-to-add-[......]

    阅读全文

SerialRead() 结果为何不是想要的?

代码如下,功能很简单:判断输入的是否为 0xaa, 如果是就输出一段字符,如果不是输出另外一段:

实验平台是 Leonardo, 实验结果如下:

为什么输入的 0xaa 会被判定为 ffffffaa

在  \arduino-1.8.4\hardware\arduino\avr\cores\arduino\CDC.cpp 有如下定义:

对于 0xaa 来说,转换为 int 之后的结果就是 ffffffaa,可以用下面的代码来验证:

结果

知道了原因,修改方法也很简单,在变量声明的地方定义为 byte c 即可。

[......]

阅读全文

FireBeetle的USB Host Shield

目前市面上最成熟的 USB Host 库当属Oleg Mazurov的USB Host Shield Library 2.0(项目地址 https://github.com/felis/USB_Host_Shield_2.0),几乎可以兼容市面上的所有 Arduino 板,从 Atmel 328P/32U4到 ATMage 2560 再到 EP32都能够使用这个库来驱动 USB 设备。这次我专门为 FireBeetle设计了一个Shield 使得FireBeetle能够驱动一些USB 设备。

首先,依然是硬件设计部分。USB Host Shield Library是基于 MAX3421e[......]

阅读全文

VC 运行 PowerShell 命令的方法

有时候,我们需要执行 PowerShell 命令来取得一些信息,通过下面的代码能在 VC 中执行命令并且获得返回值:

下面是运行结果,可以看到二者完全相同。

特别注意:如果遇到下面这样的错误提示,那么需要扩大 res[] 。

Run-Time Check Failure #2 – Stack around the variable 'a' was corrupted.

参考:

1.https://www.cnblogs.com/htj10/p/13830785.html VC执行Cmd命令,并获取结果

2.https://blog.csdn[......]

阅读全文

ESP32/S2 不推荐使用的GPIO Pin

ESP32 不建议使用的 GPIO 如下

  1. IO0 Strapping,用于选择 SPI 启动还是下载启动
  2. IO1 TXD , 用于串口下载
  3. IO2 Strapping,下载启动需要用
  4. IO3 RXD,用于串口下载
  5. IO5 Strapping, SDIO 从机信号输入输出时序
  6. IO6-11 内部 SPI FLASH
  7. IO12 Strapping, MTDI信号
  8. IO15 Strapping MTDO信号

ESP32S2 不建议使用的 GPIO 如下(这个是我自己总结的,缺少佐证):

1.GPIO0 系统启动模式选择
2.GPIO1 TXD 用于串口下载
3.GPIO3 RXD[......]

阅读全文

联宝招聘(合肥,昆山,台北内部推荐,20210705)

职位部门级别位置软件工程师研发部工程师,高级工程师合肥嵌入式开发工程师研发部工程师,高级工程师合肥,昆山计算机视觉博士研究员研发部高级工程师合肥数据挖掘博士研究员研发部高级工程师合肥EDA应用软件开发工程师研发部工程师,高级工程师合肥,昆山软件BIOS高级工程师研发部高级工程师台北IT PLM方案工程师研发部工程师台北软件应用高级工程师(driver)研发部高级工程师合肥,昆山软件项目管理研发部工程师合肥

*合肥地址:中国安徽省合肥市经济技术开发习友路5899号联想科技港

*昆山地址:江苏省昆山市高新区登云路288号海创大厦C座

有兴趣或者想进一步咨询的朋友可以通过如下邮件地[......]

阅读全文

YModem 串口测试软件

最近研究 YModem 协议需要有对应的软件进行测试,开始使用的是 WinXP 的超级终端,但是发现它无法支持超过 1Mhz 的频率,之后使用 ExtraPutty 发现它在无法工作在 2Mhz 的情况下。最终找到了一个开源的 YModem 串口测试软件:SerialPortYmodem,这是一个开源的工具在:

https://github.com/1021256354/SerialPortYmodem

它提供了源代码,但是没有提供 Windows 的可执行程序,只好手工编译,编译过程又发现它使用的是 QT 5.7 ,于是又研究如何安全QT 最终得到的编译结果。有同样需求的朋友可以[......]

阅读全文

FireBeetle 播放音频的更大存储空间

前面的文章介绍了 DAC 方式播放和用更高精度的 PWM 方式直接播放音频文件,但是很明显我们遇到了的2个问题:

  1. 存储空间有限,APP 中最大只能存放2.7MB的音频;
  2. 每次都需要手工将数据转化为 .h ,比较麻烦。

这次就介绍如何在 FireBeetle上使用更大的空间。从介绍中可以看到FireBeetle Flash 为16MB,但是 APP 最大只能用到3MB,余下的空间要么分配给 SPIFFS,要么分给 FATFS。

SPIFFS 和 FATFS 都是一种文件系统。其中SPIFFS 是一个用于 SPI NOR flash 设备的嵌入式文件系统,支持磨损均衡、文件系统[......]

阅读全文