You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
黄锦 447f77f76d !180 解决CleanDmaTxdescs中的bug,增加cmsis DSP测试例程,修复udp测试例程bug 3 weeks ago
..
configs !180 解决CleanDmaTxdescs中的bug,增加cmsis DSP测试例程,修复udp测试例程bug 3 weeks ago
figs !173 增加lwip http例程,修改dcdp驱动 2 months ago
inc !152 修改 GPIO 驱动的实现 6 months ago
src !178 v1.4.0 release 20241010 4 weeks ago
Kconfig !84 v1.2.0 master 1 year ago
README.md !157 solve the i2c bug without device 5 months ago
main.c !169 部分例程更新 3 months ago
makefile !159 完善测试例子,重构mmu 5 months ago
sdkconfig !180 解决CleanDmaTxdescs中的bug,增加cmsis DSP测试例程,修复udp测试例程bug 3 weeks ago
sdkconfig.h !180 解决CleanDmaTxdescs中的bug,增加cmsis DSP测试例程,修复udp测试例程bug 3 weeks ago

README.md

PIN 测试

1. 例程介绍

<font size="1">介绍例程的用途,使用场景,相关基本概念,描述用户可以使用例程完成哪些工作</font><br />

本例程示范了example中的PIN功能使用:

  • 此例程已在E2000D Demo板,PhytiumPi上完成测试

1.1 GPIO中断触发测试例程 (pin_gpio_intr_example.c)

  • E2000 集成 6 个 GPIO 控制器,提供 96 个 GPIO 信号,支持外部中断功能,每路中断信号没有优先级区分,并产生一个统一的中断报送到全芯片的中断管理模块。在中断管理模块内可针对 GPIO0-5两路中断设置不同的优先级。支持中断单独屏蔽和清除。GPIO0-2 的每位中断单独上报,GPIO3-5的中断由模块内和成一个中断上报
  • 板上的 GPIO 引脚往往被设置了复用功能,使用前需要通过软件编程手册查阅复用设置
  • 现有驱动可以完成对某个 GPIO 初始化、设置中断等操作
  • 本测试中短接两个 GPIO 引脚,一个作为输出,另一个为输入,通过多次改变输出引脚的电平,在输入引脚上触发中断,进行中断处理
  • 本测试的主要目的就是提供外部信号给GPIO引脚,测试引脚是否能正常上报中断以及控制器是否能正常处理中断

1.2 GPIO多路输入中断触发测试 (pin_gpio_multi_input_example.c)

  • 板上的 GPIO 引脚往往被设置了复用功能,使用前需要通过软件编程手册查阅复用设置
  • 本测试中使用两个 GPIO 引脚,都作为输入,中断触发模式设置为低电平触发,将两个输入 GPIO 引脚和板子上的 GDN (接地脚) 短接,中断使用后会 GPIO 中断会被立即触发,进行中断处理
  • 本测试的主要目的是测试多路 GPIO 引脚能够正常上报中断并进行处理

1.3 GPIO寄存器操作测试例程 (pin_gpio_low_level_example.c)

  • 板上的 GPIO 引脚往往被设置了复用功能,使用前需要通过软件编程手册查阅复用设置
  • 本测试中短接两个 GPIO 引脚,一个作为输出,另一个为输入,多次变化输出引脚的电平,判断输入电平是否跟随变化
  • 本测试的主要目的是测试对GPIO相关寄存器直接操作是否能产生对应效果

1.4 GPIO脉冲宽度调制测试例程 (pin_gpio_pwm_example.c)

  • 板上的 GPIO 引脚往往被设置了复用功能,使用前需要通过软件编程手册查阅复用设置
  • 现有驱动可以完成对某个 GPIO 初始化、引脚上下拉、改变输出方向等操作
  • GPIO时钟输出的频率与占空比可以通过用例层算法实现
  • 逻辑分析仪可以实时显示与之相连的GPIO引脚的电压情况
  • 本测试的主要目的是测试通过已有驱动是否能够精准控制GPIO行为,并输出具有实际意义的波形

2. 如何使用例程

<font size="1">描述开发平台准备,使用例程配置,构建和下载镜像的过程</font><br />

本例程需要以下硬件,

  • E2000D Demo 板,PhytiumPi,D2000 Test 板
  • 串口线和串口上位机
  • 逻辑分析仪

2.1 硬件配置方法

<font size="1">哪些硬件平台是支持的,需要哪些外设,例程与开发板哪些IO口相关等(建议附录开发板照片,展示哪些IO口被引出)</font><br />

2.1.1 E2000 D/Q Demo 板

pin_gpio_intr_board

对于GPIO中断触发测试用例(pin_gpio_intr_example)和寄存器操作测试例程

2.1.2 飞腾派

如果是飞腾派,可以使用 40 针引脚中的几个 GPIO,如下图所示,连接了 GPIO 0-0 和 GPIO 4-13, 如下图所示

