查看: 1331|回复: 3

[原创] 【LPC55S69移植RT-Thread】第五篇 驱动测试3--SPI、PWM、ADC测试

[复制链接]
  • TA的每日心情
    无聊
    2024-3-24 22:21
  • 签到天数: 54 天

    [LV.5]常住居民I

    8

    主题

    126

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    460
    最后登录
    2024-4-18
    发表于 2023-2-26 15:36:14 | 显示全部楼层 |阅读模式
    准备
    env安装和使用参考RTT官方文档。
    MCUXpresso安装和使用参考NXP官方文档。
    SPI、ADC、PWM配置
    env配置
    打开env,跳转到bsp\lpc55sxx\lpc55s69_nxp_evk目录中,然后输入命令menuconfig就会出现配置界面了,如下图:
    1.env.png
    进入Hardware Drivers Config-> On-chip Peripheral Drivers,选中Enable SPI、Enable ADC Channel、Enable PWM。其中PWM选CIMER2 Match1。
    2.select.png
    然后通过env工具更新一下组件和工程
    3.update.png
    MCUXpresso Config Tools配置
    打开工程中的配置文件
    4.xpresso_open.png
    SPI配置:
    5.xpresso_spi.png
    ADC配置:
    6.xpresso_adc.png
    PWM配置:
    7.xpresso_pwm.png
    最后就是keil编译与烧写,最后进行测试。
    PWM测试
    8.pwm1.png
    从图中的操作结合LEDB现象可以知道,pwm驱动还是有问题的,查看驱动代码后发现问题,并进行修复。改完后的测试结果正确如下:
    9.pwm2.png
    抓到的初始波形:
    10.pwm3.png
    修改频率和占空比,pwm set 1 10000 20,结果如下:
    11.pwm4.png
    修改频率和占空比,pwm set 1 100000 20000,结果如下:
    12.pwm5.png
    ADC测试
    打开ADC:
    13.adc1.png
    测量电压分别是1V,1.5V,2V,对应的0x4B3(1203),0x720(1824),0x99A(2458)
    14.adc2.png
    测试结果是没有问题的。
    SPI测试
    测试代码如下


    1. #include "drivers/spi.h"
    2. static int spi_test(int argc, char **argv)
    3. {
    4.     struct rt_spi_device spi8_dev;
    5.     rt_err_t ret = rt_spi_bus_attach_device_cspin(&spi8_dev, "spi8-0", "spi8", GET_PINS(1, 1), NULL);
    6.     if(ret != RT_EOK) {
    7.         rt_kprintf("spi bus attach failed!");
    8.         return -1;
    9.     }
    10.     do {
    11.         struct rt_spi_configuration spi_cfg = {
    12.             .mode = RT_SPI_MODE_0 | RT_SPI_MSB,
    13.             .data_width = 8,
    14.             .max_hz = 8000000,
    15.         };
    16.         ret = rt_spi_configure(&spi8_dev, &spi_cfg);
    17.         if(ret != RT_EOK) {
    18.             rt_kprintf("spi config failed!");
    19.             break;
    20.         }
    21.         const char send_buf[]={"hello"};
    22.         char recv_buf[10]={0};
    23.         int size = rt_spi_transfer(&spi8_dev, send_buf, recv_buf, 5);
    24.         rt_kprintf("spi transfer:%d\n", size);
    25.         rt_kprintf("recv_buf:%s\n", recv_buf);
    26.     }while(0);
    27.    
    28.     rt_device_unregister(&spi8_dev.parent);
    29.     return 0;
    30. }

    31. MSH_CMD_EXPORT(spi_test, spi_test [option]);
    复制代码

    测试结果:
    15.spi1.png

    16.spi2.png
    从波形看出CS引脚有问题,阅读代码找到问题,修改之后的结果如下:

    17.spi3.png

    18.spi4.png
    展开波形后:
    19.spi5.png
    到此所有测试结束。

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-9 17:01
  • 签到天数: 1478 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92619
    最后登录
    2024-4-24
    发表于 2023-2-26 16:52:44 | 显示全部楼层
    支持一下~~~
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-7 14:09
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    2

    主题

    47

    帖子

    0

    注册会员

    Rank: 2

    积分
    188
    最后登录
    2024-1-3
    发表于 2023-6-15 19:33:15 | 显示全部楼层
    大佬,怎么修改的分享一下呀。或者PR上去,让别人少点坑。
    老子今天不上班
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-3-24 22:21
  • 签到天数: 54 天

    [LV.5]常住居民I

    8

    主题

    126

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    460
    最后登录
    2024-4-18
     楼主| 发表于 2023-7-6 20:32:58 | 显示全部楼层
    fly015 发表于 2023-6-15 19:33
    大佬,怎么修改的分享一下呀。或者PR上去,让别人少点坑。

    时间有点久远了,具体改了什么,可以去查看PR记录的
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 06:32 , Processed in 0.137518 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表