《软件设计指南之三》:如何为 ING916 添加外部 Flash 扩充容量?

知识图谱
2025-08-29 桃芯科技公众号 桃芯科技(苏州)有限公司
串行NOR Flash,SPI0,ING916,ING91682C 串行NOR Flash,SPI0,ING916,ING91682C 串行NOR Flash,SPI0,ING916,ING91682C 串行NOR Flash,SPI0,ING916,ING91682C

ING916SPI0 通过 AHB 总线连接到处理器,支持 4 线模式,以存储映射方式只读访问时支持 XIP。通过 SPI0 外挂串行 NOR Flash,处理器就可以通过映射方式读取 NOR Flash 里的内容。对于开发者而言,这块外挂 NOR Flash 可存放程序、只读数据等,可被 Cache “加速”,像内置 Flash 一样,使用方便。


SDK 从 v8.4.19 开始:1)自动安装 W25Q 烧写算法;2)支持串口和 USB 烧录。


01 芯片选型


SPI0 配置到专门的高速管脚可获得最高的传输速率。建议结合项目需要,确定 ING916 和 NOR Flash 的选型。


02 开发 Flash 烧写算法


下一步是为 NOR Flash 开发烧写算法。由于烧写算法不便调试,我们可以先在一个“普通”程序里实现相关的函数,测试正常后再转换为烧写算法。


用程序读写外部 Flash


必须使用 SDK v8.4.10 或更高版本的 Cube。对于较低版本的 SDK,请使用外设驱动。


先用 Wizard 创建一个 ING916 项目,打开 Cube。假设我们决定选用 ING91682C,在 Cube 里把封装切换为 ING91682C,然后直接点击 “Set to High Speed Pins” 为 SPI0 配置高速管脚。



切换到时钟树界面,确认 SPI0 时钟为 24MHz 慢时钟(注:开发调试阶段先使用较低的时钟频率。),回到 SPI0 的设置页面,将 Basic Settings 的 “Clock frequency” 设置为 24MHz。


说明:时钟树界面的 SPI0 时钟为 SPI0 硬件模块的驱动;而 Basic Settings 的 “Clock frequency” 为 SPI0 (主模式下)输出的 CLK 信号的频率,由驱动分频得来。


参考 NOR Flash 数据手册,开发、调试相关的操作函数,如擦除、写入、设置模式等。


AHB_QSPI_MEM_BASE 为起始地址可直接以存储映射方式读取 NOR Flash 里的数据。读取时,SPI0 不需要任何特殊设置。


待功能验证正常后,可酌情优化传输速率:提供 SPI0 时钟、设置 NOR Flash 的 4 线模式等。如果需要以 2 线或者 4 线模式读取 NOR Flash,需要配置 SPI0 的 MemAccessCmd 参数。请参考 NOR Flash 数据手册,选择合适的命令和时序。MemAccessCmd 默认为 SPI_MEMRD_CMD_03,单线模式。


// 示例:设置为使用 EB 命令(4 线模式)
apSSP_SetMemAccessCmd(AHB_SSP0, SPI_MEMRD_CMD_EB);
   

将程序转换为 Flash 烧写算法


下一步是通过上面的 NOR Flash 操作函数实现下载工具或者 IDE 要求的 Flash 烧写接口。以 Keil 为例,需要实现 4 个必备的接口:


  • Init: 初始化

  • UnInit: 反初始化

  • EraseSector: 擦除一个扇区

  • ProgramPage: 写入一页


Flash 的特性、地址范围等在 FlashDev.c 的定义,如示例中:

struct FlashDevice const FlashDevice = {
    FLASH_DRV_VERS,                // Driver Version, do not modify!
    "INGCHIPS 91600 EXT W25Q",   // Device Name
    EXTSPI,                        // Device Type
    0x04000000,                    // Device Start Address  (A)
    0x01000000,                    // Device Size in Bytes  (B)
    4096,                          // Programming Page Size (C)
    0,                             // Reserved, must be 0
    0xFF,                          // Initial Content of Erased Memory
    800,                           // Program Page Timeout 100 mSec
    3000,                          // Erase Sector Timeout 3000 mSec

    // Specify Size and Address of Sectors
    0x1000, 0x000000,              // Sector Size 4kB       (D)
    SECTOR_END
};
   

其中,名称可任意填写;起始地址 A 为固定值(AHB_QSPI_MEM_BASE),不可修改;B 既可根据实际情况填写,也可以填写一个 Flash 同系列型号所支持的最大容量(W25Q 地址 24bit,最大支持 16MiB),当以后更换容量更大的 Flash 型号时,不需要更改烧写算法;D 务必根据实际情况填写扇区大小;C 为烧录时一页的大小,由于 Flash 可能不支持按页擦除、却一定支持按扇区擦除,所以这里把它设置为一个扇区的大小。


