LN882H

LN882H是一款专为室内短距物联网连接设计的高集成度 IoT Wi-Fi/BLE Combo MCU芯片。

gnkt

该芯片的主要特性如下:

通讯制式上支持802.11b/g/n和蓝牙5.1双模共存;

硬件配置为Coretex M4F,160M主频,内置296KByte RAM,8/16Mbit Flash;

支持高达2000V的静电放电保护,-40度~105度环境温度,以及通过双85测试;

多达20个GPIO口,具备常规ADC、PWM、SDIO、I2C等多种客户接口;

Wi-Fi/BLE满负荷运行后,客户进行Open Mcu开发时,可使用内存空间多达130KB;

封装为5*5 32Pin QFN;

根据文档说明,在没有特殊情况的时候,我们将固定 XTAL_CLOCK = 40Mhz,PLL_CLOCK = 160Mhz;也就是说时钟主频为 160M。

相关文档

开发环境搭建

软件工具安装

正常安装 Keil 即可,推荐使用 keil-MDK5.18 版本,与原厂SDK的开发环境保持一 致,以避免IDE环境带来的额外问题。

注意:keil 版本如果太高的话,在选择 Device 时候可能没有 ARMCM4_FP ,只有 CMSDK_CM4_FP;所以这里建议与原厂保持一致。

将Keil安装目录下的编译执行文件路径 E:\Keil_v5\ARM\ARMCC\bin 加入系统环境变量 path 和用户环境变量 path中

keilpz

从官网下载最新版本 python3,安装完成后将安装路径添加在系统环境变量 path 以及用户环境变量 path 中

pypz2

由于工程内部执行 python 脚本运行的可执行文件名是 python3,所以需要将安装好的 python3 安装目录下的可执行文件python.exe 新拷贝一份并重命名为 python3.exe 即可。

博主这里使用的是 Python 3.9.13,官方推荐最新版没有测试过不知道是由存在问题,如果担心这里可以选择与博主相同的版本。

pyhj

Keil配置

Device选择ARMCM4_FP(Cortex-M4F)

devicexz

Debug配置J-Link调试器(如果不使用 J-Link 可忽略此步骤)

debugsz

使用 JFlash.exe 作为外部 Flash 工具

szflash

Command:..\..\..\tools\JFlash\JFlash.exe

Arguments:-openprj ..\..\..\tools\JFlash\ln882h.jflash -open.\flashimage.bin,0x0 -programverify

注意:如果使用的是官方的 Demo 那么这里默认即可,因为官方实例中已经帮我们配置好了,如果是自己建的示例工程这里 JFlash 的路径一定不要选错了;

ECK板说明

eckbsm

B9(Tx)、B8(Rx):UART0 口,官方实例中 LOG 使用的就是 UART0

A2(Tx)、A3(Rx):UART1,串口烧录口

左边白色为复位按钮、右边白色为 Boot 模式

编译

打开官方 SDK 中的任意示例代码,编译输出如下图,表示编译成功。

by

在 Keil 编译流程中:

  1. 编译前:Keil 调用一个 Python 脚本 (before_build_keil.py),根据指定的配置文件 (flash_partition_cfg.json) 生成分区表头文件 (flash_partition_table.h)。
    • 命令:python3 ......\tools\python_scripts\before_build_keil.py p ..\cfg\flash_partition_cfg.json -o ..\cfg\flash_partition_table.h
  2. 编译后:Keil 调用一个 after-build 脚本,处理编译生成的 .axf 文件:
    • 首先生成 .bin 和 .asm 文件;
    • 然后将 boot.bin 与生成的 .bin 文件拼接合并,填充 image header 格式,最终生成 flashimage.bin。

串口烧录

LN882H 文档仓库中提供了亮牛串口烧录工具,这是一款通过计算机串口对芯片 Flash 进行烧录的专用工具。其优点在于支持一拖多烧录,并集成了烧录后自动复位、连续烧录以及烧录失败报警等功能。为确保顺利使用,第一次使用时强烈建议查看快速使用说明,并采用工厂模式进行烧录。

使用说明

首先打开软件,进入到选择工作模式界面,选择默认的工厂模式进行烧录。

bz1

进入到工厂模式后先选择串口,选择你要烧录的文件,并输入烧录地址,然后选中地址输入框左面 的选中框。最后设置烧录波特率,然后就可以点击开始下载了,具体流程如下图:

bz2

按住 RST 的同时按住 BOOT,然后依次松开 RST 、BOOT 即可进入串口烧录模式

注意:

  1. 烧录文件路径最好不要有中文,如果必须出现中文则不能有特殊字符以及空格。
  2. 由于不同的串口工具对波特率的支持都不一样,请尝试使用多个波特率进行烧录。
  3. 如果提示无法识别芯片信息,请检查芯片是否进入了BOOT状态,通过串口发送 version\r\n 指令给芯片,返回 Mar 14 2021/00:23:32 才正确。

JLink烧录

硬件连接

J-Link 通过 SWD(Serial Wire Debug)接口连接到 LN882H 开发板,通常需要连接以下信号线:

  1. SWDIO(Serial Wire Debug I/O) - 数据传输信号
  2. SWCLK(Serial Wire Clock) - 时钟信号
  3. GND(Ground) - 公共地
  4. VCC(Target Power) - 目标板供电检测(用于 J-Link 识别目标电压)
  5. nRESET(Optional) - 复位信号(可选,用于调试过程中复位芯片)

在 LN882H 中 GPIOA1 为芯片的 SWD,GPIOA4 为芯片的 SCLK。

按照上述配置完成并在 Keil 中设置好后,点击load按钮,keil会自动调用JFlash进行烧录。

如下图,即表示烧录成功。注意:每次jlink烧录前确保芯片进行过复位,可按 EVK 的复位键进行彻底复位。

jlinksl

烧录默认只擦除烧录bin文件大小区域,如希望在烧录前进行整片flash的擦除可 在keil配置的Utilities->Arguments中加入-erasechip参数,如下:

-openprj ..\..\..\tools\JFlash\ln882h.jflash -open.\flashimage.bin,0x0-programverif