仿照evm,在spi0上使用,仿照例子程序并把它融入可以运行的老程序。
由于连线原因把历程的输入输出配置反了下,由于连接的spiflash和开发板不同,调整速率到1m,clk_mode到mode3.
从时序图上看,cpu的spi设置为去发送0x020103,但实际只有第一个字节02发送正确,第二个字节发送为00,第三个字节发送为0xff,或者为无数据,因为无数据时电平就是全高。配置为只发一个字节0x55,则发送正确。
问下这种是什么原因,该如何解决呢?
Steven Liu1:
应该还是没配好。在你配置中,MCSPI_CH0CONF寄存器的WL比特,配的字长是多少?
lei lu1:
回复 Steven Liu1:
刚开始也怀疑是这个原因,不过我都填的是例子一样的数值,8 。
我在evm开发板班上执行starterware的spi原始编译后的可执行bin文件,返回是invalid-profile,是哪里没有设置对,还是例子本身有问题?
后来把从cpld获取profile的函数直接写死成宏定义MCSPI-EVM-PROFILE,对flash的写使能后,不报上面的错了,但写使能之后,在检查是否写成功的while循环里出不来了
Steven Liu1:
回复 lei lu1:
你是不是在自己的板子上做的这些移植测试?
有把EEPROM的ID辨别去掉么?看你的错误提示应该是没有吧。
建议你通过寄存器查一下,你目前的配置是否正确的生效,因为那个EEPROM的ID是为了辨别板子类型,做资源配置用的,不确定你改的对不对。
lei lu1:
回复 Steven Liu1:
是我没说清楚。刚开始改了几个参数那个,也就是一楼描述的,是在我板子上做的。
后面那次,原始编译可执行程序,是starterware安装后就出现的,不是我自己编译的,但用在evm上却有问题,理论上应该没问题的。后面修改获取profile的代码,也是在原始程序上修改的,和一楼的程序是专门放在两个地方的
lei lu1:
回复 lei lu1:
试了下,在evm开发板上运行starterware的spi的例子,示波器去测spi的flash两个数据线和时钟,没有任何数据,电源线则正常。线上没有数据,和程序到这里就不反应了,是一致的。这几个数据线是alter的cpld提供的,是不是cpld坏了?
lei lu1:
回复 lei lu1:
顶下,问下在evm上执行starterware中本就存在的spi例子程序,出错的话是什么原因呢
Steven Liu1:
回复 lei lu1:
你确定你使用的例程和你的板子是配套的吗?我们目前提供的SPI历程应该是基于GPEVM的。你用的是TI的哪块开发板进行的测试?