查看: 1251|回复: 3

[原创] 逐飞科技LPC55S69_IOT小板评测之NB联网交互篇

[复制链接]
  • TA的每日心情
    开心
    2020-12-17 09:04
  • 签到天数: 346 天

    [LV.8]以坛为家I

    19

    主题

    94

    帖子

    3

    金牌会员

    Rank: 6Rank: 6

    积分
    1361
    最后登录
    2024-1-15
    发表于 2020-10-24 23:25:33 | 显示全部楼层 |阅读模式
    本帖最后由 一代睡神的崛起 于 2020-10-24 23:27 编辑

      前些日子在中移哪里申请了一个ML302的Cat1模组,但是呢苦于没有4G卡,因此项目没来得及进展,后续有了4G卡再来给大家发布测评感想,本次呢还是用之前的骗术(ME3616高新兴IOT模组)来博观大家眼球,因为没有逐飞板子的原理图对很多引脚不是特别清楚,所以跟大家说声抱歉。
    一、串口交互机制的整定
      Cat1的诞生把IOT模组很大的给压了下去,在很多应用场景中无论从性能还是性价比来说都远远胜过NB,但是从轻量的数据传输中NB还是比较有应用场景的。首先,在LPC55S69上新建立一个串口,这里选用的是UART0,修改传输协议,这里笔者用的FreeRTOS操作系统来控制的。
    1. #define DEMO_USART USART0
    2. #define DEMO_USART_CLK_SRC kCLOCK_Flexcomm0
    3. #define DEMO_USART_CLK_FREQ CLOCK_GetFlexCommClkFreq(0U)
    4. #define DEMO_USART_IRQHandler FLEXCOMM0_IRQHandler
    5. #define DEMO_USART_IRQn FLEXCOMM0_IRQn
    6. /* Task priorities. */
    7. #define uart_task_PRIORITY (configMAX_PRIORITIES - 1)
    8. #define USART_NVIC_PRIO 5

    9. struct rtos_usart_config usart_config = {
    10.     .baudrate    = 115200,
    11.     .parity      = kUSART_ParityDisabled,
    12.     .stopbits    = kUSART_OneStopBit,
    13.     .buffer      = background_buffer,
    14.     .buffer_size = sizeof(background_buffer),
    15. };

    16. void Uart_Init(void)
    17. {
    18.     size_t n            = 0;
    19.     usart_config.srcclk = BOARD_DEBUG_UART_CLK_FREQ;
    20.     usart_config.base   = DEMO_USART;
    21.     NVIC_SetPriority(DEMO_USART_IRQn, USART_NVIC_PRIO);  
    22.           USART_RTOS_Init(&handle, &t_handle, &usart_config);        
    23. }
    复制代码
    至于端口复用也很简单,查询数据手册,发现P0_29,P0_30在功能复用模式1下就是对应的发射与接收引脚,于是修改端口复用属性。
    1. void BOARD_InitPins(void)
    2. {
    3.     /* Enables the clock for the I/O controller.: Enable Clock. */
    4.     CLOCK_EnableClock(kCLOCK_Iocon);

    5.         
    6.                 const uint32_t port0_pin29_config = (/* Pin is configured as FC7_RXD_SDA_MOSI_DATA */
    7.                                          IOCON_PIO_FUNC1 |
    8.                                          /* No addition pin function */
    9.                                          IOCON_PIO_MODE_INACT |
    10.                                          /* Standard mode, output slew rate control is enabled */
    11.                                          IOCON_PIO_SLEW_STANDARD |
    12.                                          /* Input function is not inverted */
    13.                                          IOCON_PIO_INV_DI |
    14.                                          /* Enables digital function */
    15.                                          IOCON_PIO_DIGITAL_EN |
    16.                                          /* Open drain is disabled */
    17.                                          IOCON_PIO_OPENDRAIN_DI);
    18.     /* PORT0 PIN29 (coords: 92) is configured as FC7_RXD_SDA_MOSI_DATA */
    19.     IOCON_PinMuxSet(IOCON, 0U, 29U, port0_pin29_config);        
    20.                
    21.     const uint32_t port0_pin30_config = (/* Pin is configured as FC7_TXD_SCL_MISO_WS */
    22.                                          IOCON_PIO_FUNC1 |
    23.                                          /* No addition pin function */
    24.                                          IOCON_PIO_MODE_INACT |
    25.                                          /* Standard mode, output slew rate control is enabled */
    26.                                          IOCON_PIO_SLEW_STANDARD |
    27.                                          /* Input function is not inverted */
    28.                                          IOCON_PIO_INV_DI |
    29.                                          /* Enables digital function */
    30.                                          IOCON_PIO_DIGITAL_EN |
    31.                                          /* Open drain is disabled */
    32.                                          IOCON_PIO_OPENDRAIN_DI);
    33.     /* PORT0 PIN30 (coords: 94) is configured as FC7_TXD_SCL_MISO_WS */
    34.     IOCON_PinMuxSet(IOCON, 0U, 30U, port0_pin30_config);
    35. }
    复制代码
    这样子LPC端的串口传输就设置完成了,然后在回过头来看看传感器端的设置。


    二、心率传感、地磁传感的采集
      传感器选用ROHM的心率传感器(bh1790glc)和地磁传感器(bm1422agmv)展开需求开发的。首先我们了解到这两个sensor都是基于IIC通信的,因此复用的端口为I2C1,I2C2,具体代码初始化可以看笔者上个帖子,按葫芦画瓢即可。因为时间比较匆忙,来不及设计许多需求,只是把传感器的功能简单的实现了而已。如果后续还有时间可以找一个盟友写一个手机APP来对接设备。有人建议把数据通过wifi模块儿发送到云平台,后来我想了一下,觉得没有必要,因为使用定位不一样的,谁都是在时刻关注着自己的心率数据,总不可能天天背着个wifi传递数据然后再去后台查看吧,显然这是不符合逻辑的,所以我放弃了这个参考思路。最简单的思路就是APP端写个蓝牙数据交互端,与设备进行数据交互显示,从而达到在APP端时刻关注或者再由APP推送到后台,从而实现远程数据的查看。
    2.jpg
    三、MQTT或CoAP协议的沟通使能
      ME3616是基于opencpu来开发的,本次选用的开发工具为VS CODE,编译链选用的GUN-GCC。根据官网的demo程序进行了修改移植,首先来看一下ME3616的外观结构。

    LPC55S69通过传感器采集到的数据再利用MQTT协议传输到MQTT服务器,再推送到阿里云平台就实现了我们后台对数据的报备。MQTT服务器是我自己用MQTTFX利用局域网搭建的,能进行数据的订阅与推送,至于相关代码我放到附件里面欢迎查阅。以下就是推送过来的消息和阿里云平台上面的数据更新,MQTT服务器是每5分钟推送一次有效数据,阿里云则是收到推送数据后进行实时更新显示。这里因为涉及到不是NXP的知识,所以保留源码上传的可能性,这届观看结果吧。


      这个评测也是根据笔者之前参加的一个竞赛做的主控的改变,其他的基本上都是现成的,由于阿里云试用到期没有续订,因此盗用之前的图,哈哈。本来我也想拿个OV2640和一个触摸屏来做一个视频传输的,但是苦于不知道端口,因此也被搁置了,下一章节看看有没有什么新发现,如果没有,我就给大家演示一下TrustZone、PowerDSP功能,谢谢大家!


    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    836

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3967
    最后登录
    2024-4-16
    发表于 2020-10-25 13:05:01 | 显示全部楼层
    睡神流p
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2023-9-6 15:15
  • 签到天数: 211 天

    [LV.7]常住居民III

    34

    主题

    805

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2033
    最后登录
    2024-3-21
    发表于 2020-10-26 09:59:08 | 显示全部楼层
    历害哇!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-11-4 13:30
  • 签到天数: 47 天

    [LV.5]常住居民I

    3

    主题

    167

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    379
    最后登录
    2024-4-16
    发表于 2020-10-26 10:49:39 | 显示全部楼层
    支持
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-19 23:27 , Processed in 0.123611 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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