03 使用外部Flash


用 Wizard 创建一个 ING916 项目(假设名为 use_ext_flash)。打开 Cube,切换到所选用的封装,打开 SPI0 的时钟,并为 SPI0 配置管脚。在 Keil 里打开项目的 Target 设置,添加一块外部 Flash,起始地址为 AHB_QSPI_MEM_BASE

进入烧写算法设置页面,添加外部 Flash 烧写算法,添加完成后,这个项目存在两个烧写算法。


为项目添加一个新的文件 demo.c,写一个测试函数:

#include "platform_api.h"

void hello_world(void)
{
    platform_printf("hello from EXT flash\n");
}
   

set_profile() 里调用这个函数:

extern void hello_world(void);

uint32_t setup_profile(void* data, void* user_data)
{
    platform_printf("setup profile\n");
    platform_printf("func @ %p\n", hello_world);
    hello_world();
    //...
}
   

打开 demo.c 的选项窗口,将 “Code/Const” 指派到 ROM1。



检查项目目录下是否存在 use_ext_flash.bin 文件,如有则删除。编译,此时可发现项目目录下生成了一个名为 use_ext_flash.bin 的文件夹,里面存放了两个分别对应于 ROM1 和 IROM1 的文件。打开下载工具,不勾选 “Burn Bin #2”(注意:v8.4.18 或更旧版本的下载工具可以下载 ER_IROM1,但无法下载 ER_ROM1;v8.4.19 及以上版本的下载工具两个文件都支持。),只下载 platform.bin。回到 Keil,点击 Download (F8) 按钮下载 app。运行程序,用串口工具可看到如下输出:


setup profile
func @ 04000001
hello from EXT flash
   

可见 hello_world 函数已被存放于外挂 NOR Flash,使用时与内置 Flash 没有区别。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由转载自桃芯科技公众号,原文标题为:《软件设计指南之三》:如何为 ING916 添加外部 Flash 扩充容量?,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关推荐

【产品】桃芯科技 ING916系列 低功耗蓝牙5.3 SOC

产品特性:1.支持完整的低功耗蓝牙5.3特性,包括广播扩展、跳频算法、主信道随机广播、AoA和AoD寻向定位等。 2.内置高性能32位RISC MCU,具有DSP和FPU功能,灵活可配的缓存及2线SWD调试接口。 3.片上512KB Flash、ROM、80KB RAM,支持多种时钟源。 4.智能电源管理,外部供电1.62-3.63V,集成DCDC、LDO、POR和BOR。 5.丰富的外围设备接口,包括GPIO、USB2.0、QSPI、ADC、模拟比较器、PTE、RTC计时器、PWM、UART、I2C、I2S、PDM、QDEC、硬件键盘扫描控制器、红外收发控制器、DMA、AES/CCM、TRNG等。 6.支持128-AES/CCM加解密、链路层广播、数据、控制帧处理、数据包CRC和白化处理等。 7.射频和调制解调器特性,包括2.200-2.600 GHz频段,灵敏度-102dBm@125Kbps,输出功率-27dBm到+8dBm。 8.软件灵活配置设备角色,包括广播角色、中心角色、扫描角色、外围角色等。 9.SDK内置50+软件参考设计源码,如SIG Mesh方案、OTA示例、AoA/AoD精确定位、信标、多连接等。 10.QFN60封装,工作温度范围-40°~ 85°,储存温度范围-65°~ 150°。;应用领域:1.室内精确定位与导航,定位信标。 2.医疗监护定位系统。 3.工业互联,数据采集,工业可穿戴。 4.智能表系统。 5.自行车,电动车,汽车应用。 6.农业,畜牧业温湿度采集。 7.便携式设备如打印机。 8.健身运动设备,个人可穿戴。 9.智能家居。 10.智慧建筑如Mesh照明。 11.家居安全,门锁报警。 12.智慧城市设施。 13.游戏手柄,键盘鼠标等。 14.信标,电视遥控器。

系列型号: ING91682C; ING91683C; ING91680C; ING91680A; ING91682A

代理服务

桃芯科技(INGCHIPS)BLE芯片选型表

BLE芯片产品    BLE 5.0/5.1 SOC   

2023/3/9  - 选型指南 桃芯科技  -  BLE 5.0 SOC,BLE芯片,BLE 5.1 SOC,ING91871B,ING91881B,ING91682C,ING91680C,ING91870C,ING91880C,ING91888A,ING91870CQ,AOA,汽车,AOD,智能电网,BMS,光伏,消费,工业传感器,储能

代理服务

ING91682C BLE5.3 芯片数据手册

