配置 AFE 器件需要执行两个主要步骤。首先,确保正确配置 GPIO。在 AFE 器件上,设置了两个主要 GPIO:DAC Mode Select(DAC 模式选择)和 System Shutdown(系统关闭)。这两个引脚都被拉至低电平。也可将连接的所有其他 GPIO 拉至低电平。
下一步是通过 SPI 配置器件。在软件示例中,HAL_afe031Init() 函数配置 AFE031,该函数在 AFE03x_Config.c 中进行定义。
以下步骤显示了为正确配置器件,须遵循的函数顺序:
- 配置 GPIO。
- 设置 AFE 器件上的 SD 和 DAC 引脚。需要将这两个引脚拉至低电平。
- 软件示例函数:HAL_afe031_cfgGpio();
- 配置 SPI。
- 针对 16 位字符配置 SPI 模块。更多有关 SPI 要求的信息,请参阅 AFE031 电力线通信模拟前端数据表。
- 软件示例函数:HAL_spi_cfg();
- 在 AFE 器件上执行软复位。
- 将 0x14 写入复位寄存器。
- 软件示例函数:HAL_afe031_softReset();
- 启用偏置。
- 将 0x03 写入 enable2 寄存器。
- 软件示例函数:HAL_afe031_biasEnable();
- 选择频带。
- 将 1 或 0 写入 Control1 寄存器中的 CA_CBCD 位。如果写入 1,则 TX 和 RX 滤波器的频率响应将配置为 CENELEC B、C、D。如果写入 0,则将配置 CENELEC A。
- 软件示例函数:HAL_afe031_bandSelect(1);
- 清除所有中断。
- 将 0x00 写入 control2 寄存器。
- 软件示例函数:HAL_afe031_clrAllInt();
- 配置所有中断。
- 可以通过对 control2 寄存器进行写入来配置中断。软件示例函数目前仅启用指示热过载的 T_flag。
- 软件示例函数:HAL_afe031_cfgInt();
- 启用 zc。
- 将 1 写入 enable2 寄存器中的 ZC 位。
- 软件示例函数:HAL_afe031_zcEnable();
- 写入 TX 增益 - 如果要发送
- 将 0、1、2 或 3 写入增益选择寄存器中的 TXG 位。增益如下所示:
- 0 =0.25V/V
- 1 = 0.5V/V
- 2 = 0.707V/V
- 3 = 1V/V
- 软件示例函数:HAL_afe031_writeTxGain(UINT16 gain);
- 请注意,软件示例函数使用数组来写入 0-3。因此,在使用该函数时,输入参数对应于所需的 HAL_afe031_txGainLut 数组元素的索引。例如,将 0 传递给函数对应于 0.25V/V 的增益。
- 写入 RX 增益 - 如果要接收。
- 将 0-15 写入增益选择寄存器中的 RXG 位。增益范围为 0.25V/V(将 RXG 设置为 0x0 时)至 128V/V(将 RXG 设置为 0xF 时)。
- 如需了解具体的增益,请参阅表 5-1。
- 软件示例函数:HAL_afe031_writeRxGain(UINT16 gain);
- 请注意,软件示例函数使用数组来写入 0-15。因此,在使用该函数时,输入参数对应于所需的 HAL_afe031_rxGainLut 数组元素的索引。包含的数组仅具有用于部分 RX 增益配置的值。
完成以上步骤之后,根据该器件是用作发送器还是接收器,开始执行所需的最后几项配置。