历史上的今天
返回首页

历史上的今天

今天是:2025年03月06日(星期四)

正在发生

2020年03月06日 | STM32开发笔记91: SX1268驱动程序设计(发送模式)

2020-03-06 来源:eefocus

单片机型号:STM32L053R8T6


本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍发送模式的相关驱动程序。


一、TX模式

In TX mode after ramping-up the Power-Amplifier (PA) transmits the data buffer. In TX mode the circuit can operate in

different sub-modes: single mode or single with timeout mode.(在TX模式下,功率放大器(PA)启动后便可以传输数据缓冲区中的数据。在TX模式下电路可以工作不同的子模式:单模式或单超时模式)


The timeout in Tx mode can be used as a security to ensure that if for any reason the Tx is aborted or does not succeed (ie. the TxDone IRQ never is never triggered), the TxTimeout will prevent the system from waiting for an undefined amount of time. Using the timeout while in Tx mode removes the need to use resources from the host MCU to perform the same task.(在Tx模式下的超时可以用作一种安全措施,以确保如果由于任何原因Tx被中止或没有成功(例如:TxDone IRQ永远不会被触发),TxTimeout将防止系统等待一个未定义的时间量。在Tx模式下使用超时可以避免使用主机MCU中的资源来执行相同的任务。)


In TX mode, BUSY will go low as soon as the PA has ramped-up and transmission of preamble starts.(在发送模式,功率放大器启动并传输前导码时,BUSY引脚就会变为低电平)


可以通过SetTxParams函数设置PA的输出能量和启动时间(10us到3.4ms)


二、SetTxParams函数

能量的单位是dBm,有2个范围:


-17到14dBm,步长为1db,低能量PA被选中

-9到22dBm,步长为1db,高能量PA被选中

通过SetPaConfig函数的参数deviceSel选择低能量PA或者高能量PA,缺省为低能量PA,14dBm被选中。


PA启动时间见下表:

三、SetPaConfig函数

其具有4个参数,第3-4参数为固定值,不需理会。1和2的具体取值,可参考下表,最后1列表示SetTxParam函数中设定的数值。

四、OCP寄存器

有了上述准备后,还需注意数据文档中的一些内容,原文如下:


However, to avoid consuming too much energy, the user is free to configure the Over Current Protection (OCP) register manually. At Reset, the OCP is configured to limit the current at 60 mA.(为了避免过大的能量损耗,我们还可手动配置OCP即初期,在复位后,其配置为最大60mA)

The OCP is configurable by steps of 2.5 mA and the default value is re-configured automatically each time the function SetPaConfig(...) is called. If the user wants to adjust the OCP value, it is necessary to change the register as a second step after

calling the function SetPaConfig(...).(OCP的步长为2.5mA,每次调用SetPaConfig函数会自动重新配置。假如用户想调整OCP值,需要在SetPaConfig后,改变OCP寄存器的值)


OCP与硬件设计相关,不同的硬件设计对应不同的硬件电路,查看E22-400M22S数据手册可知,其最大发射功率22dBm,所以我们可以按照22dBm进行配置。

五、程序实现

typedef enum

{

    RADIO_RAMP_10_US                        = 0x00,

    RADIO_RAMP_20_US                        = 0x01,

    RADIO_RAMP_40_US                        = 0x02,

    RADIO_RAMP_80_US                        = 0x03,

    RADIO_RAMP_200_US                       = 0x04,

    RADIO_RAMP_800_US                       = 0x05,

    RADIO_RAMP_1700_US                      = 0x06,

    RADIO_RAMP_3400_US                      = 0x07,

}RadioRampTimes_t;

void SX126xSetPaConfig(uint8_t paDutyCycle, uint8_t hpMax);

void SX126xSetTxParams(int8_t power, RadioRampTimes_t rampTime);

void CSX1268::SX126xSetPaConfig(uint8_t paDutyCycle, uint8_t hpMax)

{

uint8_t buf[4];

 

buf[0] = paDutyCycle;

buf[1] = hpMax;

buf[2] = 0x00;

buf[3] = 0x01;

SX126xWriteCommand(RADIO_SET_PACONFIG, buf, 4 );

}

void CSX1268::SX126xSetTxParams(int8_t power, RadioRampTimes_t rampTime)

{

uint8_t buf[2];

SX126xSetPaConfig(0x04, 0x07);

if(power > 22)

{

power = 22;

}

else if(power < -9)

{

power = -9;

}

SX126xWriteRegister(REG_OCP, 0x38); 

buf[0] = power;

buf[1] = ( uint8_t )rampTime;

SX126xWriteCommand(RADIO_SET_TXPARAMS, buf, 2);

}

推荐阅读

史海拾趣

BERGQUIST公司的发展小趣事

随着电子设备的不断发展和性能提升,热管理问题变得日益突出。BERGQUIST公司凭借其在热管理领域的深厚积累,成功研发出了一系列具有革命性的热管理产品。这些产品不仅有效解决了电子设备散热问题,还大大提高了设备的稳定性和可靠性。其中,BERGQUIST的柔性石墨散热片凭借其优异的导热性能和良好的适应性,在市场上获得了广泛认可。

