前面一篇文章把portapack板子上的两颗iic的声卡芯片讲完了,接下来我想不要直接去看hackrf板子上的spi总线的芯片,而是讲另一个芯片si5351。
这颗si5351芯片是时钟芯片(由800MHz分频提供40MHz 50MHz 及采样时钟),它是iic接口,但是它是在hackrf板子上的。相当于是portapack板子上的iic声卡芯片与hackrf板子上的spi芯片之间的过渡。
代码位置在/firmware/application/hw/si5351.cpp和si5351.hpp
先观察si5351.hpp
#include "i2c_pp.hpp"
class Si5351 {
constexpr Si5351(I2C& bus, I2C::address_t address) :
_clock_control({
ClockControl::power_off(), ClockControl::power_off(),
ClockControl::power_off(), ClockControl::power_off(),
ClockControl::power_off(), ClockControl::power_off(),
ClockControl::power_off(), ClockControl::power_off()
}),
_bus(bus),
_address(address),
_output_enable(0x00)
{
}
}
上面是我摘录的类声明和构建函数,从参数里的I2C和I2C::address_t可以看出,显然这个芯片还是在用iic接口,这和声卡芯片是一样的,只是address值不同。
这个address与声卡芯片类似是在firmware/application/portapack.cpp里指定的并做了初始化的。
si5351::Si5351 clock_generator {
i2c0,

本文详细解读了hackrf板子上采用i2c接口的Si5351时钟芯片,介绍了其初始化、配置和通信原理,通过对比与portapack板子声卡芯片的区别,展示了芯片的I2C接口使用和i2c_pp库的实现。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



