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.

[参考译文] TMS570LS1227:EMIF 接口-访问问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/814719/tms570ls1227-emif-interface---access-issue

器件型号:TMS570LS1227

我们有一个用作"FlexRay 网关"的 TMS5701227。 目前、FlexRay 处于运行状态、其传输和接收的数据项保存在内部 RAM 中、现在我们需要通过将这些数据项从内部 RAM 移动到作为 FPGA 一部分实现的外部 RAM 来完成系统设计。

我们遇到的问题是、外部存储器接口基本上没有提供我们预期的信号、为了确定问题、我们添加了一些测试代码(如下所示)、 我们还按照 另一个 EMIF 线程中的建议增加了设置、选通和保持时间。

修改了异步设置:CE2FFG 中的 SETUP (设置)、STROBE (选通)和 HOLD (保持)字段为最大值

   emifREG->CE2CFG =(uint32)((uint32) 0U << 31U)|

                     (uint32)((uint32) 0U << 30U)|
                     (uint32)((uint32) 15U << 26U)|
                     (uint32)((uint32) 63U << 20U)|
                     (uint32)((uint32) 7U << 17U)|
                     (uint32)((uint32) 1U <<13U)|
                     (uint32)((uint32) 5U << 7U)|
                     (uint32)((uint32) 1U << 4U)|
                     (uint32)((uint32) 0U << 2U)|
                     (uint32)(((uint32) EMIF_16_bit_port);

将 PMU 区5从非共享器件修改为严格排序可共享、并启用子区6和7基地址和大小、在0x60000000至0x63FFFF 之间保持不变

     ;设置区域5

       MOV  r0 、#4
       MCR  P15、#0、   r0、C6、C2、 0
       LDR  r0、 r5Base
       MCR  P15、#0、   r0、C6、C1、 0
       MOV  r0 、#0x0000
       ORR  r0、 r0   、#0x1300
       MCR  P15、#0、   r0、C6、C1、 4.
       movw r0、 #((0 << 15)+(0 << 14)+(0 << 13)+(0 << 12)+(0 << 11)+(0 << 10)+(0 << 9)+(0 << 8)+(0x19 << 1)+(1))
       MCR  P15、#0、   r0、C6、C1、 2

测试代码(大纲)

   U16 Val;
   Volatile U16* Loc;


   Val = 0x5555;
   LOC =(易失性 U16*) 0x60000000;

………

       *位置= Val;

获得的 EMIF 结果

显示器件正在尝试进行某种版本的32位写入、数据与代码使用的数据不同。

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

    请确保已实际启用 MPU。 应该在启动序列或主函数中调用 mpuInit()。

    此致、Sunil

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

    您好、Sunhil、

    很抱歉、在联系您之前、我应该先检查一下。 但是、虽然这改变了观察到的活动、但仍然不正确、因为没有任何 nDQM 活动、地址仍然为0x3c、数据仍然为0xFFFF

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

    您好 Bill、

    请检查您是否已启用与 N2HET2信号复用的 EMIF 信号进行输出。 请参阅参考手册 SPNU515C 的第4.5.2节。

    此致、Sunil

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

    您好、Sunhil、

    我可以确认在对 muxInit()的调用中正在设置 EMIF_FUNC (GPREG1的位31)并在我进行 EMIF 访问时设置

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

    尊敬的 Bob:

    您能否上传代码中配置 EMIF、MPU、I/O 多路复用以及进行这些写入访问的代码部分? 还请提供有关时钟域频率设置的信息。 当然、拥有整个代码项目会有所帮助、但至少这些配置会影响上传整个代码项目的可行性。

    此致、

    Sunil

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

    已将项目导出为 zip 并附加。

    写入外部存储器的例程位于 umain.c - CMD_Test()中。  出于调试目的、我们将写入与连接到 GPIO 端口 B 位0的1kHz 时钟信号的下降沿对齐、 但这只是一个初始触发器、用于确认我们在总线上看到的与代码进行的访问相关、因为我们没有看到预期的信号。

    e2e.ti.com/.../7610.Boot_5F00_export.zip

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

    在一个 TMS570LS12X HDK 电路板上进行测试后、我发现 EMIF 总线处于工作状态。

    该故障是由于 OrCAD 符号文件被错误解释以及 PCB 上使用了错误的引脚造成的。

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

    感谢 Bob 的确认。

    此致、

    Sunil