当前文档版本为 NDK-v0.7.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

I2C Receive Send Dma

1 功能概述

本例程演示如何使用 I2C HAL Driver和DMA HAL Driver 实现dma方式的I2C收发功能。

2 环境准备

  • 硬件设备与线材:

    • PAN107X EVB 核心板底板各两块

    • JLink 仿真器(用于烧录例程程序)

    • USB-TypeC 线两条(用于底板供电和查看串口打印 Log)

    • 杜邦线数根或跳线帽数个(用于连接各个硬件设备)

  • 硬件接线:

    • 将 EVB 核心板插到底板上

    • 使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连

    • 使用杜邦线将 EVB0 底板上的 P13(SDA)、P14(CLK)分别接入EVB1对应相同PAD上

    • 使用杜邦线将 JLink 仿真器的:

      • SWD_CLK 引脚与 EVB 底板的 P00 排针相连

      • SWD_DAT 引脚与 EVB 底板的 P01 排针相连

      • SWD_GND 引脚与 EVB 底板的 GND 排针相连

  • PC 软件:

    • 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率 921600(用于接收串口打印 Log)

3 编译和烧录

例程位置:<PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\i2c_master_dma_receive\keil_107x

PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\i2c_slave_dma_send\keil_107x

双击NDK>\01_SDK\nimble\samples\peripheral\i2c_master_dma_receive\keil_107x目录下Keil Project 文件打开工程进行编译并烧录至EVB0板。

双击NDK>\01_SDK\nimble\samples\peripheral\i2c_slave_dma_send\keil_107x目录下Keil Project 文件打开工程进行编译并烧录至EVB1板。

4 例程演示说明

  1. 先烧录i2c_slave_dma_send hex至EVB1,芯片会通过串口打印初始化 Log,i2c slave进入发送模式,等待i2c master 发送读命令并发送数据,发送完成后在中断回调函数中打印slave DMA callback及发送的数据:

    Try to load HW calibration data.. DONE.
    - Chip Info         : 0x1
    - Chip CP Version   : 255
    - Chip FT Version   : 4
    - Chip MAC Address  : D0000000037D
    - Chip UID          : 7D0300DDF8375603E8
    - Chip Flash UID    : 425031563233391700DDF8375603E878
    - Chip Flash Size   : 512 KB
    
    APP version: 255.255.65535
    slave send start
    slave send stop
    slave DMA callback 
    Flag is I2C_CB_FLAG_DMA
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
    
  2. 烧录i2c_master_dma_receive hex至EVB0,芯片会通过串口打印初始化 Log,i2c master进入接收模式,发送读命令并接收slave发送的数据,在中断回调函数中打印接收到的数据:

    Try to load HW calibration data.. DONE.
    - Chip Info         : 0x1
    - Chip CP Version   : 255
    - Chip FT Version   : 4
    - Chip MAC Address  : D000000000D1
    - Chip UID          : D10000F5F737560347
    - Chip Flash UID    : 425031563233391700F5F73756034778
    - Chip Flash Size   : 512 KB
    
    APP version: 255.255.65535
    master receive start
    master receive stop
    master DMA callback 
    Flag is I2C_CB_FLAG_DMA
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
    

5 RAM/Flash资源使用情况

PAN107x:

FLASH Size:  14.12k
RAM Size:  7.25 k