兆易创新 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。

阅读更多

基于树莓派 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 电源网络。

阅读更多

运用 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 的 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 开源硬件》

阅读更多

快速上手 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 版图,希望能够对于广大电子工程师的工作有所帮助。

阅读更多

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 仓库当中进行获取。

阅读更多

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

阅读更多