合宙AIR105(一): Keil MDK开发环境, DAP-Link 烧录和调试
AIR105是合宙LuatOS生态下的一款芯片, 1月初上市, 开发板与摄像头一起搭售. 从配置信息看, 芯片性能相当不错: Cortex-M4F内核, 最高频率204Mhz, 片上内建640KB SRAM和4MB Flash. QFN88封装, 尺寸10x10mm, 56个可编程GPIO PIN. 合宙提供了这个芯片及开发板的 LuatOS 开发环境和工具链, 但还是有很多开发用户希望能使用纯C语言的环境和工具链. 以下说明如何在Keil5 MDK中使用 DAP-Link 和 WCH-Link 烧录 AIR105 开发板.
阅读全文
posted @ 2022-01-31 15:30
DAP-Link 是ARM官方的一款开源的调试仿真器,也叫CMSIS-DAP, 几乎支持所有Cortex-M内核的MCU,不挑品牌厂家. 其功能等价于ST的ST-Link. 在 Linux 的 PlatformIO 中, 需要做一些配置才能对 CH32F103C8T6 进行烧录. WCH-Link是基于WCH549芯片的下载和调试模块, 支持3.3V/5V双电源输出, 支持USB转TTL串口, 用LED指示灯标识工作状态, CMSIS-DAP模式可以用于带有SWD接口的 ARM 内核MCU的调试和下载
CH32F1系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制、多级电源管理、 通用DMA控制器等. 此系列具有 2 路 USB2.0接口、多通道 TouchKey、 12 位 DAC 转换模块, 多通道 12 位 ADC、 多组定时器、 CAN 通讯控制器、 I2C/USART/SPI 等丰富的外设资源. 与STM32F103系列芯片相比, 管脚和寄存器兼容, 增加了USB功能, 有2个USB, 一个Host, 一个Device, 增加了DAC, 供电兼容5V, flash下载算法和内部BootLoader和STM32不兼容, 需要使用沁恒提供的算法, 或者使用沁恒的下载软件通过串口和USB下载.
MPU-6050是InvenSense生产的六轴运动跟踪芯片, 芯片尺寸4×4×0.9mm, QFN封装. 整合了三轴陀螺仪, 三轴加速度计, 片内温度传感器和数字运动处理器(DMP), 可以使用I2C接口外接三轴电子罗盘的输入,提供完整的九轴运动融合输出.
ADXL345是一款常见的的3轴加速度计, Analog Device生产. 13位分辨率, ±16 g测量范围, 分辨率3.9 mg/LSB. 可通过SPI(3线或4线)或I2C接口访问. 主要用于倾斜检测, 静态重力加速度测量, 以及运动或冲击导致的动态加速度测量. 能够测量不到1.0°的倾斜角度变化. 可以对单击, 双击, 自由落体等情况设置中断. 市面上的模块, 一般是8个pin脚, 在使用SPI接线方式的情况下, 与STC8H的接线方式如下. 除了SPI用到的CS, MISO, MOSI, SCLK以外, STC8H还需要提供两个中断输入, 因为INT0, INT1已经被SPI接口占用, 所以只能用INT2和INT3, 这两个外部中断只支持低电平触发, 所以在ADXL345中需要设置中断输出为active low.
FatFs已经将Fat格式的操作作了抽象化, 在新环境下运行FatFs, 只需要实现 diskio.c 中的几个方法, 还需要实现RTC接口, 这样才能在创建文件时写入正确的时间. 完整的代码在演示用例下, 使用了最新的R0.14b版本的FatFs. 在选项中开启了长文件名支持, 开启了对exfat格式的支持, 能正常挂载和读写64GB的大容量TF卡.
FwLib_STC8 是一个针对STC8G, STC8H系列MCU的C语言封装库, 适用于基于这些MCU的快速原型验证. 基于FwLib_STC8的项目, 可以在Linux下使用SDCC编译, 也可以在Windows下使用Keil C51环境进行编译. 前面介绍了在Windows的Keil5环境下使用FwLib_STC8, 以下介绍在Linux(本文使用Ubuntu20.04)的VSCode下的环境搭建
FwLib_STC8 是一个针对STC8G, STC8H系列MCU的C语言封装库, 适用于基于这些MCU的快速原型验证. 基于FwLib_STC8的项目, 可以在Linux下使用SDCC编译, 也可以在Windows下使用Keil C51环境进行编译. FwLib_STC12封装库较多采样函数方式对寄存器进行封装, 而函数与函数间的层级调用都会增加栈开支, 这样一方面容易对8位MCU的内存造成占用, 另一方面增加了固件尺寸. 在FwLib_STC8封装库中, 尽可能使用宏的方式对寄存器操作进行封装, 控制方法间的层级调用深度, 相比较FwLib_STC12, 节省了固件体积和堆栈占用.
浙公网安备 33010602011771号