alt text

2.1.3 D2000 测试板

如果是 D2000 测试板,可以用 SPI 插槽的引脚复用成 GPIO 进行测试,使用左侧排线的最下面脚(SPI0-SO 对应 GPIO 1-A-7)和右侧排线的最上面脚(SPI0-SCK 对应 GPIO 1-A-6)

d2000_gpio_pin

(pin_gpio_low_level_example.c),利用杜邦线短接 GPIO 4-A-11与 GPIO 4-A-12 ,即将上图红色框内的第二排排从右往左数第 4 与第 5 个引脚用杜邦线短接。 pin_gpio_pwm_board 对于GPIO脉冲宽度调制测试(pin_gpio_pwm_example),需要将中断测试中使用到的两个引脚与逻辑分析仪连接。注意,逻辑分析仪需要接地(见红色杜邦线)。

  • 也可以使用其它的逻辑分析仪,比如

nanodla_pwm

2.2 SDK配置方法

<font size="1">依赖哪些驱动、库和第三方组件,如何完成配置(列出需要使能的关键配置项)</font><br />

本例程需要的配置包括,

  • FGPIO组件,用于控制 GPIO 引脚,依赖 USE_GPIO 和 ENABLE_FGPIO

  • SHELL组件, 依赖 USE_LETTER_SHELL

  • 本例子已经提供好如下的编译指令:

    1. make 将目录下的工程进行编译
    2. make clean 将目录下的工程进行清理
    3. make image 将目录下的工程进行编译,并将生成的elf 复制到目标地址
    4. make list_kconfig 当前工程支持哪些配置文件
    5. make load_kconfig LOAD_CONFIG_NAME=<kconfig configuration files> 将预设配置加载至工程中
    6. make menuconfig 配置目录下的参数变量
    7. make backup_kconfig 将目录下的sdkconfig 备份到./configs下

2.3 构建和下载

<font size="1">描述构建、烧录下载镜像的过程,列出相关的命令</font><br />

  • 在host侧完成配置

配置成E2000D,对于其它平台,使用对应的默认配置,如E2000d 32位:

$ make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch32_demo_pin
  • 在host侧完成构建
$ make image
  • host侧设置重启host侧tftp服务器
sudo service tftpd-hpa restart
  • 开发板侧使用bootelf命令跳转
setenv ipaddr 192.168.4.20  
setenv serverip 192.168.4.50 
setenv gatewayip 192.168.4.1 
tftpboot 0x90100000 baremetal.elf
bootelf -p 0x90100000

2.4 输出与实验现象

<font size="1">描述输入输出情况,列出存在哪些输出,对应的输出是什么(建议附录相关现象图片)</font><br />

2.4.1 GPIO中断触发测试

  • 按照 2.1 硬件配置方法 进行连线
pin gpio_intr_example

pin_gpio_intr_result

对于 D2000 测试板

d2000_pin_gpio_intr_result

2.4.2 GPIO多路中断测试

  • 如下图所示, 如果是 E2000 D/Q Demo 板 参考原理图将两路 GPIO 引脚接地,然后输入下列命令

two_input_gpio

  • 如果是飞腾派,可以按照下图连线,分别将 GPIO 4-13 GPIO 4-12 和 GPIO 0-0 接地

firefly_three_gpio

  • 如果是 D2000 测试板,可以按照下面连线,用 SPI 插槽的引脚复用成 GPIO 进行测试,使用左侧排线的最下面脚(SPI0-SO 对应 GPIO 1-A-7)和右侧排线的最上面脚(SPI0-SCK 对应 GPIO 1-A-6),都连接板子上的一个 GND 脚

d2000_two_gpio

  • 连线完成后输入下面的命令
pin gpio_multi_input_example
  • 对于 E2000 D/Q Demo 板

two_gpio_intr_result

  • 对于飞腾派

firefly_two_gpio_intr_result

  • 对于 D2000 测试板

d2000_two_gpio_intr_result

2.4.3 GPIO寄存器操作测试

  • 按照 2.1 硬件配置方法 进行连线
pin gpio_low_level_example

pin_gpio_low_level_result

2.4.4 GPIO脉冲宽度调制测试

pin gpio_pwm_example

打开逻辑分析仪配套的logic软件,提前观测波形 进入 shell 界面,输入上述指令,会显示如下内容: pin_gpio_pwm_result_1 观察逻辑分析仪结果是否出现如下波形: pin_gpio_pwm_result_2

3. 如何解决问题

<font size="1">主要记录使用例程中可能会遇到的问题,给出相应的解决方案</font><br />

4. 修改历史记录

<font size="1">记录例程的重大修改记录,标明修改发生的版本号 </font><br />

  • v1.0.0 首次合入
  • v1.1.1 支持 D2000
  • v1.3.0 删除 D2000支持
  • v1.3.1 适配重构后的 GPIO 驱动接口, 支持 D2000 测试板