2025/11/19  - 数据手册 本资料详细介绍了低功耗蓝牙5.3芯片ING91682C的功能、特性、技术参数和应用场景。ING91682C集成了符合蓝牙5.3协议标准的全特性自有IP,包括Modem、Link Layer Controller和Host,并内置高性能32位RISC MCU、512KB Flash、低功耗PMU和多种外设接口。芯片支持OTA和多种boot选项,适用于超低功耗应用、精确定位、工业互联、农业互联、mesh网络、家居传感等领域。

桃芯科技  -  低功耗蓝牙芯片,ING91682C,精确定位,农业互联,工业互联,MESH 网络,家居传感等,超低功耗应用

代理服务

桃芯科技亮相蓝牙大会|全场景 BLE SoC 方案,赋能车载、HID、医疗与创新

2026-04-28 -  原厂动态 桃芯科技携全系列国产高性能BLE SoC芯片及解决方案参展蓝牙大会,展示ING918X车规系列、ING916X通用系列及ING20XX超低功耗系列三大主力产品线,覆盖车载、HID、医疗等全场景应用。

《软件设计指南》之五-daplink设备与pyocd调试INGCHIPS芯片

2025-12-26 -  设计经验 本文介绍了使用daplink设备与pyocd工具调试INGCHIPS芯片的方法,包括调试接口、仿真器配置、pyocd安装与使用、RTT数据监控、GDB调试服务器搭建及常见问题解决方案。

代理服务

喜报!深圳桐汭科技有限公司荣获深圳市“种子独角兽企业”认证!

2025-11-13 -  原厂动态 深圳桐汭科技有限公司荣获深圳市“种子独角兽企业”认证,凭借在低功耗蓝牙芯片领域的技术创新与高成长性,其车规级/工规级BLE5.0至6.0系列芯片广泛应用于车载、工业、医疗等领域,展现强劲发展势头。

代理服务

为ING916搭建Zephyr开发环境

2024-09-09 -  设计经验 ​对于ING916/ING918 的NoOS 软件包,可以使用 Zephyr OS作为实时内核。SDK v8.4.1 提供了完整的 Controller 接口,可以对接 Zephyr BLE Host 协议栈。这里桃芯科技将为ING916 搭建 Zephyr 开发环境。在这个环境下,开发者可以使用 Zephyr RTOS 及其 BLE 协议栈。

代理服务

桃芯科技欢迎您参加世界智能网联汽车大会,将携低功耗蓝牙车规级SoC芯片及汽车数字车钥匙解决方案参展

2023-09-22 -  原厂动态 桃芯科技是一家致力于车规级,工规级通信芯片的Fabless芯片设计公司。现阶段主要研发基于自主蓝牙协议栈的低功耗BLE5.0、5.1、5.3、5.4 SoC芯片。同时,可提供基于自研BLE芯片的完整参考设计方案。

【应用】基于桃芯科技ING 9168X系列SOC的语音遥控器方案,可在嘈杂环境声中精准识别语音命令

2023-09-08 -  应用方案 语音遥控器是一种通过语音命令控制电视、家庭影院和其他智能家居设备的创新产品。语音遥控器市场具有较大的潜力和广阔的发展前景。桃芯科技对此推出了完整的语音遥控器方案。基于ING 9168X系列soc的语音遥控器方案适配Google 0.4&1.0语音服务协议、小米盒子语音服务等国产协议,可在嘈杂环境声中精准识别语音命令。

【产品】采用QFN32封装的低功耗蓝牙5.3芯片ING91680C,支持AoA和AoD寻向定位

2023-06-27 -  产品 ING91680C是由桃芯科技最新推出的一款低功耗蓝牙5.3芯片。ING91680C集成了INGCHIPS内部的BLE5.3 IP,包括调制解调器,链路层控制器和主机。它还集成了高性能32位带DSP和FPU功能的RISC MCU, 512KB闪存,低功耗PMU,丰富的外设,高性能低功耗BLE射频收发器。发射器输出功率范围为-27dBm至+8dBm。

代理服务

【视频】桃芯科技BLE+UWB+NFC三合一汽车钥匙,完美解决10厘米安全定位

商品及供应商介绍

桃芯科技  -  消费级低功耗蓝牙芯片,BLE SOC,车规级低功耗蓝牙芯片,ING91871B,ING91881B,ING91682C,ING91870C,ING91680C,ING91880C,ING91888A,ING91870CQ,智能水表,智慧畜牧业,工业物联网,AOA,国家电网,医疗设备,边缘计算,AOD,智能家居,消费电子,智慧农业,汽车电子

代理服务

【视频】桃芯BLE SoC电子价签完整解决方案:节点数高达3000个,平均工作电流10ua以内

商品及供应商介绍

桃芯科技  -  BLE SOC,低功耗蓝牙芯片,ING91871B,ING91881B,ING91682A,ING91680A,ING91870C,ING91880C,ING91888A,消费电子

