RSICV国产芯片之CHV208

1. 芯片选型分析的对比维度

分析或者对标应用的芯片替代思路 

1.1 内核/主频/存储空间支持

内核能力/指令集支持(考虑工具链兼容性); 

主频:对比计算能力是否满足基本要求

存储:内存--数据搬移空间决定数据运算的复杂度, FLASH--程序空间决定程序的复杂度

1.2 外设接口: (传感器接入,信号获取)

UART/I2C/SPI--数字外设接口能力,路数,最高主频(刷新率),接口协议是否通用

ADC/运放--模拟信号接口能力, 位数,信噪比,信号处理范围

SDIO 

1.3 驱动能力

PWM--路数,分辨率,最高频率

DAC--位数,精度

1.4音视频

I2S--音频接口(比如数字功放,数字硅麦)

DVP--视频接口,SPI摄像头接入

MIPI--屏或者摄像头接口

1.5 连接能力: 

无线: 蓝牙、wifi、SUB-G

以太网/CAN/USB

1.6 其他资源(软件开发的便利性): 

DMA--高速数据交换必备

TIMER定时器--灵活处理任务调度

CRC--外设通信

CHIPID--加密及身份互认

电源管理(待机模式/功耗)--是否足够灵活,能够满足不同工况低功耗要求和宽电压适应能力。 

1.7 开发环境: 

IDE支持

烧录调试模式

HAL库/RTOS支持

样例工程可用性,代码是否友好等; 

2. CH32V208系列应用选型

参考沁恒官网: 

产品中心 - 南京沁恒微电子股份有限公司

V208资源也很丰富,主频够高,FLASH 稍小128K, RAM64K

 

资源差不多,只是引脚数不同,估计是一个die; 

支持OPA和12bit的ADC, 其实可以用来做测温应用; 

3. 开发环境上手

参考贴: 

沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置-CSDN博客

3.1 代码编译环境IDE--MRS(MounRiverStudio)

  第一次用MRS打开CH208的项目,会安装环境: 

 代码架构: 

GPIO_TOGGLE例程: 

int main(void)
{
    u8 i = 0;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    SystemCoreClockUpdate();
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
    printf("GPIO Toggle TEST\r\n");
    GPIO_Toggle_INIT();

    while(1)
    {
        Delay_Ms(250);
        GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET));
    }
}

3.2  调试环境建立: 

评估板资源分布: 

烧录/调试的选项, 有三种方式 

3.2.1 2线SWD模式, 配合WCH-LINKE

优点: 可以在MRS里debug,可以动态调试,更符合从STLINK+KEIL迁移过来的开发者; 

缺点:需要配WCH-LINKE设备; 

硬件连接

引脚P6-DEBUG

WCH-LINKE连接SWD接口, 在MRS里可以直接下载调试。

如果用WCH-LINKE的话,也可以用 WCH-LinkUtility.exe 下载。 

专用烧录工具比IDE里的功能要更齐备。  

3.2.2 (USB/串口)WCHISPTool.exe 下载升级

稍稍麻烦一点, BOOT0接地(0)重启动烧录, 接高电平(1)重启动运行程序。 

优点:不需要专用工具,USB/串口都可以烧录;

缺点:需要准备一根飞线,在烧录和运行状态下配置切换接线; 

 强调: 串口烧录,必须BOOT0-VDD, BOOT1-GND连接好复位才行!

             然后烧录后, 重新BOOT0-GND即可以进入程序运行状态; 

实测,USB口和UART口都可以通过isptool正常烧录。 

GPIO-TOGGLE例程串口连接正常情况下,上电有打印消息; 

注意,要点灯的话,需要将排针的LED1连接到PA0, 即可实现blink点灯......

 

3.2.3 通过bootloader, 串口在线烧录程序(推荐)

 利用IAP例程的架构实现串口直接烧录(在线升级)。 --生产环境更实用。 

注意: app一定要配置Link.ld文件,指定FLASH/RAM大小: 

	FLASH (rx) : ORIGIN = 0x00005000 , LENGTH = 128K 
	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K 

 

这样就提高调试效率了,可以USB插着用于IAP更新下载固件APP, 串口插着打印调试; 

入口在xxx_it.c程序中的软中断入口: 

