DMU/DCode
前面提到了 PCode/Punit,这次介绍另外的 DCode/ DMU(Die Management Unit)。 这个 IP 是负责 CPU Die 的功耗的(包括大核和小核)。它会控制休眠和工作时的功耗,温度管理,以及 IccMax。同时会参与 Reset 动作。
[......]
DMU/DCode
前面提到了 PCode/Punit,这次介绍另外的 DCode/ DMU(Die Management Unit)。 这个 IP 是负责 CPU Die 的功耗的(包括大核和小核)。它会控制休眠和工作时的功耗,温度管理,以及 IccMax。同时会参与 Reset 动作。
[......]
现代处理器变得越来越复杂,唯一不变的是:性能越强需要的功耗越大。为此,Intel 处理器专门引入了一个控制CPU电力消耗的部件:P-Unit。
P-Unit 是 “P'ower Management 'Unit' for the SOC-N(North)”的缩写。主要功能是负责 SoC-N 上[......]
这是一个能够让你整蛊别人的设备,将它串联到对方的USB 键盘和主机之间后,你可以用过手机上的 Blinker蓝牙连接到这个设备,然后在 Blinker中输出的信息就会出现在对方的电脑上。
硬件设计如下:
CH9326是一款HID转串口免驱芯片。CH9326支持双向数据传输,用于接收串[......]
前面编写测试代码的过程中,总感觉没有 Print 直接输出来的顺手,于是研究了一下 Print 的实现。基本原理是,对变量格式化后输出到一个 字符串Buffer 中,然后直接输出Buffer。
首先,编写一个测试的 CPP:
其中使用了 Print.h 头文件,定义如下:
[......]
很早之前使用 Arduino Pro Micro 实现过USB耳机转接器,这次尝试使用 WCH 的 Ch554 来实现(实际上可以使用 更见偏移的 Ch552 来实现,但是因为 Ch552 有烧写次数限制,所以最终是在 Ch554上进行开发)。
无需过多了解 USB Audio的相关知识,所作[......]
C++ 定义函数时可以直接给形参指定默认值,如果调用函数没有给形参赋值,那就直接使用默认值。这个功能非常容易理解。编写如下代码进行验证:
上面定义了 void func(int a, int b=2, int c=3) 这个函数,当通过func(30)调用时,相当于只给 a 赋值 30,其[......]
当我们在代码中直接定义浮点数如下所示时,会遇到 Warning C4305: 'initializing': truncation from 'double' to 'float'
这个警告的意思是:你定义的是一个 double 而非 float 类型。
解决方法有如下2种:
[......]
前面介绍了使用 ESP32 S3 播放 SPINOR 中的内容,美中不足的是 SPI 容量有限无法播放长视频。这次的作品能够实现读取和发送SD卡中的JPG 图片,从而实现长时间的播放。
实验是基于DFRobot 的ESP32-S3-WROOM-1-N4模组(DFR0896)【参考1】来实现的,[......]
这次带来一个好玩的 ESP32 项目:虚拟摄像头,就是将ESP32 S3 的板子烧录之后,系统中会出现一个USB摄像头,打开Camera后能够看到播放出来的视频。
下面介绍具体的实现方式。
目前 Arduino ESP32 尚不支持 USB Camera,因此,这次的项目是基于IDF 来[......]