【产品】桃芯科技推出的ING91680A低功耗蓝牙5.3芯片,采用QFN32封装,支持AoA和AoD寻向定位

2023-02-15 -  产品 ING91680A是由桃芯科技最新推出的低功耗蓝牙5.3芯片。ING91680A集成了高性能32位带DSP和FPU功能的RISC MCU,内置512KB Flash、低功耗PMU、各种外设接口,以及高性能低功耗的蓝牙射频。

代理服务

【产品】桃芯科技推出的低功耗蓝牙5.3芯片ING91682A,采用QFN48封装,支持AoA和AoD寻向定位

2023-02-14 -  产品 ING91682A是由桃芯科技最新推出的低功耗蓝牙5.3芯片。ING91682A集成了完全符合低功耗蓝牙5.3协议标准的全特性自有IP并集成了高性能32位带DSP和FPU功能的RISC MCU,内置512KB flash。

代理服务
展开更多

评论

   |   

提交评论

全部评论(0

暂无评论

电子商城

查看更多

品牌:桃芯科技

品类:低功耗蓝牙5.3 SOC

代理店

价格:¥4.7643

现货:90

品牌:芯天下

品类:NOR Flash

代理店

价格:¥8.9003

品牌:桃芯科技

品类:低功耗蓝牙5.1 SOC

代理店

价格:¥8.2143

现货:100

品牌:桃芯科技

品类:低功耗蓝牙5.0 SOC

代理店

价格:¥6.2000

现货:100

品牌:桃芯科技

品类:低功耗蓝牙5.1 SOC

代理店

价格:¥7.5000

现货:100

品牌:桃芯科技

品类:低功耗蓝牙5.0 SOC

代理店

价格:¥8.1968

现货:35

品牌:桃芯科技

品类:低功耗蓝牙5.3 SOC

代理店

价格:¥5.2460

现货:20

品牌:桃芯科技

品类:低功耗蓝牙5.3 SOC

代理店

价格:¥4.9181

现货:13

品牌:桃芯科技

品类:开发板

代理店

价格:¥65.0000

现货:9

品牌:桃芯科技

品类:低功耗蓝牙5.3 SOC

代理店

价格:

现货:

品牌:匠芯创

品类:开发板

代理店

品牌:芯天下

品类:NOR Flash

代理店

价格:

品牌:桃芯科技

品类:低功耗蓝牙5.1 SOC

代理店

价格:

现货:

品牌:桃芯科技

品类:低功耗蓝牙5.0 SOC

代理店

价格:

现货:

品牌:桃芯科技

品类:低功耗蓝牙5.1 SOC

代理店

价格:

现货:

品牌:桃芯科技

品类:低功耗蓝牙5.0 SOC

代理店

价格:

现货:

品牌:桃芯科技

品类:低功耗蓝牙5.3 SOC

代理店

价格:

现货:

品牌:桃芯科技

品类:低功耗蓝牙5.3 SOC

代理店

价格:

现货:

品牌:桃芯科技

品类:开发板

代理店

价格:

现货:

服务市场

查看更多

语音/录音芯片定制

提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。

最小起订量:1pcs 提交需求>

现货市场

查看更多

品牌:RENESAS

品类:MCU

价格:¥43.0886

现货:101

品牌:信芯

品类:32位MCU

价格:¥4.2500

现货:50

品牌:SL POWER

品类:开关电源

价格:¥838.2220

现货:20

品牌:SL POWER

品类:开关电源

价格:¥838.2220

现货:20

品牌:Microchip

品类:MCU

价格:¥9.0000

现货:64,841

品牌:Microchip

品类:MCU

价格:¥6.3000

现货:4,582

品牌:Microchip

品类:MCU

价格:¥8.1000

现货:493

品牌:扬贺扬

品类:闪存控制芯片

价格:¥6.1000

现货:25

品牌:扬贺扬

品类:闪存控制芯片

价格:¥10.1900

现货:20

品牌:扬贺扬

品类:eMMC

价格:¥41.5200

现货:10

品牌:RENESAS

品类:MCU

价格:

现货:

品牌:信芯

品类:32位MCU

价格:

现货:

品牌:SL POWER

品类:开关电源

价格:

现货:

品牌:SL POWER

品类:开关电源

价格:

现货:

品牌:Microchip

品类:MCU

价格:

现货:

品牌:Microchip

品类:MCU

价格:

现货:

品牌:Microchip

品类:MCU

价格:

现货:

品牌:扬贺扬

品类:闪存控制芯片

价格:

现货:

品牌:扬贺扬

品类:闪存控制芯片

价格:

现货:

品牌:扬贺扬

品类:eMMC

价格:

现货:

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

平台客服
扫码关注
关注世强硬创
解锁服务进度实时跟踪和专属客服特权
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面