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.

6678 device is held in reset



大家好,

我在做C6678板子,现在写完了上电时序,给板子加电后,遇到了如下的问题:

在CCS的“Target Configuration”中,测试连接了一下,显示JTAG链正常。

但是我写了一个简单的程序后Debug,却弹出对话框,显示:“Device is held in reset”。

可是我板子上C6678的RESETSTST引脚已经指示高电平了,怎么还显示说Device处于reset状态??

我的上电程序中,对BOOTMODE[]12:0]的配置是:0b011 0000000 000

还有就是C6678的GEL文件怎么编写?

  • 1. 对照手册看看上电时序是否满足要求;

    2. 测量各输入电压及时钟是否满足要求并且稳定。

    gel就是用来初始化main pll及DDR,可以参考ccs及mcsdk中自带的模板修改其中的pll及DDR初始化程序即可,或者可以参考如下链接中提供的基本例程,这些例程中包含了PLL及ddr的初始化代码,此时不需要gel。

    http://www.deyisupport.com/question_answer/w/faq/215.keystone-c66xdsp.aspx

  • 谢谢您的回复!

    我供给6678的电源、时钟应该没有问题。上电时序也是按照advantech的EVM手册来的。

    最后都把POR、RESET、RESETFULL都拉高了。

    而且RESETSTAT引脚都指示高电平了,为什么还是显示“device is held in reset?

    #############################################################################

    目前,我只是做了以下步骤,烦您看看正确与否

    1. C6678的CVDD、CVDD_Fixed、1.8V、1.5V、0.75V都正常供应。

    2. C6678的Core(100MHz)、DDR(66.67MHz)、PASS(100MHz)都正常供应

    3. FPGA端按照advantech的EVM写了上电时序,

    4. 在上电时序的最后阶段:拉高RESET(同时给BOOTMODE[12:0]为0b0110000000000),接着拉高POR,最后拉高RESETFULL

    对于这样的步骤,我有以下几个问题:

    1.我计划是先给NO BOOT,然后写个GPIO程序测试一下软件到硬件的通路。那么我在第4步骤时,给BOOTMODE[12:0]为0b0110000000000行不行?我参照6678最新的Datasheet的2.5.4 PLL Boot Configuration Settings一节,我的Core是100MHz、器件是1.25GHz的,所以如果我把BOOTMODE[12:10]给了0b011,则6678的工作频率就是1.25GHz?其中的PLLD=0、PLLM=24,是RBL固化的,不需要自己配?

    2. 我这样操作后,C6678的RESETFULL引脚已经指示高电平了。那么为什么我在CCS端写个GPIO程序后,Debug,连接C6678时显示“Device is held in reset”?我想问一下:CCS是根据什么判断6678处于RESET状态的?比如,CCS是去读6678的某个寄存器的值后判断的?还是?我这样问是为了定位我的板卡中6678仍然处于RESET的原因。

  • 我发现问题了:应该是我直接就是NO BOOT模式,导致内部的Main PLL处于Bypass模式,输入的100MHz没有经过PLLD、PLLM。而且我检测到C6678的SYSCLKOUT引脚输出的是16.67MHz(100MHz/6)。所以C6678没有运行起来。请问是这么回事吗?

    那么我现在想让C6678的Core0跑起来,我打算切换到SPI BOOT Mode。按照Secondary Boot的方式,RBL将从外部的SPI Flash拷贝最前一段的参数表以便去配置PLL。那么我很疑惑:

    我怎么把这个参数表烧到SPI FLASH里面去呢?在RBL执行这个参数表之前,C6678是没有运行的,也就无法通过C6678去烧写这个SPI FLASH。难道要把SPI FLASH拆下来后,用外部烧写器烧写??

    还有这个SPI FLASH的parameter table,有例子参考吗?

    期待您的回复!!

  • 16.67M是正常的 默认就是bypass模式

  • 您好!

    您说的对。我目前给了SPI BOOT mode,默认是Bypass mode,100MHz的COREclk的话,SYSCLK输出的是16.6MHz。我还没有写第二级bootloader去配置Main PLL。

    .

    请问您知不知道,为什么在bypass mode下,我用CCS去连接C6678,却显示“Device is held in reset”?我的C6678的RESETSTAT引脚,已经指示高电平了啊。

    我写的是很简单的一个程序,就是在控制台下显示“Hello”。没有添加GEL文件,没有添加CMD文件。只是弄了“target configuration”cxml文件,然后点击”test connection“显示的是”JTAG DR interigty chain had been scanned successfully“(大概是这样)。

    .

    难道是必须要CMD文件?或者GEL文件?

    .

    望您回复

  • 自己的错误:

    1. 把LRESET、LRESETNMIEN、NMI、CORESEL0~3漏了;

    2. BOOTMODE[12:0]对应到GPIO的[12:0]了。

    改了后,加上EVM的GEL、TI原始的CMD,程序可以调试了。

  • 你好,问题具体怎么解决的啊,我也遇到了和你一样的问题,望指点一二,谢谢

  • Feng Jin:

    你好,我现在也正在调试6678,现在能跑通helloworld的例程,但是有时会发生错误,不知道是不是LRESET、LRESETNMIEN、NMI、CORESEL0~3的配置有问题。

    我现在把LRESET=1、LRESETNMIEN=0、NMI=1、CORESEL0~3=1000是在拉高RESET的同时赋值的,不知道这个值和时序是否是正确的?

    能不能告诉我你LRESET、LRESETNMIEN、NMI、CORESEL0~3的时序?

  • 同问,现在手头也遇到这个问题了
  • 您好,我们目前调试6678,也碰到跟你一样的问题6678 device is held in reset,麻烦问一下,你怎么解决的呀?谢谢!就是上电是怎么初始化,自己的错误:

    1. 把LRESET、LRESETNMIEN、NMI、CORESEL0~3漏了;

    2. BOOTMODE[12:0]对应到GPIO的[12:0]了。
    怎么解决的呀?