首页 > 其他分享 >CH57X/CH58X/CH59X 加PA应用

CH57X/CH58X/CH59X 加PA应用

时间:2024-10-08 19:45:03浏览次数:7  
标签:CH57X PA tx CH59X pa CH58X pin config uint32

一、前言

  在有些时候产品需要做到更远的距离在原来的基础上加上PA放大芯片来实现广播或者连接距离上的提升。

PA是Power Amplifier的简称,中文名称为功率放大器,简称“功放”,指在给定失真率条件下,能产生最大功率输出以驱动某一负载的放大器。对于射频通信系统,PA负责发射通道的信号放大,实现增加无线通讯距离的目的。

二、PA芯片使用

常用的有AT2401C,RFX2401C,CB2401C等

库中已经封装好了对应的函数

/* BLE pa control config struct */
typedef struct tag_ble_pa_control_config
{
    uint32_t txEnableGPIO;        // tx enable gpio register
    uint32_t txDisableGPIO;       // tx disable gpio register
    uint32_t tx_pin;              // tx pin define
    uint32_t rxEnableGPIO;        // rx enable gpio register
    uint32_t rxDisableGPIO;       // rx disable gpio register
    uint32_t rx_pin;              // tx pin define
} blePaControlConfig_t;

/**
* @brief pa control init
*
* @note Can't be called until role Init
*
* @param paControl - pa control parameters(global variable)
*
* @return Command Status.
*/
#define BLE_PAControlInit (( void (*) ( blePaControlConfig_t *paControl )) BLE_LIB_JT(109) )

代码实现

GPIOB_ModeCfg(GPIO_Pin_13|GPIO_Pin_14,GPIO_ModeOut_PP_5mA);//任意两个IO都可
blePaControlConfig_t pa_config;//全局变量
pa_config.txEnableGPIO=(uint32_t)&R32_PB_OUT;
pa_config.txDisableGPIO=(uint32_t)&R32_PB_CLR;
pa_config.tx_pin=GPIO_Pin_13;
pa_config.rxEnableGPIO=(uint32_t)&R32_PB_OUT;
pa_config.rxDisableGPIO=(uint32_t)&R32_PB_CLR;
pa_config.rx_pin=GPIO_Pin_14;
BLE_PAControlInit(&pa_config);加在角色初始化之后

原理图参考

仅用于个人学习分享;

如有错漏请指正。

 

标签:CH57X,PA,tx,CH59X,pa,CH58X,pin,config,uint32
From: https://www.cnblogs.com/frontier/p/18452362

相关文章

  • CH58x/CH59x/CH57x RF_PHY(2.4g)切换Channel发送接收
    前言:在做某些应用的时候可能需要我们发送或者接收时切换对应的channel。此次完成测试的平台在WCH的CH592F上完成的。在工作发送过程中切换37、38、39三个信道进行轮询发送。具体需要使用最关键的函数是:RF_SetChannel实现代码如下:if(events&channl_37_tx_evt){......
  • CH58x/59x SPI0代码参考
    前言:代码参考为首字节模式和数据流模式,均使用DMA,建议使用数据流DMA。一、数据流/首字节收发代码参考数据流流程:主机定时器1ms间隔发送;从机接收数据;从机填入发送数据到DMA并通知主机接收;主机DMA接收数据;首字节流程:主机定时器1ms间隔发送;从机首字节接收并DMA接收完整数......
  • CH582,CH592,CH57x系列芯片看门狗中断使用示例
    #include"CH58x_common.h"/**********************************************************************@fnDebugInit**@brief调试初始化**@returnnone*/voidDebugInit(void){GPIOA_SetBits(GPIO_Pin_9);GPIOA_ModeCfg(GPIO_Pin......
  • ch58x/ch59xADC差分采样NTC电阻获取当前温度
    前言:之前的文章中也有关于使用I2C器件进行温度的采集的文章采集温度的方式不止使用传感器,也可以使用NTC温敏电阻进行采集,此方法的外围电路较为简单切成本较低,代码也较为容易实现。实现原理:先通过差分采样电路进行采集,采集之后可以获取NTC或者定值电阻的电压;已知这些信息可以通过......
  • CH57x/CH58x/CH59x获取从机广播信息
    有时需要通过主机设备(MCU非手机)获取从设备的广播信息例如广播包,MAC地址,扫描应答包等以下的程序片段及功能实现是在WCH的CH59X的observer例程上实现的;1、获取广播包所有的函数在库函数中都可以找到,具体实现函数如下:caseGAP_DEVICE_INFO_EVENT:{Observ......
  • CH57x/CH58X/CH59X/CH32F/V208OTA使用说明
    目前提供了两种OTA升级方式,方式一:带库升级;每次升级可以带着库一起进行升级(带库升级适用于flash较大的芯片)方式二:固定库升级;升级时库不会随着升级而升级(适用于flash不够用时)方式一:升级时需要同时烧录这三个固件:(可以使用isp工具同时烧录也可以使用合并工具将三个工程合并后再烧......
  • CH58x芯片Hardfault问题排查
    前言:针对RISC-V芯片进入HardFault_Handler函数的问题排查提供讲解。一、HardFault函数添加PC指针打印在公共文件的sys.c函数中找到函数并修改如下:__INTERRUPT__HIGH_CODE__attribute__((weak))voidHardFault_Handler(void){uint32_tv_mepc,v_mcause,v_mtval;p......
  • 低功耗蓝牙系列芯片CH57x,CH58x,CH59x实现蓝牙多通道配对/回连同一台电脑或多台电脑实
    依旧以老朋友CH583为例,我们随便打开一个HID例程,还是以HID_Keyboard例程做讲解:1、直奔主题到我们的库函数初始化函数中去,红圈圈中的SNVAddr配置信息为我们此次配对连接后所获取到的信息存储的地址区,配对信息中包含:对方MAC地址,设备信息,协商所得IRK密钥等关键信息,都会保存到SNVAddr......
  • CH57x,CH58x,CH59x芯片_SPI借助GPIO中断完成中断传输
    受其他项目的启发,如果IO充裕,且在SPI主机与SPI从机均可以自行编程的情况下,可以尝试在4线SPI的基础上增加两根GPIO线,通过IO中断的形式通知对方进行收数据;非SPI中断形式,以两颗CH582通讯为例,1、主机程序:voidmain(){SetSysClock(CLK_SOURCE_PLL_60MHz);GPIOA_ModeCfg......
  • CH59X/CH58X/CH57X 片上flash的使用
    以CH592F为例;在使用时先看手册对code和data区的划分一、DataFlash的读写的操作 先看几个操作dataflash的API(读擦写);/***@briefreadData-Flashdatablock**@paramStartAddr-Addressofthedatatoberead.//要读取的数据的地址,传入的的地址是相对地址所......