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.

am335x在starterware下的spi时序问题



仿照evm,在spi0上使用,仿照例子程序并把它融入可以运行的老程序。 由于连线原因把历程的输入输出配置反了下,由于连接的spiflash和开发板不同,调整速率到1m,clk_mode到mode3. 从时序图上看,cpu的spi设置为去发送0x020103,但实际只有第一个字节02发送正确,第二个字节发送为00,第三个字节发送为0xff,或者为无数据,因为无数据时电平就是全高。配置为只发一个字节0x55,则发送正确。 问下这种是什么原因,该如何解决呢?
  • 应该还是没配好。在你配置中,MCSPI_CH0CONF寄存器的WL比特,配的字长是多少?

  • 刚开始也怀疑是这个原因,不过我都填的是例子一样的数值,8 。 我在evm开发板班上执行starterware的spi原始编译后的可执行bin文件,返回是invalid-profile,是哪里没有设置对,还是例子本身有问题? 后来把从cpld获取profile的函数直接写死成宏定义MCSPI-EVM-PROFILE,对flash的写使能后,不报上面的错了,但写使能之后,在检查是否写成功的while循环里出不来了
  • 你是不是在自己的板子上做的这些移植测试?

    有把EEPROM的ID辨别去掉么?看你的错误提示应该是没有吧。

    建议你通过寄存器查一下,你目前的配置是否正确的生效,因为那个EEPROM的ID是为了辨别板子类型,做资源配置用的,不确定你改的对不对。

  • 是我没说清楚。刚开始改了几个参数那个,也就是一楼描述的,是在我板子上做的。 后面那次,原始编译可执行程序,是starterware安装后就出现的,不是我自己编译的,但用在evm上却有问题,理论上应该没问题的。后面修改获取profile的代码,也是在原始程序上修改的,和一楼的程序是专门放在两个地方的
  • 试了下,在evm开发板上运行starterware的spi的例子,示波器去测spi的flash两个数据线和时钟,没有任何数据,电源线则正常。线上没有数据,和程序到这里就不反应了,是一致的。这几个数据线是alter的cpld提供的,是不是cpld坏了?
  • 顶下,问下在evm上执行starterware中本就存在的spi例子程序,出错的话是什么原因呢
  • 你确定你使用的例程和你的板子是配套的吗?我们目前提供的SPI历程应该是基于GPEVM的。你用的是TI的哪块开发板进行的测试?