工具/软件:Code Composer Studio
是否有 PCM1862 I2C 软件配置参考程序可用?如果没有、是否有可用的文档?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
软件配置完全通过 I2C 写入来完成、您是否正在寻找一种实现 I2C 写入的方法或为特定应用配置器件的示例?
虽然我认为我们没有任何特定的代码可共享、但您可以通过在.h 文件中输出寄存器配置、使用 EVM 和 GUI 生成此代码。 下面是一个默认寄存器配置的示例:
typedef unsigned char cfg_u8;
typedef union{
结构{
CFG_u8偏移;
CFG_u8值;
};
结构{
cfg_u8命令;
CFG_u8参数;
};
} cfg_reg;
#define CFG_meta_switch (255)
#define CFG_META_DELAY (254)
#define CFG_META_BURST (253)
/*示例 C 代码*/
/*
//可将 n 个字节写入器件的外部实现的函数
// PCM51xx 和 TAS5766目标需要在多次写入时设置 I2C 寄存器的 HIGH 位(0x80)。
//有关更多信息,请参阅器件数据表。
extern int i2c_write (unsigned char * data、int n);
//外部实现的函数将执行延迟 n 毫秒
extern int delay (int n);
//实现示例。 呼叫方式:
// transmit 寄存器(寄存器、sizeof (寄存器)/sizeof (寄存器[0]));
void transmit 寄存器(cfg_reg *r、int n)
{
int i = 0;
while (i < n){
switch (r[i].command){
CFG_META_SWITCHCH 案例:
//用于传统应用程序。 被忽略。
中断;
案例 CFG_META_DELAY:
延迟(r[i].param);
中断;
案例 CFG_META_BURST:
I2C_WRITE ((unsigned char *)&r[i+1]、r[i].param);
i += r[i].param/2 +1;
中断;
默认值:
I2C_WRITE ((unsigned char *)&r[i]、2);
中断;
}
i++;
}
}
*
CFG_reg 寄存器[]={
{ 0x00、0x00 }、
{ 0x01、0x00 }、
{0x02、0x00}、
{ 0x03、0x00 }、
{0x04、0x00}、
{0x05、0x86}、
{0x06、0x41}、
{0x07、0x41}、
{0x08、0x42}、
{0x09、0x42}、
{ 0x0a、0x00 }、
{0x0B、0x44}、
{ 0x0c、0x00 }、
{ 0x0d、0x00 }、
{ 0x0E、0x00 }、
{ 0x0F、0x00 }、
{ 0x10、0x01 }、
{0x11、0x20}、
{0x12、0x00}、
{ 0x13、0x00 }、
{ 0x14、0x00 }、
{ 0x15、0x00 }、
{ 0x16、0x00 }、
{0x17、0x00}、
{0x18、0x00}、
{0x19、0x00}、
{ 0x1a、0x00 }、
{ 0x1b、0x00 }、
{ 0x1c、0x00 }、
{ 0x1d、0x00 }、
{ 0x1E、0x00 }、
{ 0x1f、0x00 }、
{0x20、0x03}、
{0x21、0x03}、
{0x22、0x00}、
{0x23、0x01}、
{0x24、0x50}、
{0x25、0x07}、
{0x26、0x03}、
{ 0x27、0x3f}、
{0x28、0x11}、
{0x29、0x01}、
{ 0x2a、0x01 }、
{0x2b、0x08}、
{ 0x2C、0x00 }、
{ 0x2D、0x00 }、
{0x2e、0x00}、
{ 0x2F、0x00 }、
{ 0x30、0x00 }、
{0x31、0x00}、
{ 0x32、0x00 }、
{ 0x33、0x01}、
{0x34、0x00}、
{0x35、0x00}、
{0x36、0x01}、
{0x37、0x00}、
{0x38、0x00}、
{0x39、0x00}、
{0x3a、0x00}、
{ 0x3b、0x00 }、
{ 0x3c、0x00 }、
{0x3D、0x00}、
{0x3E、0x00}、
{ 0x3f、0x00 }、
{0x40、0x80}、
{0x41、0x7f}、
{0x42、0x00}、
{0x43、0x80}、
{0x44、0x7f}、
{0x45、0x00}、
{0x46、0x80}、
{0x47、0x7f}、
{0x48、0x00}、
{0x49、0x80}、
{0x4a、0x7f}、
{0x4b、0x00}、
{0x4c、0x80}、
{0x4d、0x7f}、
{0x4e、0x00}、
{0x4f、0x80}、
{0x50、0x7f}、
{0x51、0x00}、
{0x52、0x80}、
{0x53、0x7f}、
{0x54、0x00}、
{0x55、0x80}、
{0x56、0x7f}、
{0x57、0x00}、
{0x58、0x80}、
{0x59、0x00}、
{0x5a、0x00}、
{0x5b、0x00}、
{0x5c、0x00}、
{0x5d、0x00}、
{ 0x5e、0x00 },
{0x5f、0x00}、
{0x60、0x11}、
{0x61、0x00}、
{0x62、0x10}、
{0x63、0x00}、
{ 0x64、0x00 }、
{0x65、0x00}、
{0x66、0x00}、
{0x67、0x00}、
{0x68、0x00}、
{0x69、0x00}、
{0x6a、0x00}、
{0x6b、0x00}、
{ 0x6c、0x00 }、
{0x6d、0x00}、
{0x6e、0x00}、
{ 0x6f、0x00 }、
{0x70、0x70}、
{0x71、0x10}、
{ 0x72、0x0F }、
{0x73、0x03}、
{0x74、0x32}、
{0x75、0x00}、
{0x76、0x11}、
{0x77、0x44}、
{0x78、0x07}、
{0x79、0x00}、
{ 0x7a、0x00 }、
{0x7B、0x00}、
{ 0x7c、0x00 }、
{ 0x7d、0x00 }、
{0x7E、0x00}、
{ 0x7f、0x00 }、
{ 0x00、0x01 }、
{ 0x01、0x00 }、
{0x02、0x2D}、
{ 0x03、0x00 }、
{0x04、0x00}、
{0x05、0x00}、
{ 0x06、0x00 }、
{ 0x07、0x00 }、
{ 0x08、0x00 }、
{0x09、0x3a}、
{0x0a、0x45}、
{ 0x0B、0x00 }、
{ 0x0c、0x00 }、
{ 0x0d、0x00 }、
{ 0x0E、0x00 }、
{ 0x0F、0x00 }、
};
希望这对您有所帮助!
Zak