一、概述
FR306x-C系列芯片是低功耗,高安全性的高性能无线MCU,内置了蓝牙BR/EDR/BLE的收发器和控制器,以及CAN FD总线控制器,适合应用在工业和汽车电子等广泛领域。 符合AEC-Q100-Grade2车规级别。FR306x-C符合蓝牙V5.3标准,支持BR 1Mbps GFSK, EDR 2Mbps π/4-DQPSK, 3Mbps 8DPSK; BLE 1M/2Mbps GFSK, 125K/500K多种模式,支持单独打开和关闭不同的模式,支持蓝牙多主多从多连接。FR306x-C支持AUTOSAR软件框架;FR306x-C内置最多2个独立的CAN FD控制器,向下兼容CAN2.0 A/B部分。
二、系统框图
![系统框图.png 系统框图.png](https://static.assets-stash.eet-china.com/forum/202502/12/173937183739780225037hmmttgim6wm36z6k.png)
三、芯片架构与资源
①、FR3068E-C芯片架构属于双核架构, 包括一颗独立的蓝牙核做蓝牙通讯以 及另外一颗主核MCU,双核之间通过串口做HCI通讯,蓝牙核一般不对外开放,用户无需关注。
②、内置128KB CRAM+512KB SRAM,2MB flash(根据芯片型号有不同大小配置) 。
③、需外挂24MHZ晶体时钟,系统主频最高可倍频至156MHz。
④、工作温度为工业级-40°~105°。
⑤、有57个可编程IO(不同型号/封装会有所不同)。
⑥、支持两路CAN总线,支持CAN FD。
⑦、支持丰富的外设总线如:SPI/UART/USB等。
⑧、支持双模蓝牙BLE+BT/EDR。
![芯片架构与资源.png 芯片架构与资源.png](https://static.assets-stash.eet-china.com/forum/202502/12/173937247186286230111zlzz3cclgs67ntg7.png)
四、工程环境构建说明
官方文档指明使用MDK5.36以上版本,这里笔者使用的MDK5.38版本,开发板采用的MC1(CM33)处理器是一个32位处理器,具有低中断延迟和低调试成本的特点。处理器基于ARMv8架构,支持硬件浮点运算(FPU)。适用于需要高性能和低功耗的微控制器市场产品。关于该开发板的详细资料,可通过https://www.freqchip.com/sjds获取。开发板基于MDK的pack支持包并没有提供,在Keil的Device中选择“ARMCM33_DSP_FP”,ARM Compiler选择“Use default compiler version 6”,工程中FR306x采用分散加载机制实现。通过“fr30xxc_sdk__202411”中的“lvgl_demo”工程可知。
![分散加载.png 分散加载.png](https://static.assets-stash.eet-china.com/forum/202502/12/173937393372174232533qcyo6s92pb3q492y.png)
笔者这里也是参考了qinyunti坛友移植的micropython工程,其分散加载sct文件如下:
<pre>; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08002000 0x000FE000 { ; load region size_region
ER_IROM1 0x08002000 0x000FE000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$Sections)
.ANY (+RO)
.ANY (+XO)
}
RW_RAM_CODE_FRONT 0x1FFE0000 {
*(ram_code_front)
}
RW_RAM_CODE +0 {
*(ram_code)
rpmsg.o
rpmsg_lite.o
rpmsg_queue.o
llist.o
virtqueue.o
rpmsg_env_freertos.o
rpmsg_platform.o
list.o
queue.o
tasks.o
timers.o
port.o
portasm.o
heap_6.o
ke_mem.o
audio_decoder.o
audio_encoder.o
audio_hw.o
audio_scene.o
algorithm.o
codec.o
resample.o
*(dram_sec)
}
RW_IRAM1 0x20000000 0x00028d00 { ; RW data
.ANY (+RW +ZI)
}
RW_PSRAM 0x30000000 UNINIT 0x10000000 { ; RW data
.ANY (NoInit)
} ScatterAssert((ImageLength(RW_RAM_CODE_FRONT)+ImageLength(RW_RAM_CODE)) <= 0x20000)
}</pre>
复制代码五、烧录说明
由于开发板的引脚资源复用,使用SWD方式下载程序不可取,需要借助官方提供的“FreqChip_Download”工具进行串口烧录,这里需要注意将板上的PB5-RX、PB4-TX通过跳线帽连接。工程编译后,会经过"..\..\..\..\components\tools\keil\post_process.bat" "@L" "#L" "$J"指定脚本文件的处理,生成对应的bin文件,具体的烧录方法,《FR306x开发环境说明书V1.1.pdf》文档中有详细的介绍,这里就不再赘述。
![烧录中....png 烧录中....png](https://static.assets-stash.eet-china.com/forum/202502/13/173937764044972002720fmvym1xkw4m4j5mk.png)
![烧录程序.png 烧录程序.png](https://static.assets-stash.eet-china.com/forum/202502/13/173937766158968002741ap4lprl0nrguuri4.png)
正如上面图示,更新程序就采用“FreqChip_Download V1.3.8.7”工具串口下载。
六、音频文件准备
我们将自备的mp3文件放在一个不含中文字符,且路径相对比较简短的文件夹中,打开“Windows PowerShell”终端,切换到音频文件所在的路径,通过指令调用ffmpeg工具,进行音频文件格式的转换。这里笔者采用了3首歌,转换指令如下:
<pre>ffmpeg/ffmpeg.exe -i horizon.mp3 -ac 1 -ar 16000 -acodec pcm_s16le -ss 00:00:00 -t 00:02:00 horizon.wav
ffmpeg/ffmpeg.exe -i onlyloveyou.mp3 -ac 1 -ar 16000 -acodec pcm_s16le -ss 00:00:00 -t 00:01:30 onlyloveyou.wav
ffmpeg/ffmpeg.exe -i qifengle.mp3 -ac 1 -ar 16000 -acodec pcm_s16le -ss 00:00:00 -t 00:01:00 qifengle.wav</pre>
复制代码![mp3转wav音频1.png mp3转wav音频1.png](https://static.assets-stash.eet-china.com/forum/202502/13/173937829375662003813rj0047ee5ynb0b41.png)
![mp3转wav音频2.png mp3转wav音频2.png](https://static.assets-stash.eet-china.com/forum/202502/13/173937831174254003831q11x4qimzu1xz1zx.png)
![mp3转wav音频3.png mp3转wav音频3.png](https://static.assets-stash.eet-china.com/forum/202502/13/173937833974860003859uacb1oeqezoa8mea.png)
以上完成了音频文件格式的转化,然后使用“rxfile+xx文件名”,并通过SecureCRT的串口传输“发送Xmodem(N)”端口进行音频文件的拷贝。
![拷贝wav音频文件.png 拷贝wav音频文件.png](https://static.assets-stash.eet-china.com/forum/202502/13/173937878387111004623bc6kv2cwqsithllo.png)
虽然串口传输速度比较慢,但比较稳定,内存可通过free指令查询,存储空间大概14MB左右,完全够存这3个wav音频文件。
六、Shell与MicroPython下的音频播放演示
![IMG_20250212_161227.jpg IMG_20250212_161227.jpg](https://static.assets-stash.eet-china.com/forum/202502/13/17393794526583005732gv778aihdd7h4zca.jpg)
在SecureCRT工具中,通过指令可控制各本地音频文件的播放、停止、静音、音量大小设定,详情见哔哩哔哩链接:
富芮坤FR3068x-C基于REPL MicroPython实现本地音乐播放