兆易创新 UINIO-MCU-GD32F350 固件库开发指南

早在新冠疫情爆发前的 2019 年,就曾经撰写过一篇关于 ARM 标准库的技术长文 《意法半导体 STM32F103 标准库典型实例》 ,文章非常详尽的介绍了各种常见片上外设资源的应用。时至 4 年以后的今天,国产微控制器在工程实践领域已经得到了广泛运用,因而基于兆易创新 推出的国产 ARM 微控制器,设计和制作了 UINIO-MCU-GD32F350RBT6 这款开源核心板,同时撰写了本篇文章作为配套的资料教程,希冀为国产芯片的商业化普及尽自己一份绵薄之力。

UINIO-MCU-GD32F350RBT6 是一款采用 LQFP64 封装的 GD32F350RBT6 微控制器核心板,基于 ARM Cortex-M4 内核架构,主频高达 108MHz,拥有 128K 容量 Flash,以及 16K 的 SRAM。而 UINIO-MCU-GD32F103C 采用 LQFP48 封装的 GD32F103Cxxx 系列微控制器(包括 GD32F103CBT6GD32F103C8T6GD32F103C6T6GD32F103C4T6),基于 ARM Cortex-M3 内核架构,主频达到 108MHz,拥有 16K ~ 128K 容量 Flash,以及 6K ~ 20K 的 SRAM。

阅读更多

日常使用 Cadence Allegro 17.4 的一些技巧汇总

楷登电子 Cadence 推出的 Allegro 是一款专业的板级 EDA 工具,其融合了原理图设计电路仿真PCB 绘制编辑拓扑逻辑自动布线信号完整性分析设计输出 等功能,非常适用于设计复杂的 PCB 电路板工程。Allegro17.4 版本,进行了全新的功能升级,显著的提高了用户体验与设计效率,通过更加美观合理的界面设计,使得开发人员的 PCB 设计体验更加友好。在提供更为丰富 3D 渲染功能的同时,还新增和优化了大量的 PCB 设计功能。

Allegro17.4 版本新增了一个暗黑主题,并且对工具栏的图标进行了重组,可以多屏幕显示单页原理图。同时还优化了主界面的各个窗口,更加重要的更新在于支持从原理图直接创建 PCB,能够更为方便的实现原理图与 PCB 的同步。并且提供了基于 Web 的搜索功能,可以方便的从 SamacsysUltra Librarian 下载原理图符号封装数据手册 乃至于 3D 模型。而且完美兼容早期的 17.2 版本,打开较早版本工程时并不会强制更新为当前的 17.4 版本。

阅读更多

基于树莓派 UINIO-MCU-RP2040 核心板制作逻辑分析仪

树莓派 RP2040 是一款采用 ARM Cortex-M0+ 双核心的微控制器,运行频率高达 133MHz,片上内置有 264KB 容量的 SRAM 内存,并且能够外接高达 16MB 容量的片外 Flash 闪存(通过 QSPI 总线连接),内部还集成有 DMA 控制器,以及 30 个 GPIO 引脚(其中 4 个可用作模拟输入)。除此之外,片上还拥有 2 个 UART 控制器、2 个 SPI 控制器、2 个 I²C 控制器、16 个 PWM 通道,以及 2 个可编程 PIO(Programmable I/O)块,并且支持 USB 1.1 主机和设备模式。

UINIO-MCU-RP2040 是一款基于 RP2040 的开发板,板载 Flash 采用更为小巧的 WSON8 封装,添加 SOD123 封装的肖特基势垒二极管防止正负级反接,同时增加用于全局异步复位的 RESET 按钮,并且引出了官方 Pico 开发板所没有的 GPIO23GPIO24 两个引脚资源。除此之外,由于模数转换引脚内部集成有连接至 IOVDD 的反向二极管,所以采用 FET 场效应管 DMG1012T 防止 RP2040 未上电时,这些引脚上施加的电压通过 ADC3 引脚泄露至 3.3V 电源网络。

阅读更多

一篇简明扼要的 Markdown 魔法速成教程