void SW_Handler(void) {
    __asm("li  a6, 0x5000");
    __asm("jr  a6");

    while(1);

tips:  IAP里加入简单的固件校验,还可以用于固件加密等扩展应用。 

注意,此处有坑! 

如果用IAP升级,USB可以直接用工具选择bin文件升级; 

!!!但是如果是串口升级,注意IAP给的bootloader例子里是用的串口3作为升级串口,串口1依然是printf调试打印串口,且波特率是57600(当然,可以修改)。 代码,查看IAP例子的main.c: 

int main(void) {
    SystemCoreClockUpdate();
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d\r\n", SystemCoreClock);
    printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );

    Set_USBConfig();
    USB_Init();
    USB_Port_Set(DISABLE, DISABLE);
    Delay_Ms(700);
    USB_Port_Set(ENABLE, ENABLE);
    USB_Interrupts_Config();

    USBFS_Init();
    USART3_CFG(57600);
    while(1)
    {
        EP2_RecData_Deal();
        if( USART_GetFlagStatus(USART3, USART_FLAG_RXNE) != RESET) {
            UART_Rx_Deal();
        }
        if (End_Flag)
        {
            Delay_Ms(10);
            IAP_2_APP();
            while(1);
        }
    }
}

所以升级用的USB-TTL模块要接在PB10-RX, PB11-TX: 

几种方式比较, 应该通过加载BOOTLOADER后用USB升级是最方便的操作,无需借助其他工具,直接插USB就可以了。  

4. 拿到SDK的入门路径 

4.1 外设:

BLINK-->外部中断/KEY-->UART-->SPI/I2C/FLASH

-->TIMER/PWM-->ADC/DAC/RTC

-->DMA/WDT/SDIO

***射频

4.2 RTOS操作系统

FREERTOS内核-->任务-->任务间通信-->任务和中断协同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942424.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7. petalinux 根文件系统配置(package group)

根文件系统配置(Petalinux package group) 当使能某个软件包组的时候,依赖的包也会相应被使能,解决依赖问题,在配置页面的help选项可以查看需要安装的包 每个软件包组的功能: packagegroup-petalinux-audio包含与音…

基于Spring Boot的个人健康管理系统

一、系统背景与意义 随着现代生活节奏的加快和人们健康意识的日益增强,个人健康管理成为了人们关注的焦点。然而,传统的健康管理方式往往依赖于纸质记录、定期体检等手段,不仅效率低下,而且难以实现对健康数据的持续跟踪和深入分…

上手教程:使用Terraform打造弹性VPC架构

