打造一个通用性MCU架构,支持CX32/AT32/NRF51/NRF52等。 OS支持RTX4/RTX5/FreeRtos。 采用VsCode+GCC组合,VsCode+KEIL5,超强开发方式。 QQ群:524408033

LiSun

打造一个通用性MCU架构,支持CX32/AT32/NRF51/NRF52等。 OS支持RTX4/RTX5/FreeRtos。 采用VsCode+GCC组合,VsCode+KEIL5,超强开发方式。 QQ群:524408033

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、架构说明

模式描述优势
主从一体1. 多通道通信 2. 动态调频1对7
框架功能1. RTX5 2.功能分层架构清晰,集成部分功能方便开发
USB_HID鼠标-键盘-磁滚轮-自定义通道代码健壮易懂
附带功能BootLoader(usb)-

在这里插入图片描述

【注意】 CMSIS版本不能低于5.8.0,否则程序将不正常运行。    ARM.CMSIS.5.8.0.pack
        5.8.0更新了 [GCC LinkerDescription,GCC 汇编程序启动] [为工具链 ARM、GCC 添加了 ARMv8-M 堆栈密封(到链接器、启动)]

[项目结构]
+---hand_write_board
|    +---bsp
|    |   \---nrf52                     [BSP层公共接口函数]
|    +---chip
|    |   +---nRF_Drivers               [芯片驱动函数]
|    |   +---nRF_Libraries             [芯片支持函数]
|    |   \---nRF5_SDK_17.0.2_d674dde   [芯片SDK版本]
|    +---lib
|    |   \---queue                     [消息队列]
|    +---os
|    |   \---rtx5                      [OS层公共接口函数]
|    +---platform
|    |   +---log                       [日记函数]
|    |   \---SEGGER_RTT                [RTT库]
|    +---protocol
|    |   \---usb_comm_ugee             [USB手写串口协议]
|    +---sys
|    |   \---nrf52                     [SYS层公共接口函数]
|    +---main_HandWriteBoard           [项目业务层]
|    │      sdk_config.h               (NRF功能配置)
|    │      business_gpio.h            (引脚定义)
|    │      business_function.h        (功能定义/业务宏)
|    │      app_main.c                 (主业务功能)
|    │      biz_flash.c                (Flash信息存储和读取)
|    +---public                        [项目公共层]
|    │      biz_esb.c                  (2.4G功能函数:发送端/接收端)
|    │      biz_fds.c                  (重新封装fds函数)
|    +---biz_usb                       [USB业务层函数]
|    |   \---biz_usb.c                 (USB初始化/通道发送/USB信息)
|    +---public_usb                    [USB公共层函数]
|    |   +---app_usbd_string_desc.c    (USB字符串描述符/当前系统类型)
|    |   \---app_usbd_core.c           (USB设备高级库核心内部模块/内部变量、辅助宏和函数)

[FLASH结构]
nRF52820 256 KB Flash, 32 KB RAM
          0x40000       0x8000

使用boot时:keil需要在Options-c/c++-Define  添加宏定义 MBR_PRESENT

boot文件:..\nrf52_boot\out\nrf52_boot_usb_dfu.hex

  名称        地址                           大小(字节)
|----------------------------------------------------------
MBR:         0x0000                         0x1000       (mbr_nrf52_2.4.1_mbr.hex)
APP:        0x1000                         0x40000 - boot_size - RSV1_SIZE - RSV2_SIZE - mbr_size = 0x31000
Boot:        0x32000                        0xC000
RSV1:        0x3E000                        0x1000       (settings.hex)--Bootloader setting
RSV2:        0x3F000                        0x1000       (settings.hex)--MBR parameters
END:         0x40000

|-----------------------------------------------------------

boot+app addr: 0x0

fds addr:0x31000 - 0x0C00 = 0x30400
fds_size: 3 * 0x0400 = 0x0C00

注:使用BootLoader时,没有烧录【mbr_nrf52_2.4.1_mbr.hex】就会跳转失败,程序跑飞。


如何进入BootLoader模式?
1.[Bus Hound]找到设备根节点[USB Composite Device],双击进入。
2. 新窗口选择节点3(Interrupt Out), 设置数据长度123. 在Hex Bytes 输入02 FE, 点击上方[Run按钮]。

如何恢复出厂设置?
1. 同上。
2. 在Hex Bytes 输入02 DD, 点击上方[Run按钮]

[嵌入式方案][nrf52810] ESB(2.4G) 主从一体方案 多通道通信 动态调频

posted on 2022-08-13 11:00  xuejianqiang  阅读(117)  评论(0编辑  收藏  举报
打造一个通用性MCU架构,支持CX32/AT32/NRF51/NRF52等。 OS支持RTX4/RTX5/FreeRtos。 采用VsCode+GCC组合,VsCode+KEIL5,超强开发方式。 QQ群:524408033