【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十三章)蓝牙透传实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(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模块厂商乐鑫科技官网获取。

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3246623.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

OZON成本低卖价高产品,OZON单价高产品

Top1 Crocs鞋扣配件 Джиббитсы набор украшения для обуви крокс значки на crocs клипсы аксессуары украшение для сабо бутылка вина бокал 商品id:1409545850…

第一百六十七节 Java IO教程 - Java Zip字节数组

Java IO教程 - Java Zip字节数组 校验和 Java在java.util.zip包中提供了一个Adler32类来计算数据字节的Adler-32校验和。 我们需要调用这个类的update()方法将字节传递给它。 在同一个包中还有另一个名为CRC32的类,它允许您使用CRC32算法计算校验和。 以下代码…

使用geoipupdate自动更新GeoIP数据库

一、 什么是 GeoIP? 通过在数据库中将地理位置和 IP 地址相互映射,软件程序便可以使用 IP 地址来确定其对应的地理位置,其中包括国家/地区、州/省、城市、邮政编码、纬度/经度、ISP、区号和其他信息。 很多软件都使用 MaxMind 的数据库对 IP…

选择Maya进行3D动画制作与渲染的理由

如果你对3D动画充满热情并追求成为专业3D动画师的梦想,你一定听说过Maya——近年来3D动画的行业标准。Maya被3D艺术家广泛使用,你是否想知道为什么Maya总是他们的首选?下面一起来了解下。 一、什么是Maya? 由Autodesk开发的Maya是…

昇思25天学习打卡营第24天|基于MindSpore的Diffusion扩散模型

Diffusion扩散模型 本文基于Hugging Face:The Annotated Diffusion Model一文翻译迁移而来,同时参考了由浅入深了解Diffusion Model一文。 关于扩散模型(Diffusion Models)有很多种理解,本文的介绍是基于denoising di…

浅谈Git

一:什么是 git git一种开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 下图是 git 的一个工作流程简图 二:什么是 分布/集中式版本控制系统 软件开发过程中,要解决多人协作的问题,需要…

FPGA CFGBVS 管脚接法

说明 新设计了1个KU040 FPGA板子,回来之后接上JTAG FPGA不识别。做如下检查: 1、电源测试点均正常; 2、查看贴片是否有漏焊,检查无异常,设计上NC的才NC; 3、反复检查JTAG接线是否异常,贴片是…

PostgreSQL 的 generic xlog 模块代码解读

为了描述方便,定义一些名词: wal/WAL -- Write Ahead Log,指PG中事务日志模块,这里所指的其实比较模糊,相关的函数,内存都算,自定义WAL就是指,用户可以决定自己存储在shared buffer …

数据库的约束条件和用户管理

约束条件: 主键:主键约束 primary key 用于标识表中的主键列的值,而且这个值是全表当中唯一的,而且只不能为null 一个表只能有一个主键。 外键:用来建立表与表之间的关系。确保外键中的值于另一个表的主键值匹配&a…

实验七:图像的复原处理

一、实验目的 熟悉常见的噪声及其概率密度函数。熟悉在实际应用中比较重要的图像复原技术,会对退化图像进行复原处理。二、实验原理 1. 图像复原技术,说简单点,同图像增强那样,是为了以某种预定义的方式来改进图像。在具体操作过程中用流程图表示,其过程就如下面所示: 2…

源代码加密需求中零信任沙箱如何成为企业底牌?

随着计算机和网络技术的普及发展,公司和企业的办公方式和业务流发生了翻天覆地的变化。 全世界有60%的人主要从事与信息的生成、加工和存储以及相关技术的服务性工作。大量数据信息的创建、存储、传输以及共享方式已经发生了革命性的变化,主要表现在以下…

allure_pytest:AttributeError: ‘str‘ object has no attribute ‘iter_parents‘

踩坑记录 问题描述: 接口自动化测试时出现报错,报错文件是allure_pytest库 问题分析: 自动化测试框架是比较成熟的代码,报错也不是自己写的文件,而是第三方库,首先推测是allure_pytest和某些库有版本不兼…

一五六、Node+Vue 使用七牛上传图片,并配置个人域名

1. 七牛云ak/sk获取 点击注册🔗开通七牛开发者帐号如果已有账号,直接登录七牛开发者后台,点击这里🔗查看 Access Key 和 Secret Key 2. Node.js获取七牛token 安装qiniu npm install qiniu创建空间 Node获取token const qi…

数据采集监控平台:挖掘数据价值 高效高速生产!

在当今数字化的时代,数据已成为企业非常宝贵的资产之一。然而,要充分发挥数据的潜力,离不开一个强大的数据采集监控平台,尤其是生产制造行业。它不仅是数据的收集者,更是洞察生产的智慧之眼,高效高速处理产…

第一章 应急响应- Linux入侵排查

简介 账号:root 密码:linuxruqin ssh rootIP 1.web目录存在木马,请找到木马的密码提交 2.服务器疑似存在不死马,请找到不死马的密码提交 3.不死马是通过哪个文件生成的,请提交文件名 4.黑客留下了木马文件&#xff0c…

使用 Flask 3 搭建问答平台(一):项目结构搭建

一、项目基本结构 二、app.py from flask import Flask import config from exts import db from models import UserModel from blueprints.qa import bp as qa_bp from blueprints.auth import bp as auth_bp# 创建一个Flask应用实例,__name__参数帮助Flask确定应…

聊一聊前后端权限控制 RBAC(完整流程)

介绍 RBAC(Role-Based Access Control)模型也就是基于角色的权限控制。 权限会分配到角色中,角色再分配给用户,这样用户就根据角色有了不同的权限。 当然,你可以说把权限直接挂载到用户上,这样不是更直接…

专业软件测评机构揭秘:移动app安全测试要点和注意事项

随着移动应用的普及和用户对信息安全的重视,任何一个缺乏安全性保障的应用程序都可能会被用户所抛弃。只有通过全面的安全测试,才能保证应用程序的安全性,增加用户的粘性和忠诚度,移动app安全测试是指对移动应用程序进行安全性评估…

【D3.js in Action 3 精译_015】1.3 D3 视角下的数据可视化最佳实践(下)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…

百川智能,摘下“大模型皇冠上的明珠”?

随着AI产业化和产业AI化成为业界共识,大模型的“新赛季”来了。 2024年是国产大模型全面商业化的元年,各地人工智能产业发展的政策密集出台。同时,在2024世界人工智能大会(WAIC 2024)上,各大AI厂商纷纷表示…