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.

[参考译文] PCM2704:自定义EEPROM信息

Guru**** 2373240 points
Other Parts Discussed in Thread: PCM2704C, PCM2704
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/636348/pcm2704-custom-eeprom-info

部件号:PCM2704
您好,我正在尝试将我自己的信息编程到PCM2704的EEPROM中。 
我从数据表中写入一个字段。 我已验证内存是否已正确写入。
但如果我将其连接到PC,则设备名称绝对不正确。 它由荒谬的角色组成。
为了澄清,我仍将从窗口附加屏幕。
您对此没有任何经验吗? 谢谢你。

unsigned char PCM2704[]={0x00,0x00,0xBB,0x08,0x04,0x27, //0x00,0x00是地址
0x50,0x72,0x6F,0x64,0x75,0x63,0x74,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x73,0x2E,
0x56,0x65,0x6E,0x64,0x6F,0x72,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x73,0x20,0x61,
0x72,0x65,0x20,0x70,0x6C,0x61,0x63,0x65,0x64,0x20,0x68,0x65,0x72,0x65,0x2E,0x20,
0x80,
0x7D,
0x0A,0x93,0x01};
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Marek:
    PCM2704C会自动查看CK和DT引脚,如果EEPROM存在,它将从中读取数据(57字节)。 只要EEPROM已正确编程,则无需在PCM侧进行配置。

    要对EEPROM进行编程,您需要一些能够执行I2C写入的设备。 PCM2704不能执行这些写入操作。 例如,MSP430是某些主机处理器。 下面是一个关于它的应用说明: www.ti.com/.../slaa208a.pdf

    有关外部ROM的更多信息,请参阅数据表第22页: www.ti.com/.../pcm2704c.pdf
    请注意,必须在写入时翻转字节,以便首先发送LSB。

    希望这能回答您的问题,您将能够对EEPROM进行编程。 谢谢。

    此致,
    Ravi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我有一个由MSP430编程的EEPROM。 在EEPROM中,我写入了上面列出的字段... 
    图中的结果:


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是我的代码。

    #include "msp430g2553.h"
    #include "I2C.h"
    
    #define LED_ON {P1DIR|=BIT0;P1OUT|=BIT0;}
    #define LED_OFF {P1DIR|=BIT0;P1OUT&=~BIT0;#define LEM_Address
    
    	0x50
    
    void EEPROM_Write(r);#define LED_off,
    
    
    
    
    
    无符号阵列{0x27_char_0702;无符号数组(0和0702;无符号数组(0组) 
    0x50,0x72,0x6F,0x64,0x75,0x63,0x74,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x73,0x2E,
    0x56,0x65,0x6E,0x64,0x6F,0x72,0x20,0x73,0x74,0x72,0x69,0x6E,0x67,0x73,0x20,0x61,
    0x72,0x65,0x20,0x70,0x6C,0x61,0x63,0x65,0x64,0x20,0x68,0x65,0x72,0x65,0x2E,0x20,
    0x80,
    0x7D,
    0x0A,0x93,0x01}; int大小; int main () { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALC1_1MHz; DCOCTL = CALDCO_1MHz; __ENable_interrupt (); EEPROM_Write(); 大小= sizeof(PCM2704_Array); for (;) {//FRAM_Read(0x00) ; } } void EEPROM_Write() { I2C_Writeinit(EEEPROM_Address); While (I2C_NotReady()); I2C_Write(59, PCM2704_Array); While (I2C_NotReady()); } unsigned char FRAM_Read (int Address) { Address_of_read_array[0]=(Address >> 8); Address_of_read_array[1]=(Address & 0xFF); I2C_Writeinit (EEPROM_Address); While (I2C_NotReady()); I2C_Write (2,Address_for _Read_array); While (I2C_NotReady ()); I2C_Readinit (EPROM_Address); While (I2C_NotReady ()); I2C_Read (59,READ_array); while (I2C_NotReady()); r_value = read_array[0]; 返回r_value; }