根据蓝牙规范,GATT服务器/数据库是单一设备个体。因此,无论各个角色如何,所有连接都将访问相同的GATT DB。如果两个连接需要不同的配置文件,则需要在GATT数据库上保留两个实例,并为每个连接关联一个实例。
Balun与BLE集成在PSoC 6 MCU中,但阻抗不是50欧姆。因此,您仍然需要一个外部匹配网络来匹配50欧姆。
kHz晶振是可选的。采用BLE的PSoC 6 MCU支持使用Precision ILO(PILO)的无晶体工作模式,可用于BLE低功耗模式时序。
不支持。
不会,每次额外连接的CPU负载都会增加,具体取决于数据加载,连接间隔配置等。
白名单/解析列表中的最大设备数可以是16。
尽管BLE组件可以支持的绑定设备的最大数量没有限制,但BLE组件中绑定设备的数量限制为128,以匹配PSoC 6 MCU BLE中可用的工作闪存大小。
目前在带有BLE器件的PSoC 6 MCU上不支持BLE Mesh。此功能将在未来的软件更新中提供。
无法使用BLE 2.4-GHz RF硬件进行Wi-Fi连接。 RF硬件只能用于BLE。有关Wi-Fi,请参阅Cypress Wi-Fi产品组合网页。
对于带有BLE的PSoC 4和PSoC 6 MCU,BLE堆栈是不同的,因此组件API不同。 API命名约定参数传递机制和API结果报告从PSoC 4到带有BLE的PSoC 6 MCU都有所变化。只需最少的工作量,就可以将现有的PSoC 4 BLE代码移植到带有BLE的PSoC 6 MCU中。
图: CySmart PC OTA 进度窗口
确保选择了正确的. cyacd 文件。
签入BLE组件引导程序设置, 并确保正确设置引导程序特性的数据字节大小。
如果建立连接失败, 请检查您的固件, 并查找自定义主板问题。
如果发生身份验证失败, 请确保安全设置与项目设置相匹配。
如果发现引导程序服务/启用通知失败, 则可能表明设备可能未进入引导程序模式。使设备再次进入引导程序模式, 然后尝试 OTA。检查项目引导程序的特性设置也正确。
如果传输固件映像失败, 请确保选择了正确的. cyacd 文件。确保在固件中正确处理闪存读/写操作。
在大多数情况下, OTA 在身份验证阶段失败, 是因为对等设备中的安全设置不匹配。请确保 CySmart PC 应用程序的安全设置与 OTA 堆栈项目的安全措施匹配。
检查引导程序项目中添加的命令。为此, 请双击引导程序组件, 然后删除项目中不需要的命令
在引导程序项目中, 导航项目 > 生成设置 > 编译 器 > 优化更改为大小 (从调试)
删除不必要的 UART 打印
要减少消耗的 RAM 大小, 请尝试减小堆栈大小
这是因为 Bootloadable 项目没有这些 api 的定义,因此您需要将 api 保留在链接器脚本中。可以从引导加载程序项目中得到 api 的定义。首先, 将 api 保留在脚本文件 cm0gcc 中,将引导程序项目设置为活动状态。打开引导程序项目中的 cm0gcc 文件,添加 "保留 api "。保存并生成项目并运行 mk. bat 文件。在 Bootloadable 项目中,将 API 的声明添加为 ota_mandatory 文件。
CySmart iOS 在建立连接时发送身份验证请求。对于 CySmart PC 和 CySmart Android, 用户需要按 "对" 按钮发送身份验证请求,否则需要通过外围固件发送身份验证请求。
前一电话可能存储了该设备的配对信息 (绑定到设备), 而设备可能没有粘合或已删除连接信息。因此, 电话必须手动删除之前的信息重新配对。
确保外围设备具有该特征的读写属性。如果特性的权限需要身份验证/授权, 请确保提供了这些属性,且确保服务器固件中设置的属性大小小于或等于客户端试图写入的大小。
大多数智能手机都使用解析的专用地址, 所以每次电话都使用随机地址 (不相同)。在4.1 中, 控制器不解析地址, 但主机解释。可以使用以下方法仅连接到一个特定设备。
在应用程序中, 使用绑定但不启用白名单。因此, 每次连接同一设备 (如果只有一个设备) 时, 连接句柄将为4。如果连接新设备, 连接句柄将为3。在 CYBLE_EVT_DEVICE_CONNECTED 事件中, 检查连接句柄。 如果连接句柄不是 4, 请立即断开与外围设备的连接。如果已绑定设备连接 (使用可解析的专用地址), 则连接句柄将为4。
如果中心设备尚未发送 MTU 交换请求, 则可能发生此情况。默认情况下, MTU 大小将设置为23字节。如果要将MTU大小设置为23以上, 则中心设备必须发送 MTU 交换请求。
在使用通知时, 应用程序层中不会有任何确认, 但在链接层中会有确认。这意味着当对等方发送数据包时, 除非发件人在链接层收到确认, 否则不会发送下一个数据包。这样可以确保没有丢失的数据包。
要确保数据包的传递顺序正确, 应及时处理在应用程序层中读取接收到的数据包。这要求应用程序在接收通知时不应忙于其他任务。
iOS 只支持一些特定的配置文件 (例如 HID、ANCS), 用于在蓝牙设置中列出设备名称。参考:
https://support.apple.com/en-us/HT204387
只有当服务器/外围设备拥有这些服务时, iOS 设备才会在其蓝牙设备列表中显示您的设备。
在 BLE组件中, 将设备置为中心和外围GAP角色。对于广播角色, 请按如下方式进行广告设置:
发现模式: 不可探测
广告: 非连通无向广告
对于观察者角色, 请将以下代码添加到 CYBLE_EVT_STACK_ON 事件.
cyBle_discoveryInfo. discProcedure = CYBLE_GAPC_OBSER_PROCEDURE;
CyBle_GapcStartScan ();//API 开始扫描
CyBle_GappStartAdvertisement ();//启动广告的 API
随着这些变化, 该设备将作为广播和观察员。
是的, 如果 MiniProg3 与主机 PC 断开连接并与主板相连, 则 XRES 将保持在电平低的状态, PSoC 在复位时保持复位状态。
调试项目时不能使用硬件重置,但PSoC Creator允许在调试时重新设置软件。
一般情况下, 当另一个程序在使用 MiniProg3 时会发生这种情况。请关闭 PC 上的其他程序, 或断开 MiniProg3 与其他程序的连接来解决此问题。
可以。但是,取决于调试针脚在主板上的连接位置, 如果外部信号受到干扰,调试数据可能会损坏。另外, 如果将 "调试选择" 选项设置为 GPIO, 则不能使用 "附加到运行目标" 功能。
将PSoC Programmer中的“Auto Detection”功能设置为ON。如果不这样做,请确保正确设置“协议”选项,因为PSoC Programmer会根据此设置过滤一些设备。另外,请确保您拥有 www.cypress.com 上最新版本的PSoC Programmer软件。
在PSoC Programmer中未正确选择设备器件号时, 可能会发生这种情况。请注意, PSoC Programmer可能不会直接检查设备系列中的器件号,但会检查是否创建了十六进制文件的器件号, 以及与所选的器件号是否相同。建议在PSoC Programmer中选择 "自动检测" 功能,以便自动选择器件号。
DNL - 差分非线性:对于理想的ADC来说,可以输出分为2n 个均匀步长。任何偏离理想步长宽度的都可称为差分非线性(DNL),它被表示为计数。DNL是每个 ADC 特定体系结构的一个功能,无法通过校准消除DNL。
INL - 积分非线性:DNL累积误差后产生总积分非线性(INL)。可以理解为它是距离ADC理想斜率和中心测量最大的偏差。它被表示为计数。INL 是每个 ADC 特定体系结构的一个功能,无法通过校准消除INL。