最近Akamai发布的虚拟专用云(VPC)功能提供了一种隔离的网络,让云资源可以用私密的方式进行通信。 关于Akamai VPC功能,最棒的地方在于它有着极高的灵活性。用户可以通过Cloud Manager、开发人员工具(如CLI&#xff09…

要查询 `user` 表中 `we_chat_subscribe` 和 `we_chat_union_id` 列不为空的用户数量

文章目录 1、we_chat_subscribe2、we_chat_union_id 1、we_chat_subscribe 要查询 user 表中 we_chat_subscribe 列不为空的用户数量,你可以使用以下 SQL 查询语句: SELECT COUNT(*) FROM user WHERE we_chat_subscribe IS NOT NULL;解释: …

【论文复现】进行不同视角图像的拼接

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 进行不同视角图像的拼接 背景描述算法简介SIFT算法原理代码原理代码部署核心代码拼接结果其他的图片如何进行拼接? 修改内容&…

xxl-job 简单的入门到实战

本文是参考官方文档自己实践一次,纯享版,大致也是作者边写博客边去跟着官方文档实现 一、前期准备 1、官网地址 GitHub地址: GitHub - xuxueli/xxl-job: A distributed task scheduling framework.(分布式任务调度平台XXL-JOB&…

数字后端培训项目Floorplan常见问题系列专题续集1

今天继续给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了,后面会陆续分享这方面的问题。 希望对大家的数字后端学习和工作有所帮助。 数字后端项目Floor…

江苏捷科云:可视化平台助力制造企业智能化管理

公司简介 江苏捷科云信息科技有限公司(以下简称“捷科”)是一家专注于云平台、云储存、云管理等产品领域的创新型企业,集研发、生产和销售于一体,致力于在网络技术领域打造尖端品牌。在推动制造业企业数字化转型的进程中&#xf…

【视觉惯性SLAM:对极几何】

对极几何(Epipolar Geometry)介绍 对极几何是立体视觉中的核心内容之一,它描述了两个相机在观察同一个三维场景时,成像平面之间的几何关系。对极几何能够约束图像中对应点的位置关系,是双目立体匹配、三维重建、以及位…

从Condition开始,回顾AQS

Synchronized和Reentrantlock的挂起逻辑 synchronized中有两个核心的结构 EntryList cxq:等待拿锁的线程存储位置Waitset:被执行wait方法的线程存储位置 流转: 线程获取锁资源失败,扔到EntryList cxq线程持有锁资源&#x…

umi : 无法加载文件 D:\software\nodejs\node_global\umi.ps1,因为在此系统上禁止运行脚本。

问题详情 2、解决方法 1.使用命令 get-ExecutionPolicy查看 显示Restricted:限制 所以要给权限 2. 使用命令:Set-ExecutionPolicy -Scope CurrentUser 3. 会提示为参数提供值 4. 输入: RemoteSigned 具体如下图所示,成功解决。 报…

Redis篇--常见问题篇4--大Key(Big Key,什么是大Key,影响及使用建议)

1、概述 大Key:通常是指值(Value)的长度非常大,实际上键(Key)长度很大也算。通常来说,键本身不会很长,占用的内存较少,因此判断一个键是否为bigKey主要看它对应的值的大…

02、并发编程的三大特性

并发编程有三大特性分别是,原子性,可见性,有序性。会产生这些特性的根本原因是现在的服务器都是多CPU多核心数的,每个CPU都有自己单独的一套缓存和pc系统,而且程序在运行时按照JMM的规范,它们是需要先把数据…

基于Java+Jsp Servlet Mysql实现的Java Web在线商城项目系统设计与实现

一、前言介绍: 1.1 项目摘要 随着互联网技术的飞速发展,电子商务已成为现代商业活动的重要组成部分。在线商城作为电子商务的一种重要形式,以其便捷性、高效性和广泛覆盖性,受到了越来越多消费者的青睐。同时,随着消…

【安全测试相关知识】

安全测试介绍 背景 在当前信息技术快速发展的背景下,网络安全问题日益严峻,数据泄露、黑客攻击、病毒传播等安全事件层出不穷,给个人、企业乃至国家带来严重威胁。所以安全测试已成为企业和国家关注的重心 作用 安全测试是确保软件系统安…

WPS如何快速将数字金额批量转换成中文大写金额,其实非常简单

大家好,我是小鱼。 在日常的工作中经常会遇到需要使用金额大写的情况,比如说签订业务合同时一般都会标注大写金额,这样是为了安全和防止串改。但是很多人也许不太熟悉金额大写的方法和习惯,其它没有关系,我们在用WPS制…

Element-ui的使用教程 基于HBuilder X

文章目录 1.Element-ui简介2.使用HBuilderX 创建一个基于Vue3的项目 (由于是使用的基于Vue3的Element-ui)3.安装element-ui4.在项目里完全引用element-ui5.引用组件6.运行项目 1.Element-ui简介 Element,一套为开发者、设计师和产品经理准备…

MySQL的架构设计和设计模式

1. 数据库设计模式与范式 数据库设计模式是解决数据库设计中常见问题的一种思维方式,它提供了一套解决方案。以下是一些常见的数据库设计模式和范式: 实体-关系模型(Entity-Relationship Model):通过实体和实体之间的…

【MySQL】十三,关于MySQL的全文索引

MySQL的全文索引用于搜索文本中的关键字,类似于like查询。 演示 建表 CREATE TABLE demo (id INT(11) NOT NULL,name CHAR(30) NOT NULL,age INT(11) NOT NULL,info VARCHAR(255),primary key(id),fulltext index futxt_idx_info(info) );此表的默认存储引擎为In…

Aloudata 入选 IDC「GenAI+Data」中国市场代表厂商

近期,国际知名技术研究与咨询机构 IDC 发布了《GenAIData 市场趋势分析及最佳实践案例》报告,总结了当前主要市场特点和数据变化影响,并给出技术布局建议,以供市场参考。报告中还绘制了 GenAIData 发展趋势图,从市场需…