0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

蓝牙开发零门槛之十四-Cube

海阔天空的专栏 来源:桃芯科技 作者:桃芯科技 2023-11-07 18:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

SDK 新工具 Cube 是一个图形化的初始化代码生成器,可为桃芯各种芯片型号生成 C 代码。

关键特性

这是一个交互式工具,辅助开发者正确配置芯片。各种特性总结如下:

  • 支持各种芯片型号
  • 以最直观的方式完成外设和时钟树配置
  • 丰富、易用的图形界面
    • 启发式、交互式设计
    • 无需文档,使用方法一目了然
  • 自动检查,减少错误
  • 管脚冲突
  • 参数范围
  • 低调
  • 生成的代码汇总于一个文件
  • 由开发者决定是否使用它生成的代码
  • 不会搞乱开发者的工程设置
  • 极快的运行速度
  • 所有的检查都是实时进行
  • 对于运行环境要求低
  • 与其它基于 Eclipse 的工具相比,效率不可同日而语
  • 生成的代码更高效
  • 对于某些外设直接输出“计算”后的代码
  • 比调用驱动程序代码更短、速度更快

在 Wizard 里右键单击一个项目,从快捷菜单中选择“Edit with Cube…”即可打开 Cube。Cube 生成的代码保存在项目里的 /data/setup_soc.cgen 文件内,Cube 本身的数据保存在 /data/cube_SERIES.dat 文件内,这里 SERIES 为芯片系列。

要使用 Cube 生成的代码,只需 3 步:

  1. main.c 里包含 ../data/setup_soc.cgen
    这行代码需要在 #include "ingsoc.h" 之后。
  2. setup_peripheral 函数里调用 cube_setup_peripherals()
  3. app_main 函数的开头调用 cube_soc_init()

下面通过几个具体的场景介绍 Cube 的使用:

使用场景 1. 硬件工程师设计天线阵

比如现在要用 ING91880C 设计一块天线阵,天线开关连哪个 IO 脚?新建一个 ING9188xx 的工程,打开 Cube,将型号选为 ING91880C,点击 Antenna,再点击菜单 Configure,弹出天线开关编辑窗口。点击 Enable All,可以用做天线开关的 IO 脚一目了然:

图片

使用场景 2. 硬件工程师设计LED指示灯

比如现在要用 ING91680A 设计一个产品,其中用到 LED 指示灯,打算使用 PWM 控制闪烁。可以使用哪个 IO 脚?新建一个 ING9168xx 的工程,打开 Cube,将型号选为 ING91680A,点击 PWM,再点击菜单 Configure,弹出 PWM 编辑窗口。马上就可以直观检查哪些管脚可用作PWM 输出:

图片

假设硬件工程师选定使用 IO 16 控制 LED 灯,通知软件工程师。

使用场景 3.软件工程师实现 LED 灯的 PWM 控制

软件工程师继续使用 Cube 编辑 PWM。假设软件工程师要使 LED 的初始状态为 1 秒闪烁一次,占用比 50%。在 Easy 标签下,分别输入频率 1Hz,占空比 50%,—— 输入数据时回车生效。这时,从验证窗口内马上可以看到存在两处错误:PWM 的 PERA、HIGH 两个数据都超出范围了, 它们最多支持 20 个比特,即最大为 0xfffff。

图片

由于 PWM 分频比例有限,如果降低 PWM 的工作频率,就能获得更低频的输出。切换到时钟树页面,我们发现 PWM 有两种时钟可选:一为从 Slow Clk 分频,一为使用 CLK 32k。让我们直接使用 CLK 32k。

图片

回到 PWM 编辑窗口 Channel 0 的 Easy 标签,这时,验证窗口提示一切正常:

图片

编译下载程序,连接必要的硬件,即可看到 LED 灯在按要求闪烁。

打开 setup_soc.cgen 文件,可看到最末尾几行的内容为:

// dump PINCTRL registers
APB_PINCTRL- >OUT_CTRL[4] = 0x00001522; // 0x00001547

