NB-IoT
(→Overview) |
(→Notes) |
||
(未显示1个用户的137个中间版本) | |||
第8行: | 第8行: | ||
目前国内的运营商,移动联通支持 900,电信支持 850 | 目前国内的运营商,移动联通支持 900,电信支持 850 | ||
+ | |||
+ | |||
+ | 工信部 2020年1月1日起施行的《增强机器类通信系统频率使用管理规定(暂行)》中明确 eMTC 的频率为: | ||
+ | |||
+ | * eMTC 系统使用无线电频率应当取得无线电频率使用许可 | ||
+ | * 已规划用于 LTE 的 800MHz、900MHz、1800MHz、1900MHz 和 2100MHz 等公众移动通信频段 | ||
+ | * 已规划用于 LTE 的 1447-1467MHz 和 1785-1805MHz 等专用移动通信频段 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == eSIM == | ||
+ | |||
+ | 现在 esim 主要有两种: | ||
+ | |||
+ | * 一种是已经写好号的贴片卡 | ||
+ | * 一种是支持空写的 esim | ||
+ | |||
+ | 网店不提供贴片卡服务 | ||
+ | |||
+ | 2*2 的 esim,可以买回来自己焊接 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == Notes == | ||
+ | |||
+ | * 电平转换芯片被击穿,导致通过串口向 NB-Power 域供电,显示为即使移除 NB-Power 的供电芯片,NB-Power 都有 2.4V 左右的电压,断开串口 TX 和 RX 后,电压才降低为 0.33V 左右! | ||
+ | |||
+ | * Push-Pull | ||
+ | ** 输出脚内部集成一对互补的 MOSFET,当 Q1 导通、Q2 截止时输出高电平;而当 Q1 截止、Q2 导通时输出低电平。 | ||
+ | ** Push-Pull 输出,实际上内部是用了两个晶体管:Top-Transistor 和 Bottom-Transistor。通过开关对应的晶体管,输出对应的电平。Push-pull 即能够漏电流 (sink current),又可以集电流 (source current)。其也许有,也许没有另外一个状态:高阻抗(high impedance)状态。 | ||
+ | ** 除非 Push-pull 需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。 | ||
+ | |||
+ | * Open-Drain | ||
+ | ** 开漏输出,比 push-pull 少 top transistor,只有 bottom transistor。当 bottom transistor 关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-up resistor) | ||
+ | ** 输出为高时,相当于这个脚对地开路,脚上的电压与外接电路有关,输出低时,这个脚对地短路。因为是开路输出,所以可多个脚直接连接在一起形成与的关系 | ||
+ | ** 内部无上拉电阻,当 IO 口使用的时候需要加上上拉电阻,因为如果不加上拉电阻,当内部输出为高电平时候,与电源相连的 MOS 管是截止的,引脚不能通过该截止的 MOS 管与 VCC 导通,引脚上将得不到高电平 | ||
+ | |||
<br> | <br> | ||
第14行: | 第51行: | ||
* M5310-A, 180KB flash, 30KB RAM | * M5310-A, 180KB flash, 30KB RAM | ||
* M5311, 128KB flash, 256KB RAM | * M5311, 128KB flash, 256KB RAM | ||
+ | ** M5311-LV: Band 3, 5, 8 / 2.1V ~ 3.6V | ||
+ | ** M5311-CM: Band 8 / 3V ~ 3.6V | ||
https://blog.csdn.net/u011943791/article/details/80895563 | https://blog.csdn.net/u011943791/article/details/80895563 | ||
[https://wenku.baidu.com/view/27755a86d4bbfd0a79563c1ec5da50e2524dd1a8.html MT2625 SDK Overview] | [https://wenku.baidu.com/view/27755a86d4bbfd0a79563c1ec5da50e2524dd1a8.html MT2625 SDK Overview] | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === 切换方法 === | ||
+ | |||
+ | 启动的时候调用 get_factory_mode() 函数:当该函数返回 0 时,任何情况下模组以 OpenCPU 方式运行。 当该函数返回 1 时,需要用户手动切换: | ||
+ | |||
+ | 第一次把 OpenCPU 下载到新模组上时,模组会默认以 AT 模式运行,不会启动 OpenCPU 模式,此时用户需要在 UART1 手动执行 AT+ATCLOSE,然后按复位键,模组即启动 OpenCPU 模式,并且以后都会保持 OpenCPU 模式。 | ||
+ | |||
+ | 要从 OpenCPU 模式切换回 AT 模式,需要 在 OpenCPU 程序里执行 opencpu_at_open() 函数,此时模组会自动重启,并以 AT 模式运行。 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === Serial === | ||
+ | |||
+ | * UART0 --- DBG_UART, 115200 8N1, Upload firmware port | ||
+ | * UART1 --- AT UART, 115200 8N1 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === Notes === | ||
+ | |||
+ | * 想要进行软件开关机就用 powerkey 引脚,引脚连到按键上,把配置项修改为两个 false 就可以了,然后写个回调函数处理 | ||
+ | * 文件操作的任务,要把任务栈的大小设置到 5k 以上,有文件系统掉电保存个数据还是挺方便的 | ||
+ | * 消息队列满了之后就会 crash,比如 sleep 时间太长就会导致消息队列满 | ||
+ | * subtask 的数量最多只能10个?! | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === GPIO === | ||
+ | |||
+ | * M5311_GPIO0 (Pin 34) --- GPIO19 | ||
+ | * M5311_GPIO1 (Pin 35)--- GPIO20 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == M5311 Tesing == | ||
+ | |||
+ | === 开关机 === | ||
+ | |||
+ | 模组正常开机方式是通过 PWR_ON/OFF 引脚来开机。模组外部供电 VBAT 上电后,将 PWR_ON/OFF 置为低电平,保持 1s 以上 4s 以下(t1)后置高即可开机,开机之后需要保持高电平 | ||
+ | |||
+ | '''注意:'''不可将 PWR_ON/OFF 引脚直接接地 | ||
+ | |||
+ | 模组在开机的状态下,PWR_ON/OFF 引脚在高电平状态拉低 8s(t1)以上并释放,模组关机。关机过程中,模组需要注销网络连接,注销时间与当前网络状态有关,建议 15s(t2)之后再对模组进行断电重启等操作,以确保关机之前保存重要数据。 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === Reset === | ||
+ | |||
+ | M5311 通过拉低 RESET 引脚一定时间实现模组复位。实现复位的低电平持续时间要求如下。建议仅在紧急情况(如模组无响应时)使用 RESET 引脚。此外,模组关机状态下 RESET 引脚是无效的。 | ||
+ | |||
+ | 模块 RESET 引脚,正常拉高,需要 RESET 时,拉低 >100ms,恢复拉高即可 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === 深睡眠唤醒 === | ||
+ | |||
+ | 模组在进入睡眠后,仅能通过 PWR_ON_OFF/WAKEUP_IN 来唤醒模组,唤醒操作时间如下所示: | ||
+ | |||
+ | * PWR_ON/OFF,低电平有效,触发时间 83ms,触发后芯片启动时间 173ms | ||
+ | * WAKEUP_IN,低电平有效,触发时间 53ms,触发后芯片启动时间 143ms | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === 入网流程 === | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT # 查看模块 AT 是否正常工作 | ||
+ | AT+CLPLMN # 清除驻网记录 | ||
+ | +CLPLMN: 0 # 返回 0, 说明已成功清除记 | ||
+ | |||
+ | AT+SM=LOCK # 关闭 deep sleep 模式 | ||
+ | |||
+ | AT+CIMI # 检查 SIM卡是否读卡成功 | ||
+ | 460040427005170 | ||
+ | |||
+ | AT+CESQ # 查看信号强度 | ||
+ | +CESQ: 23,0,255,255,26,47 | ||
+ | AT+CEREG? # EPS network registration status, 确认基站注册状态 0,1 或者 0,5 1-代表本地已注册上, 5-代表漫游已注册 | ||
+ | AT+CGATT? # GPRS/Packet Domain attach or detach。确认 PDP 激活状态,1-代表已激活 0-代表未激活,M5311 自 动入网后自动激活 | ||
+ | |||
+ | AT+CGACT? # Context activation, state = 0: deactivated; =1: activated | ||
+ | +CGACT:<cid>,<state> | ||
+ | </source> | ||
+ | |||
+ | 示例: | ||
+ | |||
+ | <source lang=bash> | ||
+ | *ATREADY: 1 | ||
+ | +CFUN: 1 | ||
+ | +CPIN: READY | ||
+ | +IP: 100.119.194.66 | ||
+ | |||
+ | AT | ||
+ | |||
+ | AT+CLPLMN | ||
+ | +CLPLMN: 0 | ||
+ | |||
+ | AT+CESQ | ||
+ | +CESQ: 46,0,255,255,28,71 | ||
+ | |||
+ | AT+CEREG? | ||
+ | +CEREG: 0,1 | ||
+ | |||
+ | AT+CGATT? | ||
+ | +CGATT: 1 | ||
+ | |||
+ | AT+CGDCONT? | ||
+ | +CGDCONT: 1,"IP","cmnbiot","100.119.194.66",0,0,0,,,,,,0,,0 | ||
+ | |||
+ | AT+CCLK? | ||
+ | +CCLK: 19/05/03,08:25:58+32 | ||
+ | </source> | ||
+ | |||
+ | 确认以上指令都通过后,方可进行(TCP UDP COAP LWM2M MQTT 等)数据业务。 若因外部信号差开机后长时间无法驻网成功(建议 120s),可执行模组关机节省功耗: | ||
+ | |||
+ | * 软件关机 AT+CPOF | ||
+ | * AT+CFUN=0 (opencpu 时只能选择此方式)让模组强制进入深度休眠。AT+CFUN? # Phone functionality, 0 最小功能,1 全功能 (Default),4 射频电路关闭,7 disable sim only | ||
+ | * 硬件关机:PWR_ON/OFF 引脚在高电平状态拉低 8s(t1) 以上并释放,模组关机。关机过程中,模块需要注销网络连接, 注销时间与当前网络状态有关,建议 15s(t2)之后再对模组进行断电重启等操作,以确保关机之前保存重要数据 | ||
+ | |||
+ | |||
+ | 使用 GRE 长连接或者 MQTT 时必须手动关闭 eDRX 及 PSM: | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+CEDRXS=0,5 # 关闭 eDRX 功能,一般模组只使用 PSM 功能 | ||
+ | AT+CEDRXS? | ||
+ | +CEDRXS: 5,"0000" | ||
+ | |||
+ | AT+CPSMS=0 # disable the use of PSM | ||
+ | AT+CPSMS? | ||
+ | +CPSMS: 0 | ||
+ | |||
+ | AT+SM=LOCK_FOREVER # 关闭深度休眠,此设置断电保持 | ||
+ | |||
+ | AT+CPSMS=0 AT+EDRX=0,5,"0011" 是关闭网络的睡眠和EDRX | ||
+ | </source> | ||
+ | |||
+ | <b>注意 :打开/关闭 eDRX 和 PSM 及设置相应定时器的值均要在模组成功驻网后才能生效,若模组始终无法驻网则 eDRX 和 PSM 功能无法使用</b> | ||
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | AT+IPSTART=0,"TCP","182.92.5.106",1213 | ||
+ | CONNECT OK | ||
+ | |||
+ | AT+IPSEND=0,0,"THIS IS A NBIOT TCP TEST" | ||
+ | +IPSEND: 0,24 | ||
+ | |||
+ | AT*ENGINFO=0 | ||
+ | *ENGINFOSC: 3738,2,108,"1248A1C",-73,-8,-65,5,8,"5F12",0,-10 | ||
+ | </source> | ||
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | AT+CMRB # Software reboots the terminal | ||
+ | AT+COLDRB # Cold reboot the terminal | ||
+ | AT&V # Display current configuration | ||
+ | ATZ # Set all current parameters to user defined profile | ||
+ | AT&W # Store current parameters to user defined profile | ||
+ | AT&F # Set all current parameters to manufacturer defaults | ||
+ | |||
+ | AT+CIMI # 查 SIM 卡的 IMSI | ||
+ | 460040427005170 | ||
+ | AT+CGSN # Request product serial number identification (Identical with +GSN) | ||
+ | 19ML111N0035645 | ||
+ | AT+CGSN=1 # 查模组 IMEI | ||
+ | +CGSN: 869975030545555 | ||
+ | AT+ICCID # 查 SIM 卡的 ICCID | ||
+ | +ICCID: 898602B4031600005170 | ||
+ | |||
+ | AT+GMI # Request manufacturer identification | ||
+ | CMCC | ||
+ | AT+GSN # Request TA serial number identification (IMEI) | ||
+ | 869975030545555 | ||
+ | |||
+ | AT+CSCON? # Query and generate URC for signaling connection station (CONNECTED or IDLE) | ||
+ | +CSCON: 0,0 | ||
+ | AT+COPS? # Operator selection | ||
+ | +COPS: 0,2,"46000",9 | ||
+ | AT+CEDRXS? # eDRX setting | ||
+ | +CEDRXS: 5,"0000" | ||
+ | </source> | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+CGDCONT? # Define PDP context: <cid>,<PDP_type>,<APN>,<PDP_addr>,<d_comp>,<h_comp>...... | ||
+ | +CGDCONT: 1,"IP","cmnbiot","100.75.165.213",0,0,0,,,,,,0,,0 | ||
+ | </source> | ||
+ | |||
+ | |||
+ | ;;ATI 查看模块版本: | ||
+ | |||
+ | <source lang=bash> | ||
+ | ATI | ||
+ | |||
+ | CMCC | ||
+ | M5311 | ||
+ | M5311-MLVH1S02 | ||
+ | M5311-MLVH1S02 | ||
+ | |||
+ | AT+CMVER | ||
+ | |||
+ | M5311-MLVH0S01 | ||
+ | 2.0.2.1903151039_beta | ||
+ | LV190315 | ||
+ | </source> | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+QSPCHSC? # 查看置乱算法返回值 | ||
+ | +QSPCHSC: 1 # 返回 1 可以入网,返回 0 的话是入不了网的,需要 AT+QSPCHSC=1 指令设置成 1 | ||
+ | </source> | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT*CMBAND=? # list of valid <op_band>s | ||
+ | *CMBAND: (3,5,8) | ||
+ | AT*CMBAND? # current bands | ||
+ | *CMBAND: 3,5,8 | ||
+ | AT*CMBAND=0 # reset to default. others: 1, 3, 5, 8, 28 | ||
+ | </source> | ||
+ | |||
+ | TBD: | ||
+ | |||
+ | AT+CFGRATPRIO=2 # 切换到GSM模式 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === Socket === | ||
+ | |||
+ | BC26 only. | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+QSOC=1,1,1 # Create a socket (IPv4, TCP, IP) | ||
+ | AT+QSOC=1,2,1 # Create a socket (IPv4, UDP, IP) | ||
+ | AT+QSOCON=0,8080,"120.25.26.27" # Connect to 120.25.26.27:8080 | ||
+ | AT+QSOSEND=0,3,123456 # send data 0x12 0x34 0x56 <socket_id>,<data_len>,<data> | ||
+ | AT+QSORF=0,3 # 查看服务器返回的数据,如果没返回数据就多查几次 | ||
+ | AT+QSODIS=0 # Disconnect Socket | ||
+ | AT+QSOCL=0 # Close the socket | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === HTTP === | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+HTTPCREATE=“http://42.121.157.158:8888/” #设置HTTP | ||
+ | AT+HTTPHEADER=0,“User-Agent: Unkown\r\nConnection: close\r\n” #设置协议头 | ||
+ | AT+HTTPSEND=0,1,"/dev/data" #发送post请求 | ||
+ | AT+HTTPCLOSE=0 #关闭HTTP | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === MQTT === | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+IPR=9600 #设置波特率 | ||
+ | AT+CMSYSCTRL=0,2 #打开指示灯 | ||
+ | AT+CSQ #信号质量 | ||
+ | |||
+ | |||
+ | AT+MQTTCFG=“域名”,1883,“zyNBiot”,120,“75829”,“IIOu0oFUg1guk20ornTK1uzAcnM=”,1 #MQTT配置 | ||
+ | AT+MQTTOPEN=1,1,1,1,1,“mywill”,“001bye” #连接MQTT | ||
+ | AT+MQTTPUB=“device/nb/citc”,1,1,0,0,“hello” #发布消息 | ||
+ | </source> | ||
<br> | <br> | ||
第23行: | 第326行: | ||
== PM == | == PM == | ||
− | * PSM | + | === 深度休眠 === |
+ | |||
+ | 深度休眠时,除 RTC 时钟,硬件外设全断电,最低功耗,约 3uA | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+SM=LOCK # 关闭深度休眠 | ||
+ | AT+SM=LOCK_FOREVER # 关闭深度休眠,此设置断电保持 | ||
+ | AT+SM=UNLOCK # 打开 deep sleep | ||
+ | AT+SM=UNLOCK_FOREVER # 打开 deep sleep,此设置断电保持 | ||
+ | |||
+ | AT*SLEEP=1 # 深度休眠时串口打印提示,断电后无效 | ||
+ | AT*MATWAKEUP=1 # 退出深度休眠时串口打印提示,断电后无效 | ||
+ | </source> | ||
+ | |||
+ | 只有进入 PSM 状态后,满足如下条件才可进入深度休眠: | ||
+ | |||
+ | * AT+SM=UNLOCK_FOREVER 使能深度睡眠 | ||
+ | * 断开模组 TCP 连接 | ||
+ | |||
+ | '''模组要想成功进入深度睡眠,则睡眠前 10 秒 MCU 不能向模组发任何 AT 指令''' | ||
+ | |||
+ | |||
+ | '''深度睡眠唤醒:''' | ||
+ | |||
+ | * 硬件拉低 Power_onoff 唤醒。需拉低 83ms,触发后芯片启动时间为 173ms | ||
+ | * 硬件拉低 wakeup_in 唤醒。需拉低 53ms,触发后芯片启动时间为 143ms | ||
+ | * T3412 定时到,自动从 PSM 醒来,此时模组处于在网(ACTIVE)状态,可接收下行数据。此种唤醒方式模组在经过:ACTIVE 时间+T3324 延时后才能再次进入 PSM/深度休眠状态。 | ||
+ | |||
+ | |||
+ | 硬件唤醒模组方式,模组仍处于 PSM 状态,模组此时不在网,无法接收下行 数据,需MCU主动发送带网络交互的AT指令 (如AT+PING 、AT+MIPLUPDATE), 模组才退出 PSM 状态。 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === PSM 状态 === | ||
+ | |||
+ | * PSM: 网络协议栈、射频全关,硬件外设未断电,可发 AT | ||
+ | * PSM≠深度睡眠;只有深度休眠时模组功耗最低,约 3uA | ||
+ | |||
+ | |||
+ | 1) 模组进入了 PSM 状态不一定能进深度睡眠,进入 PSM 后再进入深度睡眠必须满足两个条件:① AT+SM=UNLOCK_FOREVER 使能深度睡眠 ② 断开模组 TCP 连接 | ||
+ | |||
+ | 2) 使用模组 wakeup_in 引脚唤醒深度睡眠后,模组仍处于 PSM 状态,若要退出 PSM 需要 MCU 发送有网络交互(如 AT+PING AT+MIPLUPDATE 等)的指令 | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+CPSMS=0 # disable the use of PSM | ||
+ | AT+CPSMS=1 # enable the use of PSM | ||
+ | AT+CPSMS? | ||
+ | +CPSMS: 1,,,"00100011","00100010" | ||
+ | </source> | ||
+ | |||
+ | T3412 = 1h x 3, T3324 = 1min x 2 | ||
+ | |||
+ | * T3412: Requested extended periodic TAU value (GPRS Timer 3 information element) | ||
+ | * T3324: Requested Active Time value (GPRS Timer 2 information element) | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+CPSMS=1,,,"T3412","T3324" | ||
+ | # 使能模组 PSM 功能,并根据需要设置模组 T3324 的值,T3324 和 T3412 值的编码格式参考 GPRS timer 3(AT 文档附录),当前模组端只能设置 T3324 值,其值开卡时已固定,模组端无法修改 | ||
+ | |||
+ | AT+CEREG=5 # 确认 PSM 参数是否设置成功 | ||
+ | AT+CEREG? | ||
+ | +CEREG: 5,1,"5F12","01248A1C",9,"00",0,0,"00100010","00100011" | ||
+ | # 参考 AT 手册,最后两个参数分别代表 T3324 和 extended periodic TAU value(T3412) | ||
+ | </source> | ||
+ | |||
+ | 高 3 位为单位,低 5 位为值: | ||
+ | |||
+ | Table 10.5.163a/3GPP TS 24.008: GPRS Timer 3 information element (T3412) | ||
+ | |||
+ | <source lang=bash> | ||
+ | 8 7 6 | ||
+ | 0 0 0 value is incremented in multiples of 10 minutes | ||
+ | 0 0 1 value is incremented in multiples of 1 hour | ||
+ | 0 1 0 value is incremented in multiples of 10 hours | ||
+ | 0 1 1 value is incremented in multiples of 2 seconds | ||
+ | 1 0 0 value is incremented in multiples of 30 seconds | ||
+ | 1 0 1 value is incremented in multiples of 1 minute | ||
+ | 1 1 0 value is incremented in multiples of 320 hours (NOTE) | ||
+ | 1 1 1 value indicates that the timer is deactivated. | ||
+ | </source> | ||
+ | |||
+ | '''NOTE:''' This timer value unit is only applicable to the T3312 extended value IE and T3412 extended value IE (see 3GPP TS 24.301 [120]). If it is received in an integrity protected message, value shall be interpreted as multiples of 320 hours. Otherwise value shall be interpreted as multiples of 1 hour. | ||
+ | |||
+ | * e.g. "01000111" equals 70 hours | ||
+ | |||
+ | |||
+ | Table 10.5.172/3GPP TS 24.008: GPRS Timer 1/2 information element (T3324) | ||
+ | |||
+ | <source lang=bash> | ||
+ | Bits 6 to 8 defines the timer value unit for the GPRS timer as follows: | ||
+ | 8 7 6 | ||
+ | 0 0 0 value is incremented in multiples of 2 seconds | ||
+ | 0 0 1 value is incremented in multiples of 1 minute | ||
+ | 0 1 0 value is incremented in multiples of decihours | ||
+ | 1 1 1 value indicates that the timer is deactivated. | ||
+ | |||
+ | Other values shall be interpreted as multiples of 1 minute in this version of the protocol. | ||
+ | </source> | ||
+ | |||
+ | * e.g. "00100100" equals 4 minutes | ||
+ | |||
+ | |||
+ | [[文件:M5311-T3324-T3412.jpg]] | ||
+ | |||
+ | |||
+ | '''当前模组端只能设置 T3324 值,T3412 值开卡时已固定 , 模组端无法修改''' | ||
+ | |||
+ | |||
+ | [[文件:10086.NB-IoT.Modes.png | 600px]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 如下命令注销,设备即从 OneNet 下线: | ||
AT+MIPLCLOSE = 0 | AT+MIPLCLOSE = 0 | ||
− | |||
<br> | <br> | ||
− | == | + | === CMDs === |
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | AT+CEDRXS=1,5 # 使能 eDRX 功能 | ||
+ | AT+CEDRXS? | ||
+ | +CEDRXS: 5,"0101" | ||
+ | |||
+ | AT+CPSMS=1 # enable the use of PSM | ||
+ | AT+SM=UNLOCK_FOREVER # 使能深度休眠,此设置断电保持 | ||
+ | |||
+ | |||
+ | AT*NBIOTRAI # 配置模组数据业务后,快速进入 IDLE 态达到节省功耗目的 | ||
+ | AT+CSCON=1 # 设置模组断开 RRC 连接进入 idle 态自动提示,断电后无效 | ||
+ | |||
+ | AT+CMSYSCTRL # 使能/配置 LED 状态灯:STATE/WAKEUP_OUT,为节省功耗(AT+CMSYSCTRL=1,1,AT+CMSYSCTRL=0,2) | ||
+ | |||
+ | AT*SLEEP=1 # 模组进入深度休眠时串口打印提示,断电后无效 | ||
+ | AT*MATWAKEUP=1 # 模组退出深度休眠时串口打印提示,断电后无效 | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == 接入onenet == | ||
+ | |||
+ | === MQTT === | ||
+ | |||
+ | * [https://open.iot.10086.cn/doc/art243.html#66 快速开始] | ||
+ | * [https://open.iot.10086.cn/doc/art459.html#107 MQTT接入说明] | ||
+ | |||
+ | * [https://open.iot.10086.cn/doc/art431.html 说明文档] | ||
+ | * [https://open.iot.10086.cn/doc/art284.html#68 第三方数据接收服务程序开发详述] | ||
+ | |||
+ | <br> | ||
− | === | + | === LWM2M === |
− | M5310: | + | '''Init M5310:''' |
<source lang=bash> | <source lang=bash> | ||
第46行: | 第495行: | ||
<br> | <br> | ||
− | |||
− | |||
'''首先参考官方文档在 onenet 平台建立硬件对应的产品类型''' | '''首先参考官方文档在 onenet 平台建立硬件对应的产品类型''' | ||
第131行: | 第578行: | ||
* [https://zhuanlan.zhihu.com/p/28134440 NB-IOT模组和芯片] | * [https://zhuanlan.zhihu.com/p/28134440 NB-IOT模组和芯片] | ||
+ | * [https://blog.csdn.net/switch_love_case/article/details/88922176 烤机测试装置(Arduino)] | ||
+ | * [https://blog.csdn.net/zhangbijun1230/article/details/82251236 大白NB-IOT 移远BC26模块模组快速入门] | ||
* http://carrier.huawei.com/~/media/CNBG/events/mwcs2018/v3/pdf/Morning_4_JiangWangcheng_Jointly-build-a-flourishing-ecosystem.pdf | * http://carrier.huawei.com/~/media/CNBG/events/mwcs2018/v3/pdf/Morning_4_JiangWangcheng_Jointly-build-a-flourishing-ecosystem.pdf | ||
* https://www.gsma.com/iot/wp-content/uploads/2017/03/MIoT-Ecosystem-Huawei-Quan-Yu.pdf | * https://www.gsma.com/iot/wp-content/uploads/2017/03/MIoT-Ecosystem-Huawei-Quan-Yu.pdf | ||
* https://blog.csdn.net/switch_love_case/article/details/88922176 | * https://blog.csdn.net/switch_love_case/article/details/88922176 | ||
* [[Antenna]] | * [[Antenna]] | ||
+ | * [[VNA]] | ||
+ | |||
+ | '''NB86-G:''' | ||
+ | * https://www.stmcu.com.cn/nb_iot/1342 | ||
+ | * [http://bbs.lierda.com/forum.php?mod=viewthread&tid=34&extra=page%3D1 Lierda NB-IoT产品线相关产品资料] | ||
+ | * [http://bbs.lierda.com/forum.php?mod=viewthread&tid=36&extra=page%3D1%26filter%3Dtypeid%26typeid%3D3&_dsign=741dfc85 Lierda NB86-G系列模组相关资料] | ||
+ | * [http://bbs.lierda.com/forum.php?mod=viewthread&tid=10048&extra=page%3D1&_dsign=6fb92dea Lierda NB-IoT OpenCPU Tutorial] | ||
<br><br> | <br><br> | ||
<br><br> | <br><br> | ||
<br><br> | <br><br> |
2021年3月10日 (三) 16:08的最后版本
目录 |
[编辑] 1 Overview
- BC95-B20:800MHz,band 20,面向欧洲
- BC95-B5:850MHz,band 5,面向韩国
- BC95-B8:900MHz,band8,面向国内
目前国内的运营商,移动联通支持 900,电信支持 850
工信部 2020年1月1日起施行的《增强机器类通信系统频率使用管理规定(暂行)》中明确 eMTC 的频率为:
- eMTC 系统使用无线电频率应当取得无线电频率使用许可
- 已规划用于 LTE 的 800MHz、900MHz、1800MHz、1900MHz 和 2100MHz 等公众移动通信频段
- 已规划用于 LTE 的 1447-1467MHz 和 1785-1805MHz 等专用移动通信频段
[编辑] 2 eSIM
现在 esim 主要有两种:
- 一种是已经写好号的贴片卡
- 一种是支持空写的 esim
网店不提供贴片卡服务
2*2 的 esim,可以买回来自己焊接
[编辑] 3 Notes
- 电平转换芯片被击穿,导致通过串口向 NB-Power 域供电,显示为即使移除 NB-Power 的供电芯片,NB-Power 都有 2.4V 左右的电压,断开串口 TX 和 RX 后,电压才降低为 0.33V 左右!
- Push-Pull
- 输出脚内部集成一对互补的 MOSFET,当 Q1 导通、Q2 截止时输出高电平;而当 Q1 截止、Q2 导通时输出低电平。
- Push-Pull 输出,实际上内部是用了两个晶体管:Top-Transistor 和 Bottom-Transistor。通过开关对应的晶体管,输出对应的电平。Push-pull 即能够漏电流 (sink current),又可以集电流 (source current)。其也许有,也许没有另外一个状态:高阻抗(high impedance)状态。
- 除非 Push-pull 需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。
- Open-Drain
- 开漏输出,比 push-pull 少 top transistor,只有 bottom transistor。当 bottom transistor 关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-up resistor)
- 输出为高时,相当于这个脚对地开路,脚上的电压与外接电路有关,输出低时,这个脚对地短路。因为是开路输出,所以可多个脚直接连接在一起形成与的关系
- 内部无上拉电阻,当 IO 口使用的时候需要加上上拉电阻,因为如果不加上拉电阻,当内部输出为高电平时候,与电源相连的 MOS 管是截止的,引脚不能通过该截止的 MOS 管与 VCC 导通,引脚上将得不到高电平
[编辑] 4 OpenCPU
- M5310-A, 180KB flash, 30KB RAM
- M5311, 128KB flash, 256KB RAM
- M5311-LV: Band 3, 5, 8 / 2.1V ~ 3.6V
- M5311-CM: Band 8 / 3V ~ 3.6V
https://blog.csdn.net/u011943791/article/details/80895563
[编辑] 4.1 切换方法
启动的时候调用 get_factory_mode() 函数:当该函数返回 0 时,任何情况下模组以 OpenCPU 方式运行。 当该函数返回 1 时,需要用户手动切换:
第一次把 OpenCPU 下载到新模组上时,模组会默认以 AT 模式运行,不会启动 OpenCPU 模式,此时用户需要在 UART1 手动执行 AT+ATCLOSE,然后按复位键,模组即启动 OpenCPU 模式,并且以后都会保持 OpenCPU 模式。
要从 OpenCPU 模式切换回 AT 模式,需要 在 OpenCPU 程序里执行 opencpu_at_open() 函数,此时模组会自动重启,并以 AT 模式运行。
[编辑] 4.2 Serial
- UART0 --- DBG_UART, 115200 8N1, Upload firmware port
- UART1 --- AT UART, 115200 8N1
[编辑] 4.3 Notes
- 想要进行软件开关机就用 powerkey 引脚,引脚连到按键上,把配置项修改为两个 false 就可以了,然后写个回调函数处理
- 文件操作的任务,要把任务栈的大小设置到 5k 以上,有文件系统掉电保存个数据还是挺方便的
- 消息队列满了之后就会 crash,比如 sleep 时间太长就会导致消息队列满
- subtask 的数量最多只能10个?!
[编辑] 4.4 GPIO
- M5311_GPIO0 (Pin 34) --- GPIO19
- M5311_GPIO1 (Pin 35)--- GPIO20
[编辑] 5 M5311 Tesing
[编辑] 5.1 开关机
模组正常开机方式是通过 PWR_ON/OFF 引脚来开机。模组外部供电 VBAT 上电后,将 PWR_ON/OFF 置为低电平,保持 1s 以上 4s 以下(t1)后置高即可开机,开机之后需要保持高电平
注意:不可将 PWR_ON/OFF 引脚直接接地
模组在开机的状态下,PWR_ON/OFF 引脚在高电平状态拉低 8s(t1)以上并释放,模组关机。关机过程中,模组需要注销网络连接,注销时间与当前网络状态有关,建议 15s(t2)之后再对模组进行断电重启等操作,以确保关机之前保存重要数据。
[编辑] 5.2 Reset
M5311 通过拉低 RESET 引脚一定时间实现模组复位。实现复位的低电平持续时间要求如下。建议仅在紧急情况(如模组无响应时)使用 RESET 引脚。此外,模组关机状态下 RESET 引脚是无效的。
模块 RESET 引脚,正常拉高,需要 RESET 时,拉低 >100ms,恢复拉高即可
[编辑] 5.3 深睡眠唤醒
模组在进入睡眠后,仅能通过 PWR_ON_OFF/WAKEUP_IN 来唤醒模组,唤醒操作时间如下所示:
- PWR_ON/OFF,低电平有效,触发时间 83ms,触发后芯片启动时间 173ms
- WAKEUP_IN,低电平有效,触发时间 53ms,触发后芯片启动时间 143ms
[编辑] 5.4 入网流程
AT # 查看模块 AT 是否正常工作 AT+CLPLMN # 清除驻网记录 +CLPLMN: 0 # 返回 0, 说明已成功清除记 AT+SM=LOCK # 关闭 deep sleep 模式 AT+CIMI # 检查 SIM卡是否读卡成功 460040427005170 AT+CESQ # 查看信号强度 +CESQ: 23,0,255,255,26,47 AT+CEREG? # EPS network registration status, 确认基站注册状态 0,1 或者 0,5 1-代表本地已注册上, 5-代表漫游已注册 AT+CGATT? # GPRS/Packet Domain attach or detach。确认 PDP 激活状态,1-代表已激活 0-代表未激活,M5311 自 动入网后自动激活 AT+CGACT? # Context activation, state = 0: deactivated; =1: activated +CGACT:<cid>,<state>
示例:
*ATREADY: 1 +CFUN: 1 +CPIN: READY +IP: 100.119.194.66 AT AT+CLPLMN +CLPLMN: 0 AT+CESQ +CESQ: 46,0,255,255,28,71 AT+CEREG? +CEREG: 0,1 AT+CGATT? +CGATT: 1 AT+CGDCONT? +CGDCONT: 1,"IP","cmnbiot","100.119.194.66",0,0,0,,,,,,0,,0 AT+CCLK? +CCLK: 19/05/03,08:25:58+32
确认以上指令都通过后,方可进行(TCP UDP COAP LWM2M MQTT 等)数据业务。 若因外部信号差开机后长时间无法驻网成功(建议 120s),可执行模组关机节省功耗:
- 软件关机 AT+CPOF
- AT+CFUN=0 (opencpu 时只能选择此方式)让模组强制进入深度休眠。AT+CFUN? # Phone functionality, 0 最小功能,1 全功能 (Default),4 射频电路关闭,7 disable sim only
- 硬件关机:PWR_ON/OFF 引脚在高电平状态拉低 8s(t1) 以上并释放,模组关机。关机过程中,模块需要注销网络连接, 注销时间与当前网络状态有关,建议 15s(t2)之后再对模组进行断电重启等操作,以确保关机之前保存重要数据
使用 GRE 长连接或者 MQTT 时必须手动关闭 eDRX 及 PSM:
AT+CEDRXS=0,5 # 关闭 eDRX 功能,一般模组只使用 PSM 功能 AT+CEDRXS? +CEDRXS: 5,"0000" AT+CPSMS=0 # disable the use of PSM AT+CPSMS? +CPSMS: 0 AT+SM=LOCK_FOREVER # 关闭深度休眠,此设置断电保持 AT+CPSMS=0 AT+EDRX=0,5,"0011" 是关闭网络的睡眠和EDRX
注意 :打开/关闭 eDRX 和 PSM 及设置相应定时器的值均要在模组成功驻网后才能生效,若模组始终无法驻网则 eDRX 和 PSM 功能无法使用
AT+IPSTART=0,"TCP","182.92.5.106",1213 CONNECT OK AT+IPSEND=0,0,"THIS IS A NBIOT TCP TEST" +IPSEND: 0,24 AT*ENGINFO=0 *ENGINFOSC: 3738,2,108,"1248A1C",-73,-8,-65,5,8,"5F12",0,-10
AT+CMRB # Software reboots the terminal AT+COLDRB # Cold reboot the terminal AT&V # Display current configuration ATZ # Set all current parameters to user defined profile AT&W # Store current parameters to user defined profile AT&F # Set all current parameters to manufacturer defaults AT+CIMI # 查 SIM 卡的 IMSI 460040427005170 AT+CGSN # Request product serial number identification (Identical with +GSN) 19ML111N0035645 AT+CGSN=1 # 查模组 IMEI +CGSN: 869975030545555 AT+ICCID # 查 SIM 卡的 ICCID +ICCID: 898602B4031600005170 AT+GMI # Request manufacturer identification CMCC AT+GSN # Request TA serial number identification (IMEI) 869975030545555 AT+CSCON? # Query and generate URC for signaling connection station (CONNECTED or IDLE) +CSCON: 0,0 AT+COPS? # Operator selection +COPS: 0,2,"46000",9 AT+CEDRXS? # eDRX setting +CEDRXS: 5,"0000"
AT+CGDCONT? # Define PDP context: <cid>,<PDP_type>,<APN>,<PDP_addr>,<d_comp>,<h_comp>...... +CGDCONT: 1,"IP","cmnbiot","100.75.165.213",0,0,0,,,,,,0,,0
- ATI 查看模块版本:
ATI CMCC M5311 M5311-MLVH1S02 M5311-MLVH1S02 AT+CMVER M5311-MLVH0S01 2.0.2.1903151039_beta LV190315
AT+QSPCHSC? # 查看置乱算法返回值 +QSPCHSC: 1 # 返回 1 可以入网,返回 0 的话是入不了网的,需要 AT+QSPCHSC=1 指令设置成 1
AT*CMBAND=? # list of valid <op_band>s *CMBAND: (3,5,8) AT*CMBAND? # current bands *CMBAND: 3,5,8 AT*CMBAND=0 # reset to default. others: 1, 3, 5, 8, 28
TBD:
AT+CFGRATPRIO=2 # 切换到GSM模式
[编辑] 5.5 Socket
BC26 only.
AT+QSOC=1,1,1 # Create a socket (IPv4, TCP, IP) AT+QSOC=1,2,1 # Create a socket (IPv4, UDP, IP) AT+QSOCON=0,8080,"120.25.26.27" # Connect to 120.25.26.27:8080 AT+QSOSEND=0,3,123456 # send data 0x12 0x34 0x56 <socket_id>,<data_len>,<data> AT+QSORF=0,3 # 查看服务器返回的数据,如果没返回数据就多查几次 AT+QSODIS=0 # Disconnect Socket AT+QSOCL=0 # Close the socket
[编辑] 5.6 HTTP
AT+HTTPCREATE=“http://42.121.157.158:8888/” #设置HTTP AT+HTTPHEADER=0,“User-Agent: Unkown\r\nConnection: close\r\n” #设置协议头 AT+HTTPSEND=0,1,"/dev/data" #发送post请求 AT+HTTPCLOSE=0 #关闭HTTP
[编辑] 5.7 MQTT
AT+IPR=9600 #设置波特率 AT+CMSYSCTRL=0,2 #打开指示灯 AT+CSQ #信号质量 AT+MQTTCFG=“域名”,1883,“zyNBiot”,120,“75829”,“IIOu0oFUg1guk20ornTK1uzAcnM=”,1 #MQTT配置 AT+MQTTOPEN=1,1,1,1,1,“mywill”,“001bye” #连接MQTT AT+MQTTPUB=“device/nb/citc”,1,1,0,0,“hello” #发布消息
[编辑] 6 PM
[编辑] 6.1 深度休眠
深度休眠时,除 RTC 时钟,硬件外设全断电,最低功耗,约 3uA
AT+SM=LOCK # 关闭深度休眠 AT+SM=LOCK_FOREVER # 关闭深度休眠,此设置断电保持 AT+SM=UNLOCK # 打开 deep sleep AT+SM=UNLOCK_FOREVER # 打开 deep sleep,此设置断电保持 AT*SLEEP=1 # 深度休眠时串口打印提示,断电后无效 AT*MATWAKEUP=1 # 退出深度休眠时串口打印提示,断电后无效
只有进入 PSM 状态后,满足如下条件才可进入深度休眠:
- AT+SM=UNLOCK_FOREVER 使能深度睡眠
- 断开模组 TCP 连接
模组要想成功进入深度睡眠,则睡眠前 10 秒 MCU 不能向模组发任何 AT 指令
深度睡眠唤醒:
- 硬件拉低 Power_onoff 唤醒。需拉低 83ms,触发后芯片启动时间为 173ms
- 硬件拉低 wakeup_in 唤醒。需拉低 53ms,触发后芯片启动时间为 143ms
- T3412 定时到,自动从 PSM 醒来,此时模组处于在网(ACTIVE)状态,可接收下行数据。此种唤醒方式模组在经过:ACTIVE 时间+T3324 延时后才能再次进入 PSM/深度休眠状态。
硬件唤醒模组方式,模组仍处于 PSM 状态,模组此时不在网,无法接收下行 数据,需MCU主动发送带网络交互的AT指令 (如AT+PING 、AT+MIPLUPDATE), 模组才退出 PSM 状态。
[编辑] 6.2 PSM 状态
- PSM: 网络协议栈、射频全关,硬件外设未断电,可发 AT
- PSM≠深度睡眠;只有深度休眠时模组功耗最低,约 3uA
1) 模组进入了 PSM 状态不一定能进深度睡眠,进入 PSM 后再进入深度睡眠必须满足两个条件:① AT+SM=UNLOCK_FOREVER 使能深度睡眠 ② 断开模组 TCP 连接
2) 使用模组 wakeup_in 引脚唤醒深度睡眠后,模组仍处于 PSM 状态,若要退出 PSM 需要 MCU 发送有网络交互(如 AT+PING AT+MIPLUPDATE 等)的指令
AT+CPSMS=0 # disable the use of PSM AT+CPSMS=1 # enable the use of PSM AT+CPSMS? +CPSMS: 1,,,"00100011","00100010"
T3412 = 1h x 3, T3324 = 1min x 2
- T3412: Requested extended periodic TAU value (GPRS Timer 3 information element)
- T3324: Requested Active Time value (GPRS Timer 2 information element)
AT+CPSMS=1,,,"T3412","T3324" # 使能模组 PSM 功能,并根据需要设置模组 T3324 的值,T3324 和 T3412 值的编码格式参考 GPRS timer 3(AT 文档附录),当前模组端只能设置 T3324 值,其值开卡时已固定,模组端无法修改 AT+CEREG=5 # 确认 PSM 参数是否设置成功 AT+CEREG? +CEREG: 5,1,"5F12","01248A1C",9,"00",0,0,"00100010","00100011" # 参考 AT 手册,最后两个参数分别代表 T3324 和 extended periodic TAU value(T3412)
高 3 位为单位,低 5 位为值:
Table 10.5.163a/3GPP TS 24.008: GPRS Timer 3 information element (T3412)
8 7 6 0 0 0 value is incremented in multiples of 10 minutes 0 0 1 value is incremented in multiples of 1 hour 0 1 0 value is incremented in multiples of 10 hours 0 1 1 value is incremented in multiples of 2 seconds 1 0 0 value is incremented in multiples of 30 seconds 1 0 1 value is incremented in multiples of 1 minute 1 1 0 value is incremented in multiples of 320 hours (NOTE) 1 1 1 value indicates that the timer is deactivated.
NOTE: This timer value unit is only applicable to the T3312 extended value IE and T3412 extended value IE (see 3GPP TS 24.301 [120]). If it is received in an integrity protected message, value shall be interpreted as multiples of 320 hours. Otherwise value shall be interpreted as multiples of 1 hour.
- e.g. "01000111" equals 70 hours
Table 10.5.172/3GPP TS 24.008: GPRS Timer 1/2 information element (T3324)
Bits 6 to 8 defines the timer value unit for the GPRS timer as follows: 8 7 6 0 0 0 value is incremented in multiples of 2 seconds 0 0 1 value is incremented in multiples of 1 minute 0 1 0 value is incremented in multiples of decihours 1 1 1 value indicates that the timer is deactivated. Other values shall be interpreted as multiples of 1 minute in this version of the protocol.
- e.g. "00100100" equals 4 minutes
当前模组端只能设置 T3324 值,T3412 值开卡时已固定 , 模组端无法修改
如下命令注销,设备即从 OneNet 下线:
AT+MIPLCLOSE = 0
[编辑] 6.3 CMDs
AT+CEDRXS=1,5 # 使能 eDRX 功能 AT+CEDRXS? +CEDRXS: 5,"0101" AT+CPSMS=1 # enable the use of PSM AT+SM=UNLOCK_FOREVER # 使能深度休眠,此设置断电保持 AT*NBIOTRAI # 配置模组数据业务后,快速进入 IDLE 态达到节省功耗目的 AT+CSCON=1 # 设置模组断开 RRC 连接进入 idle 态自动提示,断电后无效 AT+CMSYSCTRL # 使能/配置 LED 状态灯:STATE/WAKEUP_OUT,为节省功耗(AT+CMSYSCTRL=1,1,AT+CMSYSCTRL=0,2) AT*SLEEP=1 # 模组进入深度休眠时串口打印提示,断电后无效 AT*MATWAKEUP=1 # 模组退出深度休眠时串口打印提示,断电后无效
[编辑] 7 接入onenet
[编辑] 7.1 MQTT
[编辑] 7.2 LWM2M
Init M5310:
AT+COPS=1,2,"46000"; #设置手动注册移动运营商MNC AT+CSCON=1; #打开信号提示自动上报 AT+CEREG=1; #打开注册信息自动上报
发送完上面三条指令,完成模组的注册入网功能
首先参考官方文档在 onenet 平台建立硬件对应的产品类型
生成注册码,注册码的生成需要使用中移物联提供的 OneNET_config_v1.2.exe。所需参数,如下图所示,其中 host 与 ep_name 较重要,分别指定了要接入 server 的 IP 地址和端口、模组的 IMEI 与 IMSI 号。具体参数的含义可以参考 M5310 AT Command 说明文档
$ OneNET_config_v1.2.exe -b 1 -e 0 -d 3 -i "coap://183.230.40.39:5683" -n "865820030015998;460040663105571" -p 0 -t 3000 -u 5 -g 5 -x 1 AT+MIPLCONF=71,10030000B80B00001900636F61703A2F2F3138332E3233302E34302E33393A353638331F003836353832303033303031353939383B343630303430363633313035353731050501,1,1
发送此 AT 命令完成注册码登记
添加 Object 组:
AT+MIPLADDOBJ=0,3303,0
上述 AT 指令即添加一个 Object 对象,3303 代表温度传感器,由 LWM2M 规范所定
一个设备会用很多传感器,设备叫通信实例,温度传感器即 Object。设备可以有很多 Object 如湿度、光照、气压等
发起注册请求:
AT+MIPLOPEN=0,15
上述命令发送成功之后,onenet 平台上会显示设备处于在线状态,硬件与平台连接成功。通过 AT+MIPLNOTIFY 就可以向平台发送数据,具体可参考官方手册。
[编辑] 8 Chips
[编辑] 8.1 展锐
RDA8908, RDA8909, RDA8910
[编辑] 8.2 nRF91
[编辑] 8.3 RoseFinch7100
[编辑] 8.4 Hi2115
Boudica 150
- SoC, 无需外接 MCU
- 支持 698-960/1800/2100MHz
[编辑] 8.5 Hi2110
Boudica 120
- SOC:BB+RF+PMU+AP+Memory
- 3 ARM Core:AP+CP+SP
[编辑] 8.6 MDM9206
[编辑] 8.7 MTK2625
[编辑] 9 Refernece
- NB-IOT模组和芯片
- 烤机测试装置(Arduino)
- 大白NB-IOT 移远BC26模块模组快速入门
- http://carrier.huawei.com/~/media/CNBG/events/mwcs2018/v3/pdf/Morning_4_JiangWangcheng_Jointly-build-a-flourishing-ecosystem.pdf
- https://www.gsma.com/iot/wp-content/uploads/2017/03/MIoT-Ecosystem-Huawei-Quan-Yu.pdf
- https://blog.csdn.net/switch_love_case/article/details/88922176
- Antenna
- VNA
NB86-G:
- https://www.stmcu.com.cn/nb_iot/1342
- Lierda NB-IoT产品线相关产品资料
- Lierda NB86-G系列模组相关资料
- Lierda NB-IoT OpenCPU Tutorial