Markdown 是一款轻量级的文本标记语言,由约翰·格鲁伯(John Gruber)于 2004 年开发,主要用于在纯文本文档当中添加格式化元素。具有语法简单,易于读写的特点,同时也可以方便的纳入 Git 进行版本控制。其源文件采用 .md 或者 .markdown 扩展名,可以被 Pandoc 等预处理工具渲染为指定 CSS 样式的 HTML 页面。除了使用 VSCodeSublime 等编辑器进行撰写,还可以采用 Markdown 在线编辑器,或者借用 Markdown 在线表格生成器 辅助生成内容。

笔者日常开发设计工作当中,经常需要使用到 Markdown 来撰写各类技术笔记,以及项目的 README.md 文档。不同于网络上其它琳琅满目的 Markdown 在线教程,这篇文章会在介绍相关语法特性的同时,侧重于体现 Markdown 语法与 HTML 元素之间的映射关系,从而更加清晰的呈现其底层的转换逻辑,便于大家结合自定义的 CSS 样式与 HTML 标签,创造出更加丰富多彩的 Markdown 文本内容。

阅读更多

ARM 调试工具 UINIO-DAP-Link 应用详解

ARM Mbed OS 是一款开源免费的物联网操作系统,包含有基于 ARM Cortex-M 系列微控制器开发智能连接产品所需的全部基础架构。其社区推出的 DAP-Link 同样是一个开源项目,它支持编程和调试运行在 ARM Cortex 微控制器上面的代码,主要运行于拥有 SWD 或者 JTAG 接口的微控制器当中,并且通过 USB 接口在计算机与 ARM Cortex 微控制器之间创建一个用于调试仿真的通道与桥梁,为开发人员提供了下载调试串口通信拖拽烧录等一系列实用功能。

DAPLink 主要由 Mbed 硬件开发工具包 以及 DAPLink 固件 两个开源项目构成,而 UINIO-DAP-Link 则是由我自己设计的一款完全开源的 DAPLink 实现,相比于官方原版的硬件电路设计,在引出有 SWD 调试接口(由 ARM 公司制订)的同时,还引出了 JTAG 接口(属于 IEEE1149 国际标准)以及5V3.3V 电源,并且附带有 SWDJTAG 转接板的 PCB 设计,而固件部分则是基于 ARM 官方的最新的原版固件移植而来,全部的原理图与固件程序都已经开源在 GitHub

阅读更多

意法半导体 UINIO-MCU-STM32F103 标准库典型实例

博主之前文章介绍的STC51系列单片机是一款结构简单、易于学习的嵌入式微控制器,但是由于标准 8051 架构诞生于 70 年代,其硬件架构、资源数量以及编程方式都已显老旧,成本和性能方面也皆落后于其它架构产品,市场占有率逐步遭到侵蚀,目前仅常见于一些教学与发烧友使用的范畴。伴随近几年物联网行业的快速兴起,STM32等基于 ARM Cortex 内核的微控制器,凭借丰富的片上资源与简单易用的标准外设库,逐步成为消费与工业领域中的主流产品。

意法半导体成立于 1987 年,由意大利 SGS 和法国 Thomson 两家半导体企业合并而成,本文所介绍的STM32F103C8T6属于该公司应用极为广泛的型号,其提供的STM32F10x Standard Peripheral Library标准外设库对 STM32 片上资源进行了完善的封装,相对于 ST 公司目前力推的HAL/LL库,标准外设库更加接近于传统的寄存器操作,因而也较为容易向兆易创新GD32等国产微控制器移植。

阅读更多

高等教育出版社《电路原理》温习札记

电路理论是一门研究电路分析与网络综合,以及设计规律的基础工程学科。所谓电路分析就是指在给定的电路参数条件下,通过求解电路当中的电压电流了解其所具有的特性;而网络综合是在给定电路技术指标的情况下,设计出电路并且确定元件的参数,使得电路的性能符合预先的设计要求。因此电路分析是电路理论当中最为基础的内容,也是学习电路理论的入门课程,更被列为电子信息工程类专业的通用基础课,因而其重要地位不言而喻。

