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.

[参考译文] CCS/TMS570LS3137:数据中止

Guru**** 2952510 points

Other Parts Discussed in Thread: TMS570LS3137

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/953450/ccs-tms570ls3137-data-abort

器件型号:TMS570LS3137

工具/软件:Code Composer Studio

大家好、

我们的客户在尝试将32MB NOR 闪存连接到控制器 TMS570LS3137时遇到数据中止。 客户能够读取和写入第一个16MB 数据、但一旦尝试读取16MB 以外的数据(地址= 0x61000000)、他就会获得数据中止。

代码如下:
*((uint16_t *) base_addr + 0x555)= 0x00AA;/*写入解锁周期1 */
*((uint16_t *) base_addr + 0x2AA)= 0x0055;//写入解锁周期2 *
*((uint16_t *) base_addr + 0x555)= 0x00A0;/*写入程序设置命令*
*((uint16_t *) base_addr + 1)= data1;//写入要编程的数据
read_back _data =*((uint16_t *) base_addr + 1);

*((uint16_t *) base_addr + 0x555)= 0x00AA;/*写入解锁周期1 */
*((uint16_t *) base_addr + 0x2AA)= 0x0055;//写入解锁周期2 *
*((uint16_t *) base_addr + 0x555)= 0x00A0;/*写入程序设置命令*
*((uint16_t *) base_addr + 0x800001)= data2;//写入要编程的数据*/
Read_Back 数据=*((uint16_t *) base_addr + 0x800001);

基地址为0x6000000、客户在最后一条语句中获取数据中止

希望您能为我们的客户提供帮助。

此致、
卡洛

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

    您好、Carlo、

    每个片选 is16MB 都支持实际的内存大小。 请参阅数据表中的存储器映射表。

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

    您好 QJ、

    感谢您对此进行深入研究。

    根据我们的客户、 基于 第637页上的 TMS570参考手册"此外、当 EMIF 连接到16位异步器件时、EMIF_BA[0]引脚可用作地址上行 EMIF_A[22]。"

    此外、如果 EMIF_BA[1]提供地址的最低有效位、这意味着 EMIF 具有有效的24条地址线路(BA[0]、A21-A0、BA[1])、因此它应该能够寻址2^24 (16M 地址)。

    由于存储器为16位(每个位置都有2字节数据)、因此16M 地址对应于32MB 数据。

    当客户尝试从0x600000000到0x60FFFFFF 访问地址位置时、行 A21-A0、BA[1]切换为按预期提供从0到8M 内存的物理地址。 但是、一旦它尝试在位置0x61000000写入、总线上就没有任何活动、当它们尝试从同一位置读取时、它们将获得数据中止。

    尝试访问异步存储器时、BA[0]行是否没有意义?

    此致、
    卡洛

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

    您好、Carlo、

    您的客户是否为 BA[0]正确配置了引脚多路复用器? EMIF_BA[0]与 N2HET 复用、默认情况下使用 N2HET。

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

    您好 QJ、

    我们的客户针对他的情况单独发布了一个帖子、请参阅以下链接。

    此致、
    卡洛

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

    您好、Carlo、

    我今天早上进行了测试、无法访问0x6100_0000。 我无法切换用作 EMIF_A[22]的 BA[0]。 我需要咨询我们的设计团队。

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

    您好、Carlo、

    在 EMIF 中、当 EMIF 与16位存储器连接时、EMIF_BA[0]可被用作 EMIF_A[22]。 由于该器件的异步存储器大小限制为16MB、因此 EMIF_BA[0]不能用作该器件的 EMIF_A[22]。