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.

TMS570LS3137的EMIF和ECC问题

Other Parts Discussed in Thread: TMS570LS3137, NOWECC, UNIFLASH
1、TMS570LS3137的EMIF电路问题
        M29W256G是Micron美光半导体公司的32M Parallel NOR Flash。M29W256G的技术手册见附件。
 53脚接高,采用16位访问,M29W256G最低位A0二字节访问,从而要求BA1二字节访问。BA0作为最高位地址EMIF_A22。
        请问,这种接法,是否可以?程序中是否需要特别的设置?
        另外,对于《TMS570LS31x21x 16 32-Bit RISC Flash Microcontroller Technical Reference Manual》中第651页接口示意图的疑问。
        单片机上EMIF_A12这个引脚是否需要悬空?这个示意图是否有错误?

2、TMS570LS3137的ECC问题
     用nowECC工具生成ECC代码后,除了nowFlash工具中列出的仿真工具,用JLINK仿真器是否能够将ECC代码烧录单片机?
  • 1. 你的图显示不出来。BA【1】作为最低的地址线,BA【0】是最高地址线,只有当所有地址线用完后,才会用到。程序中,不用特别设置,按正常的地址读、写即可。

    2. 建议使用Uniflash或CCS来烧录。可以支持JLINK。

  • 问题再细细说来:
     
    1、TMS570LS3137的EMIF,一条片选线,最大能支持访问NOR Flash多大空间?
           BA1、A0...A21、BA0,24根地址线能否支持NOR Flash 32M空间访问?
      2、EMIF接口示意图见附件,该图从TMS570LS31x21x 16 32-Bit RISC Flash Microcontroller Technical Reference Manual》中第651页截取。
           图中,单片机上EMIF_A12这个引脚是否需要悬空?这个示意图是否有错误?
      3、应用程序代码通过JLINK来烧录,已实现。但用nowECC工具生成的ECC代码,是否同样可以通过JLINK来烧录?此点似乎未通过,有疑问。
      4、补充一个问题:TMS570LS3137除JTAG口烧录,网口在线烧录外,是否有,如其它单片机那样,利用串口实现的ISP在线烧录功能?原因是,项目应用中可能不采用网口。
  • 1、每个片选(CS2~CS4)有24根地址线,总共可以支持到16MB的空间访问。

    2、你说的没错,这里有点问题,左边MCU下面的地址线应该是EMIF_A[17:12]

    3、理论上ECC也可以通过JTAG口来烧录。不过好像CCS本身可以生成ECC,可以根据代码一起同时烧录到芯片中。

    4、TMS570可以通过写Bootloader来做不同的烧录方法,如http://processors.wiki.ti.com/index.php/TMS570_Hercules_MCU_Bootloader中有SPI、UART、CAN的例程。http://processors.wiki.ti.com/images/b/b1/SafetyMCU_Ethernet_Bootloader.zip这个是以太网的Bootloader例程。但是,需要注意的是,Bootloader需要通过JTAG烧录到芯片中。

  • jay,

    你好,能否帮我看看我的问题“TMS570LS3137的i2c总线如何实现从芯片寄存器块读取?

    非常感谢

  • 好的,非常感谢 

    1、如果还是要扩展32M的FLASH,该如何操作呢?

        在手册里看到可以分别支持8bit和16bit,按照理解是否可以看成19+1条地址线可以访问512*1024,在加一条1地址线 共21条久可以范围1024*1024 了呢?

    2、ECC之前没有使用过,但是产品认证需要验证安全性,是否可以分享一些ECC使用的实例?尝试过程中发现ECC没有JLINK的选项,是否可以判断为不支持JLIINK?

  • 1、24根地址线(含BA0和BA1)最大只能支持到16MB。32MB的Flash会有第25号地址线,可以通过逻辑把CS2和CS3转成第25号地址线,逻辑表达式可选:(CS2 与(非CS3))。片选信号可以用IO控制,也可以用CS2和CS3逻辑组合,如(CS2异或CS3)

    2、ECC与选用什么仿真器没有关系。在CCS里面可以配置在Flash烧录时自动生成ECC,如下图所示。

  • Jay,
    1、16bit访问时,作为最低位BA1有什么作用?偶数地址即双字节对齐访问时,BA1为0,奇数地址对齐时,BA1为1吗?
    2、是不是说,16bit访问时,地址加1,存储空间步进是1个字节,不是2个字节?
  • 请问,

    1、16bit数据线访问时,TMS570LS3137地址指针加1,对应的是EMIF_A0加1,而BA1不变吗?还是BA1加1?

    2、数据手册上提到,BA0可作为EMIF_A22,那么可以有24根地址线,2的24次方为16M。

         从而,16bit数据线访问时,是否可以访问16M*16bit大小的数据空间?即还是上一个问题,答案是前者,还是后者?

    注:上面提到的Micron美光半导体公司32MB Parallel NOR Flash芯片M29W256G,选择16bit数据线访问时,是2字节对齐的。

            该芯片A0脚对应地址指针A1位,引出的地址线是A0到A23共24根地址线。即该芯片空间大小可以表示为16M*16bit。

    3、在Flash烧录时自动生成ECC,这个CCS是哪个版本?V5.2版本似乎没有这个选项。

  • Hi JAY,

         马工 和我是一起的,需要您看一下他的问题是否能解决?

     

  • 1、16bit数据线访问时,TMS570LS3137地址指针加1,对应的是EMIF_A0加1,而BA1不变吗?还是BA1加1?

    在TMS570上用C语言编程里,如果定义的是16位整型指针,那么指针加1,实际上你会看到地址加了2。所以,指针加1后,BA【1】会翻转。

    2、数据手册上提到,BA0可作为EMIF_A22,那么可以有24根地址线,2的24次方为16M。

         从而,16bit数据线访问时,是否可以访问16M*16bit大小的数据空间?即还是上一个问题,答案是前者,还是后者?

    根据数据手册上Memory Map部分的描述,每个CS对应的地址块总大小为64MB,但有效地址只有16MB。所以,当数据总线为16位宽度时,实际上BA【0】是不会生效的(也就是说16位数据总线模式下,只有23根地址线有效)

    注:上面提到的Micron美光半导体公司32MB Parallel NOR Flash芯片M29W256G,选择16bit数据线访问时,是2字节对齐的。

            该芯片A0脚对应地址指针A1位,引出的地址线是A0到A23共24根地址线。即该芯片空间大小可以表示为16M*16bit。

    3、在Flash烧录时自动生成ECC,这个CCS是哪个版本?V5.2版本似乎没有这个选项。

     你可以尝试安装CCSv5.5 或 CCSv6.1

  • Jay,

    请问,什么情况下,BA0可作为EMIF_A22?

  • 在8位数据总线模式下。

  • 也就是,16位数据总线模式下,BA0没什么作用?

  • 数据手册《TMS570LS31x21x 16 32-Bit RISC Flash Microcontroller Technical Reference Manual》第621页第4行

    “Additionally, when the EMIF interfaces to a 16-bit asynchronous device, the EMIF_BA[0] pin can serve as the upper address line EMIF_A[22].”

    这句话怎么理解?

  • 从EMIF模块的框架设计来看,BA【0】应该是可以作为第24根地址线的。但是,芯片的Memory Map配置只允许每个CS访问到16MB而不是16Mx16bit的地址空间。所以说,我认为即使接了BA【0】,那一块的地址也是访问不到的。

  • 是这个0x64000000-0x60000000=0x04000000(64M)和16MB*3的区别吗?

  • 可以这么理解吧。

    也就是说每个CS对应的64MB的地址域只有低16MB是允许访问的。