电路理论作为电子信息工程类专业的技术基础课,可以为相关专业的后续诸多课程提供理论支持,例如模拟电子技术数字电子技术信号与系统电机学电力系统分析集成电路设计自动控制电力电子技术等课程,它们都需要应用到电路理论当中的相关基础知识。

阅读更多

快速上手 UINIO-Logic-24MHz 逻辑分析仪

UINIO-Logic-24MHz 是一款同时兼容赛普拉斯(已经被英飞凌收购)CY7C68013A芯佰微电子 CBM9002A 两款 USB 控制器的开源逻辑分析仪,可以同时采集 8 个通道的数字信号,单个通道的最大采样频率为 24Mhz,可以支持高达 5.5V 的逻辑电平(大于 2V 视为高电平,低于 0.8V 视为低电平)。即可以采用 Sigrok Pulse View(可以实时下载固件),也可以采用 Saleae Logic(需提前烧录固件)作为逻辑分析仪的上位机程序。

逻辑分析仪(Logic Analyzer)作为一种非常重要的数字信号分析仪器,虽然市场上已经存在有 DSLogic 或者 Saleae 等功能强大的商业化产品,但是在日常的微控制器与数字信号总线开发过程当中,如果不是用于调试 PCIEUSB3.0 等高速信号,一台小巧可靠的 24MHz 采样率逻辑分析仪,就已经足以应付大多数的开发场景。因而笔者在自己的 GitHub 当中,开源了这款逻辑分析仪的全部 KiCad 原理图以及 PCB 版图,希望能够对于广大电子工程师的工作有所帮助。

阅读更多

常见 LDO 线性稳压芯片的对比选型

稳压器(Voltage Regulator)是一种在电源电压或者负载电流发生变化的时候,依然能够提供稳定输出电压的元件。常见的稳压器主要分为线性稳压器开关稳压器两种。其中,开关稳压器是通过重复切换输出级的开关状态,并配合其它储能元件来产生指定的输出电压。而线性稳压器则是通过获取输出电压反馈,然后经由误差放大器组成的控制电路,动态的调节输入与输出之间的电压差,进而实现动态稳压的目的,其主要特点是输入电压 \(V_{IN}\) 大于输出电压 \(V_{OUT}\)

近几年低压差稳压器LDO,Low Dropout Regulator)被广泛应用在微控制器电路当中,其主要特点在于输入电压与输出电压之间的压差 \(V_{DROPOUT}\) 非常小(通常在几十毫伏到几百毫伏范围)。在上述的 LDO 原理示意图当中,绿色的误差放大器通过改变内部的可变电阻,就能够达到了稳定输出电压 \(V_{OUT}\) 的目的(其中 \(RDS_{ON}\) 包含了 LDO 内部的 调整元件电阻片内互连电阻引脚电阻线焊电阻)。

阅读更多

运用 U8G2 与 TFT_eSPI 玩转 UINIO-Monitor 显示屏

UINIO-Monitor 同时拼接有 128×64 分辨率 SSD1315 驱动的 0.96 英寸 OLED 显示屏,160×80 分辨率 ST7735 驱动的 0.96 英寸 LCD 显示屏,240×240 分辨率 ST7789 驱动的 1.3 英寸 LCD 显示屏。以及采用相同驱动芯片,但是分辨率分别为 240×320240×280 的 2.4 英寸以及 1.69 英寸 LCD 显示屏。所有屏幕全部板载有 0.5mm 间距的 FPC 柔性排线连接器,同时还引出 2.54mm 间距的直插排针,便于通过杜邦线快速搭建实验电路。

之前由我设计制作并且开源出来的 UINIO-MCU-ESP32C3UINIO-MCU-ESP32S3 两款核心板,分别基于乐鑫科技的 ESP32-C3 (RISC-V) 与 ESP32-S3 (Xtensa) 微控制器(更多玩法可以参考之前撰写的 《基于 UINIO-MCU-ESP32 的 Arduino 进阶教程》 一文)。而本篇文章就会采用这两款核心板,以及乐鑫官方的 Arduino-ESP32 板级支持包,结合 U8G2TFT_eSPI 两款开源显示库,帮助大家快速上手 UINIO-Monitor 系列里的 5 款显示屏。

阅读更多

UINIO-MCU-ESP32 核心板电路设计

