TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28027无法直接改写I2c寄存器

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

mangui zhang:你的意思是例如这样 I2caRegs.I2CSAR = 0xD0;赋值其实是没有写进去吗?
这个只要文件参与编译了肯定就写进去了在线调试单步进行看看寄存器的变化

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

Susan Yang:建议您自己在线调试一下,在写寄存器处打断点,而后单步调试一下

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

user5388798:

回复 Susan Yang:

单步过,也写不进去,但是其他的都能写进去,就是关于i2c的不能用,是因为其他driver.lib文件里缺少什么东西嘛

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

Susan Yang:

回复 user5388798:

手边没有28027的板子,用28035测试的,例程是Example_2803xI2C_eeprom

调试结果如下

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

user5388798:

回复 Susan Yang:

好像28035和28027的库不一样,我这边27的I2c不行,而且我看了下好像27的I2c的库没写全的

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

Susan Yang:

回复 user5388798:

好的 我回头看看找个板子来试试

用的是TMS320F28027但是无法直接改写I2c的寄存器

用的是原有的例程,但是通过I2caRegs无法改写掉I2C寄存器

但是用GpioCtrlRegs的可以,想问下是因为启动文件少了什么东西吗

    //
    // Initialize I2C
    //
    I2caRegs.I2CSAR = 0xD0;        // Slave address – EEPROM control code

    //
    // I2CCLK = SYSCLK/(I2CPSC+1)
    //
#if (CPU_FRQ_40MHZ||CPU_FRQ_50MHZ)
    I2caRegs.I2CPSC.all = 4;       // Prescaler – need 7-12 Mhz on module clk
#endif

#if (CPU_FRQ_60MHZ)
    I2caRegs.I2CPSC.all = 6;       // Prescaler – need 7-12 Mhz on module clk
#endif
    I2caRegs.I2CCLKL = 10;           // NOTE: must be non zero
    I2caRegs.I2CCLKH = 5;            // NOTE: must be non zero
    I2caRegs.I2CIER.all = 0x00;//0x24;      // Enable SCD & ARDY interrupts

    //
    // Take I2C out of reset. Stop I2C when suspended
    //
    I2caRegs.I2CMDR.all = 0x0020;

    I2caRegs.I2CFFTX.all = 0x6000;   // Enable FIFO mode and TXFIFO
    I2caRegs.I2CFFRX.all = 0x2040;   // Enable RXFIFO, clear RXFFINT,

user5388798:

回复 Susan Yang:

那个,有结果了吗


赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28027无法直接改写I2c寄存器
分享到: 更多 (0)