赞
踩
本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)
适用于板卡型号:
紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano)
一:盘古盘古PGX-Nano开发板简介
PGX-Nano 是一套以紫光同创 FPGA 为核心的开发板,选用紫光同创 logos2 系列 28nm 工艺的 FPGA(PG2L50H_MBG324)。集成下载器芯片,极大的便利 了用户的使用。 板卡搭载一颗容量为 2MB 的 SRAM 用于数据缓存,DAC 芯片用于产生模 拟信号进行测试验证,esp32 模组进行 WIFI、蓝牙透传;预留了丰富的扩展 IO 用于用户验证、测试外接模块电路功能,一组串口进行串行通信;同时为用户提 供基础的硬件电路资源,例如 led 灯、按键、拨码开关等。
PGX-Nano开发板搭载了一个esp32模块,利用此模块,可使板卡以WIFI、蓝牙的方式进行通信,应注意的是,若想通过指令对esp32模块进行配置从而进入wifi、蓝牙通信模式,需先对esp32模块进行AT固件的烧录,具体烧录步骤与烧录所需工程请参考ESP32_AT文件夹。
二:开发板ESP32模组使用简介
PGX-Nano搭载一个esp32模组,型号为:ESP32-WROVER-IE;此型号模组集成集成ESP32系列ESP32-D0WD-V3芯片,其两个CPU核都可以被单独控制,并且支持wifi与蓝牙通信。模组具有丰富的外设接口,开发板选用串口与esp32进行数据的交互,ESP32将交互的数据通过wifi/蓝牙发送或者接收,从而使板卡进行wifi/蓝牙通信。
开发板与ESP32模组相连的6个信号的功能如下:
使用开发板上ESP32模模组进行WIFI/蓝牙通信的具体思路如下:
首先:
ESP32模块在使用前需要先烧录AT固件,烧录完毕后,才能正常使用指令配置ESP32模块。
烧录AT固件时,使用ESP32上BT_TX、BT_RX两个串口信号进行AT指令的烧录。将ESP32模组的BT_TX、BT_RX信号与板卡的串口信号FPGA_UART_TX、FPGA_UART_RX相连,则可以使用板卡串口为ESP32模组下载固件。
ESP32有两种状态,AT固件下载状态,正常使用状态,以上电时或者复位结束时BT_INT信号的电平高低,判断进入那种状态,BT_INT为高电平时,ESP32进入正常使用状态,BT_INT为低电平时,ESP32进入AT固件下载状态。由此可知,在ESP32模组上电后,控制使能信号BOOTH_EN、BT_INT信号,即可使ESP32进入AT固件下载状态。
其次:
使用开发板上的ESP32模组进行WIFI/蓝牙通信时,需要先对模组配置相应的指令,使其进入通信状态,进入通信状态后,开发板即可以开始进行wifi/蓝牙通信。
首先,配置指令时,可以将ESP32用于数据通信UART信号FPGA_TX、FPGA_RX与开发板串口信号FPGA_UART_TX、FPGA_UART_RX连接,将板卡串口与PC端进行连接,通过PC端串口调试助手对ESP32模组进行指令的配置。
其次,配置指令后,ESP32模组就可以完成通过wifi/蓝牙发送来自与串口的数据以及接收WIFI/蓝牙的数据通过串口发送给开发板的功能,若希望使用板卡与ESP32进行数据的交互,就需要使用判断条件,断开FPGA_TX、FPGA_RX与开发板串口信号FPGA_UART_TX、FPGA_UART_RX的连接,使用FPGA直接向ESP32模组的FPGA_RX发送数据,或者接收ESP32模组的FPGA_TX数据,
在WIFI/蓝牙透传状态下,在结束数据传输前,向ESP32模块发送不加换行灯信号的连续+++信号,即可退出透传状态。
三:实验目的
使用板卡实现UART蓝牙透传。
四:实验要求
根据实验步骤使esp32作为蓝牙服务器端进入蓝牙透传状态后,拨动拨码开关SW0开启板卡的蓝牙透传通信,按动按键S2,板卡会通过蓝牙向蓝牙客户端发送一串www.meyesemi.com的字符,并且使用蓝牙客户端向板卡发送0~9的字符型数据,将会显示在板卡数码管上。(蓝牙客户端为手机,使用APP:nRFConnect,提供的安装包在tools文件夹中)
五:实验原理
透传原理:
透传即数据传输过程中,发送方发送数据的内容和长度与接收方接受到数据的内容和长度完全相同,不对数据进行任何处理。
六:实验源码
顶层源码如下列所示(完整源码请前往实验例程查看):
由于在使用ESP32模组在进行WIFI/蓝牙透传前,需要先进行指令的配置,因此设计一个拨动开关作为判断条件,在拨动开关为低电平时,板卡串口与ESP32模组数据传输对应串口相连,此时PC端串口调试助手输出的指令将同过板卡串口进入ESP32模组串口,从而实现指令的配置,在拨动开关为高电平时,由FPGA直接接管ESP32模组数据传输对应串口,按下按键S2,板卡将发送一串字符,并且将ESP32模组数据传输串口传出的数据显示在数码管上。
传输结束,退出透传状态时,只需拨下拨动开关,根据程序设计,FPGA会自动发送“+++”以结束透传状态。
七:实验流程
1、第一次使用,请烧录AT固件(esp32的AT固件烧录的位置为ESP模块的flash中,因此只需烧录一次即可),详情请参考ESP32_AT文件夹。
2、连接板卡串口,烧录程序后,使用串口对esp32进行指令的配置,与此同时,将手机与ESP32模块通过蓝牙建立连接,此时sw0应为未拨动状态。(串口调试助手设置波特率应为115200)
3、指令配置完成后,拨动拨动开关sw0开启板卡的UART透传通信,按动按键S2,板卡会通过蓝牙发送一串www.meyesemi.com的字符,手机可以使用APP侦测到相应数据,并且使用手机APP通过蓝牙发送0~9的字符型数据(取消勾选加回车换行),将会显示在板卡数码管上。
4、实验结束,拨下拨码开关sw0,退出蓝牙透传状态。
详情参考下列叙述:
进行AT指令配置,进入wifi透传状态:
串口调试助手需要勾选加回车换行。
指令发送时前后不能有空格。
使用串口调试助手发送下列指令:
(1)指令:AT+BLEINIT=2//BLE初始化,将模块设置为server
回复:OK
(2)指令:AT+BLEGATTSSRVCRE//GATTS创建服务
回复:OK
(3)指令:AT+BLEGATTSSRVSTART//GATTS开始服务
回复:OK
(4)指令:AT+BLEADVDATA="0201060A09457370726573736966030302A0"//设置广播设备名称Espressif
回复:OK
(5)指令:AT+BLEADVSTART//开始广播
回复:OK
(6)指令:AT+BLEGATTSCHAR?//查询BLE透传参数
回复:
+BLEGATTCCHAR:"char",0,3,1,0xC300,2
+BLEGATTCCHAR:"desc",0,3,1,1,0x2901
+BLEGATTCCHAR:"char",0,3,2,0xC301,2
+BLEGATTCCHAR:"desc",0,3,2,1,0x2901
+BLEGATTCCHAR:"char",0,3,3,0xC302,8
+BLEGATTCCHAR:"desc",0,3,3,1,0x2901
+BLEGATTCCHAR:"char",0,3,4,0xC303,4
+BLEGATTCCHAR:"desc",0,3,4,1,0x2901
+BLEGATTCCHAR:"char",0,3,5,0xC304,8
+BLEGATTCCHAR:"char",0,3,6,0xC305,16
+BLEGATTCCHAR:"desc",0,3,6,1,0x2902
+BLEGATTCCHAR:"char",0,3,7,0xC306,32
+BLEGATTCCHAR:"desc",0,3,7,1,0x2902
OK
(7)指令:AT+BLESPPCFG=1,1,6,1,5//设置透传参数
回复:OK
(选择1号service的6号characteristic发送数据,选择1号service的第5号characteristic接收数据,可设置其他characteristic发送或者接收数据)
打开手机蓝牙调试助手nRFConnect
选择Espressif选项点击connect;
5号characteristic对应0xC304,6号characteristic对应0x305,找到相应位置,开始0x305对应chararcteristic进行侦听
(8)指令:AT+BLESPP//开启BLE透传
回复:OK
完成AT指令配置过程如下:
当手机与esp32连接后,esp32模块会通过串口反馈一些信息
最后开启透传
八:实验现象
指令配置完成并且ESP32模块与手机建立蓝牙连接后,拨动拨动开关sw0开启板卡的蓝牙透传通信,按动按键S2,板卡会通过蓝牙发送一串www.meyesemi.com的字符,通过手机APP可以侦测到相应字符对应ASCII码数据,并且使用手机发送0~9的字符型数据(取消勾选加回车换行),将会显示在板卡数码管上。
提示:1、更多at指令,可前往esp32模块厂商乐鑫科技官网获取。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。