UINIO-MCU-ESP32C3UINIO-MCU-ESP32S3 两款开源核心板,分别采用了上海乐鑫科技 推出的 ESP32-C3 以及 ESP32-S3 微控制器,两者均支持 2.4GHz Wi-FiBluetooth 5.0 无线网络连接。本文旨在介绍两块核心板各个功能单元的硬件电路设计原理,其中 ESP32-C3 微控制器基于开源的 RISC-V 内核架构,拥有 22 个 GPIO 接口,主频高达 160MHz,板载 384KB 容量的 ROM,以及 400KB 容量的 SRAM 和 8KB 容量的 RTC SRAM,支持的数字外设接口有 3 × SPI2 × UART1 × I²C1 × I²S,而模拟外设接口则采用了 6 通道的 2 × 12 位 SAR 模/数转换器。

稍晚一些推出的 ESP32-S3 微控制器则是基于 Cadence 公司的 Xtensa Dual-Core 32-bit LX7 架构,拥有 45 个 GPIO 接口,主频高达 240MHz,板载有 384KB 容量的 ROM,以及 512KB 容量的 SRAM 和 16KB 容量的 RTC SRAM,支持的数字外设接口4 × SPI3 × UART2 × I²C2 × I²S。而模拟外设接口采用了 20 通道的 2 × 12 位 SAR 模/数转换器。核心板的 KiCad 原理图以及 PCB 源文件,可以在我的 GitHub 仓库当中进行获取。

阅读更多

基于 UINIO-MCU-ESP32 的 Arduino 进阶教程

Arduino-ESP32 是由乐鑫科技GitHub 开源社区推出的一款基于 Arduino IDE板级支持包BSP,Board Support Package),除了兼容大部分通用的 Arduino API 之外,还能够支持 ESP32 系列芯片一些独有的特性化 API。由于几年以前已经撰写过一篇基于标准 Arduino API 的《玩转 Arduino Uno、Mega、ESP 开源硬件》,所以本篇文章不再赘述相关内容,而是结合 U8G2AsyncTimerRBD_BUTTONLiquidCrystal_I2CESP32SPISlaveServoSdFat 等常用第三方库,通过分析注释典型的示例代码,分门别类的介绍了各种片上资源外设的实例化运用。

ESP32-C3ESP32-S3 是当前市场上比较流行的两款物联网主控芯片方案,它们分别基于开源的 RISC-V 内核,以及商业化的 Xtensa 内核,并且同时支持 WiFi 与 Bluetooth 无线连接。由于日常工作当中经常使用到这两款微控制器,所以特意设计了 UINIO-MCU-ESP32C3UINIO-MCU-ESP32S3 两款核心板,关于它们硬件电路设计方面的相关内容,可以进一步参考本篇文章的姊妹篇《UINIO-MCU-ESP32 核心板电路设计》。由于本文属于 Arduino 进阶性质的教程,阅读时需要具备一定的嵌入式开发经验,萌新可以阅读笔者更早之前撰写的《玩转 Arduino Uno、Mega、ESP 开源硬件》

阅读更多

FreeCAD 参数化 3D 建模上手实例

FreeCAD 是一款面向计算机辅助设计CAD,Computer Aided Design)的 3D 参数化建模工具软件,该工具基于 LGPL 开源协议,同时提供有适配 Linux、Mac OS、Windows 操作系统的跨平台版本,其底层采用了 OpenCascade 来提供二维与三维几何体的生成显示与分析。这里所谓的参数化建模就是指通过一系列的参数来控制 3D 模型的形状,例如一个立方体可以由长度宽度高度三个参数共同决定,这些参数可以随时进行修改。除此之外,FreeCAD 还可以使用其它模型作为参数;例如将一个立方体作为输入参数,FreeCAD 就能够基于它创建出一个柱状的 3D 模型。

FreeCAD 并非只是为了完成某一项特定的工作,或者仅用于生成某一类特定的模型。使用者可以利用它创作小到电子元件与 3D 打印部件,大到建筑物的不同尺寸模型。由于每一种任务的工作流程并不完全相同,所以 FreeCAD 分别提供了相应的工作台。目前网络上关于 FreeCAD 的应用资料较少,所以尝试利用本文记录一些日常使用的技巧,全文基于 2022 年 9 月份发布的 FreeCAD 0.20.1 版本撰写,文中所涉及的实例已经共享至我的 FreeCAD-Tutorial-Example

