51uwb.cn

 找回密码
 立即注册
查看: 183|回复: 3
打印 上一主题 下一主题

BP400 imu带PA版的源码使能部分?

[复制链接]

6

主题

20

帖子

48

积分

新手上路

Rank: 1

积分
48
跳转到指定楼层
楼主
发表于 2024-10-15 17:13:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

带PA的使能源码部分不对呀感觉注释了这么多,为什么和官方的不太一样?
void dwt_enable_pa(void)
{
//   uint8 buf[4];


//        // Set up MFIO for LED output
//        dwt_readfromdevice(GPIO_CTRL_ID,0x00,4,buf);
//              //enable PA
//        buf[1] &= ~0xC0; //clear the bits
//        buf[1] |= 0x40;
//       
//              //EXTTXE
//              buf[2] &=~0x03;
//                                buf[2] |= 0x01;
//       
//                        //EXTTXE
//              buf[2] &=~0x0C;
//                                buf[2] |= 0x04;
//       
//        dwt_writetodevice(GPIO_CTRL_ID,0x00,4,&buf[0]);


//        //        //if an external power amplifier is being used, TX fine grain power dequeencing must be disabled
////        dwSpiWrite(dev, PMSC, PMSC_TXFSEQ, 0x0000, LEN_PMSC_TXFSEQ);
//        buf[0] = 0;
//        buf[1] = 0;
//         dwt_writetodevice(PMSC_ID,PMSC_TXFINESEQ_OFFSET,2,&buf[0]);


//uint32 reg;
//// Set up GPIO
//reg = dwt_read32bitreg(GPIO_CTRL_ID); // read the current GPIO_CTRL_ID register
//reg |= 0x00054000; // set the appropriate GPIOs
//dwt_write32bitreg(GPIO_CTRL_ID,reg); // write the modified value back
////disable fine grain sequencing
//dwt_write16bitoffsetreg(PMSC_ID,PMSC_RES3_OFFSET+2,0);
    uint32 reg;
    // Set up GPIO
    reg = dwt_read32bitreg(GPIO_CTRL_ID); // read the current GPIO_CTRL_ID register
reg |= 0x00054000; // set the appropriate GPIOs
//  reg |= 0x00014000;
    dwt_write32bitreg(GPIO_CTRL_ID,reg);  // write the modified value back
    //disable fine grain sequencing
dwt_write16bitoffsetreg(PMSC_ID,PMSC_RES3_OFFSET+2,0);
} // end _dwt_enableleds()

/*官方提供*/
void dwt_setlnapamode(int lna, int pa)
{
    uint32 gpio_mode = dwt_read32bitoffsetreg(GPIO_CTRL_ID, GPIO_MODE_OFFSET);
    gpio_mode &= ~(GPIO_MSGP4_MASK | GPIO_MSGP5_MASK | GPIO_MSGP6_MASK);
    if (lna)
    {
        gpio_mode |= GPIO_PIN6_EXTRXE;
    }
    if (pa)
    {
        gpio_mode |= (GPIO_PIN5_EXTTXE | GPIO_PIN4_EXTPA);
    }
    dwt_write32bitoffsetreg(GPIO_CTRL_ID, GPIO_MODE_OFFSET, gpio_mode);
}

回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
沙发
发表于 2024-10-15 21:53:32 | 只看该作者
一个是直接立即数操作,一个是宏定义实现。
void dwt_enable_pa(void)
有效代码主要是操作GPIO_CTRL_ID 寄存器
回复

使用道具 举报

6

主题

20

帖子

48

积分

新手上路

Rank: 1

积分
48
板凳
 楼主| 发表于 2024-10-23 08:54:11 | 只看该作者
目前发射功率配置部分是已经配置到最大发射功率了吗?
void dwt_SetTxPower(dwt_config_t *config)
{
                uint32 power = 0;
          dwt_txconfig_t configTX;

    configTX.PGdly =  0xc2;
    if((power == 0x0) || (power == 0xFFFFFFFF)) //if there are no calibrated values... need to use defaults 如果没有校准需要使用默认值
    {

    }

          configTX.power = 0x1F1F1F1F;

    dwt_configuretxrf(&configTX);
}
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
地板
发表于 2024-10-23 09:12:36 | 只看该作者
梁雨松 发表于 2024-10-23 08:54
目前发射功率配置部分是已经配置到最大发射功率了吗?
void dwt_SetTxPower(dwt_config_t *config)
{

这个是我们匹配整个pcb设计以及天线,测试出来的最佳配置
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-11-23 07:57 , Processed in 0.011791 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表