FTDI公司的发展小趣事

随着产品技术的不断成熟和市场的逐步认可,BERGQUIST公司开始积极拓展市场。公司不仅在国内市场取得了显著成绩,还积极开拓国际市场,与众多知名电子企业建立了长期合作关系。通过不断提升产品质量和服务水平,BERGQUIST成功树立起了自己的品牌形象,成为热管理领域的佼佼者。

Anachip公司的发展小趣事

品质一直是Anachip公司非常重视的一环。为了确保产品的稳定性和可靠性,公司建立了严格的品质管理体系,从原材料采购到生产过程的每一个环节都进行严格控制。同时,公司还加大了品牌建设的力度,通过广告宣传、赞助活动等方式提升品牌知名度。这些举措不仅提升了公司的市场竞争力,也赢得了客户的信任和忠诚。

Decawave公司的发展小趣事

在2015年的微软室内定位大赛中,Decawave的UWB技术大放异彩。公司凭借其高精度、低误差的UWB定位解决方案,在激烈的竞争中脱颖而出,荣获最佳无线电定位解决方案奖。这一荣誉不仅证明了Decawave在UWB技术领域的领先地位,也为其在市场上的推广和应用奠定了坚实的基础。

Analog Microelectronics GmbH公司的发展小趣事

在2015年的微软室内定位大赛中,Decawave的UWB技术大放异彩。公司凭借其高精度、低误差的UWB定位解决方案,在激烈的竞争中脱颖而出,荣获最佳无线电定位解决方案奖。这一荣誉不仅证明了Decawave在UWB技术领域的领先地位,也为其在市场上的推广和应用奠定了坚实的基础。

FRONTIER公司的发展小趣事

背景:假设FRONTIER公司也涉足绿色能源领域。

发展故事:面对全球气候变化和环境问题的日益严峻,FRONTIER公司积极响应可持续发展号召,开始布局绿色能源产业。公司通过引进先进的光伏技术、储能技术和智能电网技术,成功打造了一系列绿色能源解决方案。这些解决方案不仅有效降低了企业的能耗和碳排放量,还为全球能源转型和环境保护做出了积极贡献。FRONTIER的绿色转型不仅赢得了市场的认可和支持,也为公司未来的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

什么器件实现电压差大不导通,电压差小导通?

A。B之间接入一器件或电路,远高于0V时,不导通。稍高于0V时,导通。怎样可以实现?…

查看全部问答>

现在大家开发WINCE是用什么版本的呢?

各位前辈们,请问你们现在开发WINCE的版本是什么?还有开发环境是用哪个操作系统,我是刚刚接触;都不懂,请赐教...…

查看全部问答>

wince 添加IIC总线驱动

我以前没做过这样的开发,刚接触,不知道从哪里做起,不知道哪位有做过的,可以介绍一下吗? 或者做过的能不能发个文件给我看看? 多谢谢!…

查看全部问答>

CCS 不用开发板卡能直接运行软件吗?

原来我买了开发板,可现在没在我这,我想直接运行CCS象keil,VC之类的软件一样,看看软件在CCS之下的运行情况,可是我open  ti\\\\tutorial目录下的工程编译rebuild all  在debug目录下仅仅生成了obj文件,没有out文件,我看li ...…

查看全部问答>

PCB软件培训资料

一 怎样区分pcb文件用哪个软件打开? 答:用记事本或写字板先打开pcb文件,若文件是有顺序的数字和字母就可以用Protel 99 SE,若文件是乱码,就可以用.Pads2007打开。 二.Protel 99 SE的pcb格式转换成cam350的gerber文件? 答:1.先用记事本检测 ...…

查看全部问答>

麻烦大侠们帮我解读一下SIMPLICITI里的一段程序

ifdef I_WANT_TO_CHANGE_DEFAULT_ROM_DEVICE_ADDRESS_PSEUDO_CODE  {    addr_t lAddr;     createRandomAddress(&lAddr);    SMPL_Ioctl(IOCTL_OBJ_ADDR, IOCTL_ACT_SET, &lAddr);  ...…

查看全部问答>

QuartusII NoDevice的问题

我刚新装的QuartusII,在下载里面显示No Hardware,点击Add Hardware提示kernel mode driver not installed,在网上找了半天,都解决不了,希望高人指点,小弟不胜感激 ~…

查看全部问答>

LCD学习小记1

最近看了SGP18T-00LCD模块,先做一点小记吧,后边寄存器部分的日后有用到的再补上。这个LCD模块功能特性呢,列位看官自己评价吧。 再看看LCD模块的PIN吧。我比较关心这个,呵呵。 没错啦,我用用的上的也就图中几个黄色高显的引脚而已。据推 ...…

查看全部问答>

一些常用3D模型

一些常用PCB3D模型,欢迎大家下载。…

查看全部问答>