阅读更多

如何设计 NFC 动态标签的天线

近场通信NFC,Near Field Communication)是一种基于无线射频识别RFID,Radio Frequency I Dentification)技术发展起来的近距离无线通信技术,它们都是通过无线频率的电磁感应耦合传递数据,但是 RFID 的传输范围可以达到 1m,而 NFC 的传输范围通常在 10cm 以内。NFC 的无线信号频率为 13.56MHz,可以兼容 ISO14443ISO15693Felica 等非接触式智能卡规范,数据传输速率可以达到 106kbit/s212 kbit/s424kbit/s

意法半导体的 NFC 动态标签芯片 ST25DV-I2CST25DV-PWM 可以通过低功率的 I²C 总线以及 13.56MHz 无线射频访问芯片内置的EEPROM(电可擦除只读存储器),同时支持近程的 ISO/IEC 14443 Type A 和远程的 ISO/IEC 15693 标准。本文旨在介绍无源 RFID 的基本原理,以及 13.56MHz 感应天线设计的基础知识,文中部分内容参考自意法半导体编号为《AN2972》的官方应用笔记(Application Note)。

阅读更多

开源 EDA 工具 KiCad 6.0 电路设计小书

对于国内的中小型电子企业而言,AllegroPadsAltium Designer 等商业 EDA 工具的授权费用过于昂贵,且大部分只提供 Windows 操作系统版本,缺乏相应的跨平台支持。在电子信息技术行业版权问题充分受到重视的今天,一款易于使用并且受到厂商广泛支持的开源 EDA 工具,对于硬件电子工程师而言尤为重要。本文介绍的 KiCad 就是一款基于 GNU GPL v3 开源许可协议的跨平台 EDA 电子设计自动化工具集,其能够处理多达 32 个铜层、14 个技术层、4 个辅助层的 PCB 电路板,并且生成加工制造所需要的网表物料清单光绘文件钻孔文件元件放置文件

自 2018 年 07 月 22 日发布 KiCad 5.0 版本以后,历经了三年时间,终于在 2021 年 12 月 25 发布了全新的 KiCad 6.0 版本,新版本采用了全新的用户交互界面,带来全新原理图编辑器PCB 编辑器3D 查看器的同时,还增加了更为丰富的 DRC 设计规则约束,并且提供了对于中文语言的良好支持。全文最早基于 5.0 版本写作,鉴于官方已经升级至功能更为完善的 6.0 版本,所以基于官方新版的 《Getting Started in KiCad》 对本文进行了全面的重写。

阅读更多

采用 Altium Designer 17.1 进行 PCB 电路绘制与仿真

Altium公司最早推出的EDA(电子设计自动化,Electronics Design Automation)产品名为Protel,经过一系列的企业并购与技术整合之后,于 2009 年推出了Altium Designer 09,接着 2012 年又推出Altium Designer 13.0,本文将要介绍的Altium Designer 17.1则是Altium公司于 2017 年发布的产品,可用于设计板级原理图并进行 PCB 布线,同时整合了 SPICE 仿真以及 FPGA 设计等高级功能。

经过多年的迭代与发展,Altium Desinger 已经并不仅仅局限于作为一款 EDA 工具,其功能已经贯穿于电子设计的全流程,包括 MCU 微控制器和 FPGA 设计建模、电路 SPICE 仿真与验证、元器件库封装、电路原理图绘制、PCB 绘制、PCB 信号完整性验证、PCB 制板文件生成等等;而本文主要围绕 Altium Desinger 的原理图与 PCB 绘制元器件封装PCB 仿真与验证 3 个核心主题进行相关介绍。

阅读更多

简明厄要的《电路理论》读书笔记