这是 Cube 对 PINCTRL_SetPadMux(16, IO_SOURCE_PWM0_A) 做了“计算”后得出的结果, 显然比在芯片里执行 PINCTRL_SetPadMux(16, IO_SOURCE_PWM0_A) 效率更高。这对于 ING916XX 系列为重要:因为 PINCTRL 配置需要查一张复杂的表格,(https://github.com/ingchips/ING918XX_SDK_SOURCE/blob/07ffc140a28b86dfeda95cc9ea1f560e2b5adeae/src/FWlib/peripheral_pinctrl.c#L265)每次睡眠醒来都需要重新配置, 所以使用 Cube 既可以减小程序体积,对于降低功耗也有一定好处。

使用场景 4.软件工程师借助 TIMER 实现 LED 灯的 PWM 控制

由于某些原因,PWM 模块另有它用,软件工程师决定改用硬件定时器输出 PWM 波形控制 LED 灯。查阅 PinCtrl 模块的文档可知, 万幸 ,IO 16 可用于硬件定时器 PWM 波形的 A 路输出。

选用 TIMER2 的 Channel 0 输出 PWM 信号,从编辑窗口发现计数器长度仅用 16 比特,切换到时钟树窗口, 将 TIMER2 的时钟切换为 32k。这样,两个计数数各配为 16000 就可以输出 1 秒为周期,占空比 50% 的 PWM 波形了:

图片

这个编辑窗口还出现了一个“陌生”的 “Park Value”,将鼠标移动到 “?” 上可以了解其功能。编译下载程序,即可看到 LED 灯在按要求闪烁。

文章来源 桃芯科技

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    244

    文章

    24724

    浏览量

    692503
  • 芯片
    +关注

    关注

    463

    文章

    54428

    浏览量

    469354
  • 蓝牙
    +关注

    关注

    119

    文章

    6391

    浏览量

    179322
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5894

    浏览量

    226594
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    门槛踏入以太网的世界,行走物联网江湖

    了解以太网协议,使用MCU的一个三线串口即可与通讯,大大降低了以太网的门槛,无需牛B的程序员也能玩转以太网,节省了企业研发投入。
    发表于 03-05 17:21 8363次阅读

    每个人都可以有个收音机 0门槛搞定收音机电路

    ` 本帖最后由 eehome 于 2013-1-5 09:47 编辑 每个人都可以有个收音机0门槛搞定收音机电路 强大的收音机电路及其资料基于小51DIY乐在其中收音机乐趣无穷`
    发表于 08-18 09:49

    在FireFly RK3288开发板上运行Flint OS是怎样的体验?

    Flint OS是一款更快速,更简单,更高效的云驱动操作系统,从主流x86平台电脑设备到超轻量单板机物联网设备均可完美适配,是一款可塑性极强的“门槛”操作系统。而FireFly RK3288开发
    发表于 03-08 17:55

    STM32H7打破CoreMark2000分门槛,喜欢STM32的嵌友可以上手了

    STM32H7打破CoreMark 2000分门槛,喜欢STM32的嵌友可以上手了!意法半导体发布全新微控制器STM32H7。该新产品是业界性能最高的Arm Cortex-M通用MCU,集强劲的双
    发表于 04-23 15:22

    机智云边缘操作管理系统及边缘服务器满足企业全球化需求

    机智云自助开发平台,作为一个门槛、超低代码的iot开发平台,通过傻瓜化的自助工具、在线可视化开发环境、图形化
    的头像 发表于 09-30 16:06 3298次阅读

    采用百度飞桨EasyDL完成指定目标识别

    EasyDL从2017年11月中旬起,在国内率先推出针对AI算法基础或者追求高效率开发的企业用户的门槛AI开发平台,提供从数据采集、标注
    的头像 发表于 08-14 10:30 3648次阅读

    4G气象站的设计与实现

    ShineBlink 是一款门槛开发环境、低代码的万能物联网智能硬件开发
    的头像 发表于 08-27 11:17 1570次阅读

    低代码快速开发智能产品新系统

    联网系统。作为一个门槛、超低代码的自助开发平台,通过傻瓜化的自助工具、在线可视化开发环境、图形化开发界面、完善的SDK与API服务能力,最
    的头像 发表于 09-09 14:32 1179次阅读
    低代码快速<b class='flag-5'>开发</b>智能产品新系统

    标普云DeepSeek一体机发布:门槛部署企业DeepSeek

    标普云DeepSeek一体机重磅发布:开箱即用,门槛快速部署企业自己的DeepSeek 在AI技术加速渗透千行百业的今天,企业如何既保障数据安全,又快速落地智能化应用? 2024年2月14日,标普
    的头像 发表于 02-17 16:49 1299次阅读

    运动控制模块:Delta机械手柔性上下料开发门槛

    正运动运动控制模块结合第三方视觉实现Delta机械手柔性上下料应用开发
    的头像 发表于 05-23 10:29 907次阅读
    运动控制模块:Delta机械手柔性上下料<b class='flag-5'>开发</b><b class='flag-5'>零</b><b class='flag-5'>门槛</b>!

    XMOS XU316 HiFi解码器免开发方案:门槛,1天极速量产!

    HiFi解码器的需求与痛点在高端音频设备市场,USBHiFi解码器对音质、延迟和接口兼容性要求极高。然而,传统方案依赖复杂的多核架构开发,技术门槛高、周期长,导致产品上市缓慢。飞腾云音频解决方案推出
    的头像 发表于 07-17 14:09 4204次阅读
    XMOS XU316 HiFi解码器免<b class='flag-5'>开发</b>方案:<b class='flag-5'>零</b><b class='flag-5'>门槛</b>,1天极速量产!

    手把手教你AT指令APN设置:专网连接门槛

    无论你的技术背景如何,本教程都将以手把手的方式,拆解AT指令APN设置的全流程。专网连接不再是门槛,即刻开启自主配置之旅! APN是设备连接到运营商网络的“身份证” ——当设备插入SIM卡并注册到
    的头像 发表于 09-04 14:40 1379次阅读
    手把手教你AT指令APN设置:专网连接<b class='flag-5'>零</b><b class='flag-5'>门槛</b>!

    一招破解音频硬件困局:Air8000参考设计让开发门槛

    音频产品开发成本高、周期长?Air8000参考设计以模块化思路简化硬件开发,预验证的电路方案与丰富的扩展接口,让开发者摆脱技术壁垒,轻松实现从概念到实物的跨越。 Air8000系列工业引擎通过4G
    的头像 发表于 09-04 15:17 1174次阅读
    一招破解音频硬件困局:Air8000参考设计让<b class='flag-5'>开发</b><b class='flag-5'>零</b><b class='flag-5'>门槛</b>

    边缘计算网关打破设备孤岛,让产线智能升级“门槛

    在汽车部件加工厂的生产车间里,各类PLC、CNC、工业机器人、传感器、仪器仪表等数十种设备各自为战,数据无法互通导致设备调试耗时较长,出现故障排查时间也长,非计划停机损失高。这是传统制造企业数字化
    的头像 发表于 01-04 11:30 337次阅读
    边缘计算网关打破设备孤岛,让产线智能升级“<b class='flag-5'>零</b><b class='flag-5'>门槛</b>”

    百度智能云推出全球首款手机龙虾应用

    昨天,百度智能云发布了一款即开即用的部署服务DuClaw。目前,DuClaw网页端服务已上线,能够实现门槛“养虾”。DuClaw来了!门槛
    的头像 发表于 03-13 11:38 579次阅读