电路理论电气工程电子科学技术的主要理论基础,是一门研究电路分析网络综合与设计基本规律的基础工程学科。所谓电路分析是在电路给定、参数已知的条件下,通过求解电路中的电压电流而了解电路网络所具有的特性;而网络综合是在给定电路技术指标的情况下,设计出电路并确定元件参数,使电路的性能符合设计要求。因此电路分析是电路理论中最基本的部分,是学习电路理论的人门课程,被列为电子类专业重要的公共技术基础课。

这篇文章是邹建龙老师所出版 《电路实验》 一书的读书笔记,并且结合他的相关的课件资料,在摒弃繁杂数学推导的基础上,言简意赅的介绍了 电路模型和电路定律电路的分析方法与定理动态电路正弦稳态电路及其频域特性互感三相电路非正弦周期电路二端口网络 等电路分析方面的知识点,在凸出重要知识点的同时,力求简单易读,因而也可以作为大家的电路理论考前恶补资料使用 ヽ(✿ ゚ ▽ ゚)ノ。

阅读更多

《实用电子元器件与电路基础》读书笔记

实用电子元器件与电路基础》的英文原版书籍名称叫做《Practical Electronics for Inventors》,全书从电路基本原理入手,围绕各种类型的电子元器件进行了详细介绍。首先是阐述了基本的电路理论,然后重点讨论了包括 电阻电容电感变压器 在内的基本元器件;接下来介绍了半导体电子技术,并且详细分析了 二极管晶体管晶闸管 等半导体元件的性能与参数,以及运算放大器滤波电路振荡电路定时器稳压电路与电源 等经典的模拟电路。

最后介绍了数字电子技术相关的内容,从基本的逻辑门电路入手,重点讨论了组合逻辑电路时序逻辑电路,以及相关的 触发器寄存器计数器缓冲器锁存器收发器,乃至于存储器微控制器。除此之外,该书还简单介绍了线性函数二次函数指数/对数函数三角函数复数微积分等数学预备知识。电子元器件的选型运用是硬件工程师日常工作当中最为主要的内容,希望本篇文章能够对广大电子爱好者有所帮助。

阅读更多

高等数学主要概念与公式摘要

高等数学是由微积分学,较为深入的代数学、几何学以及它们之间的交叉内容所形成的一门基础学科。由于电路分析运算放大器信号完整性高频电路信号学当中,都涉及有大量的积分和导数运算,也需要经常使用到拉普拉斯和傅立叶变换等高等数学内容,因此着手撰写本文用于复习大学本科学习阶段涉及的微积分知识,主要包含一元函数微分学一元函数积分学矢量代数与空间解析几何多元函数微分学多元函数积分学无穷级数常微分方程等部分的内容。

由于微积分涉及的概念相对较为抽象,因此在文章写作过程中,阅读并且参考了《Thomas’ Calculus》一书当中的有关内容。该书从 1951 年第 1 版发行至今,当前的最新版本为第 14 版,已经足足经历了七十个年头,是一本经历过时间检验的优秀参考资料。对于本文当中所涉及到的代数学知识,可以参见博主撰写的另外一篇数学类文章《初等代数常用公式与图像汇总》

阅读更多

《电路分析导论》读书笔记

本文力求言简意赅的讨论电路分析过程当中涉及到的一些基本理论知识,全文第 1 部分围绕电路分析展开,涵盖了电路当中的 电阻电容 等基本元件,相关的定律(欧姆定律焦耳定律基尔霍夫定律)定理(叠加定理戴维南定理诺顿定理)和等效变换(电源等效串并联等效星形三角形等效),以及基本的分析方法(支路电流法结点电压法非线性电阻分析);第 2 部分则以电磁感应现象作为核心,同时引入 安培力洛仑兹力磁通量 等电磁学基本概念。

第 3 部分围绕交流信号展开,包含了动态元件 电阻电容电感 相关的交流电路,并且介绍了 功率因数 的提高,RCLC 电路,以及三相交流电路;第 4 部分介绍了互感变压器,主要讨论互感现象与变压器的原理;第 5 部分则主要讨论电路的过渡过程,比如 RCRL 电路的过渡过程,以及其中 电压电流 随着时间变化的规律和影响过渡过程快慢的时间常数,同时还引入了换路定则微分电路 以及 积分电路

阅读更多