Good afternoon,
I am using a C6713B and when i trigger a hardware reset by shorting the pin to ground the DSP does not reboot and I cannot connect with the debugger. The device does work properly on a normal power up 95% of the time.
The reset line is connected via a resistor to the DCDC converters as on the DSK board.
Does anybody have any experiance of a similar issue or is anybody able to offer any ideas or information on how normal power up is diffrent to a hardware reset?
Many thanks and kind regards
Sean
Sean,
Hardware reset should do the same things as power up, in fact the reset pin will be held active during power up until all clocks and power supplies are stable.
There have been some discussions on the forum within the past couple of months about C6713 reset issues. Search for "C6713 reset" (no quotes, or maybe with the quotes).
Sean Bedford The reset line is connected via a resistor to the DCDC converters as on the DSK board.
Is this a modification you made or a statement about the schematic for the DSK?
Which boot mode do you use?
Regards,RandyP
Search for answers, Ask a question, click Verify when complete, Help others, Learn more.
Hi Randy,
Sorry it has taken me so long to get back to this we have had other priorities. it is a statment as to how the reset line is connected on our board (the same as with the DSK).
We have now connected the reset line directly to a PIC on our new board revision and cannot connect to or get the DSP to work at all. This obvisly makes the issue much more pressing.
The boot mode we are using is from a 16bit flash but now that we cannot even debug this doesnt seem relevent.
With the new board revision CCS connects to the DSP but when you load to program it says its runing and gives this error when you try to pause it.
TMS320C671X: Trouble Halting Target CPU: Error 0x80000020/-1060 Fatal Error during: Execution, An unknown error prevented the emulator from accessing the processor in a timely fashion. It is recommended to RESET EMULATOR. This will disconnect each target from the emulator. The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.
with the old boards that worked with debug once the program has loaded it would be paused at the start of main so the program clearly isnt being loaded properly.
Here is a list of the changes that were made between the two revisions that could effect the DSP.
So it seems to me that the reset ine could be the only one that is causing the issue. We had hoped that by conecting the DSP reset to a microcontroler we could solve the previous reset issues but it seems to have made it worse.
any idea or things I can try will be much appericaited.
Thank you
Just to add to the above. I have now connected to rest line via a 10k resistor to 3V3 to remove the microcontroller from the equation. I also discovered that out flash programing software loads and runs when I connect to the DSP but our main software crashes it. I have just checked and the same peice of software works fine with the last revision of or board which I find very strange.
There is also a change I forgot to mention. We changed the RAM chip used from a IS42S16160D-7BLI to a IS45S16400F-7BLA1 which is a smaller RAM but has identical pin out to the old one except that there are less address lines.
Thanks
Your change #3 is not clear to me.
Recommendations:
The Stellaris Cortex-M3 line of MCUs would be a good choice for your microcontroller.
Please delete posted twice
Thanks you
Change 3 is that the SPI lines and reset from the DSP are connected to a header which goes to a diffrent board than to a microcontroler. The MSB of the flash (which is one above the amount the DSP accepts, gos to the microcontroller also (this is to allow two diffrent bootable programs.
I have tried 1 and everything still works fine with our old boards. Could you please explain what the no-boot boot mode is and how I enable it?
The reset line is at a steady 3V3 and the CLK line is oscilating cleanly at 50Hz between about 1.2 and 2 volts which I belive is normal.
This signals are not easy to probe would a EMIF problem cause the DSP to crash completly and not respond to the debugger?
Sean Bedfordgoes to a diffrent board than to a microcontroler
This is one of those cases where a typo cannot be repaired by context. I think you meant "then", but "than" also has a valid discriminating meaning here.
No-boot is also called emulation boot. Please see page 98 of the datasheet.
What did the reset line do relative to clocks and power when everything started?
Sean Bedfordthe CLK line is oscilating cleanly at 50Hz between about 1.2 and 2 volts which I belive is normal
That does not sound normal, but I will assume you have read the Hardware Design Guide and you know this better than I do.
Sean Bedford This signals are not easy to probe would a EMIF problem cause the DSP to crash completly and not respond to the debugger?
You can do a lot of things in hardware that make the emulator not work. If the processor is trying to access the EMIF and it gets stalled, everything will stall, including the debugger. We have tried to improve some of this in newer devices, but it still true that the debugger is not immune to hardware problems.
I wish the debugger had error messages that point to a pin failure or a code problem or a timing issue, but it does not.
Hi Randy
RandyP Sean Bedfordgoes to a diffrent board than to a microcontroler This is one of those cases where a typo cannot be repaired by context. I think you meant "then", but "than" also has a valid discriminating meaning here.
Greetings,
Does your FLASH device have a RESET pin? If so, is it connected to the Reset signal as well?
Good Luck,
Sam
HiSam no, no reset pin.
I think i have made some progress. My smaller flash writing program does runwhich I belive is because it only uses the internal memory. So I thought itcould be some obscure difference with the SDRAM we changed to (they are fromthe same manufacturer ISSI, who say other than the size they are the same). Iwrote the following c code in the working program to test the RAM.
while(1) { unsigned int temp = 0xFFFF; unsigned int count = 0; unsigned int error = 0; unsigned int buffer; temp =0xFFFFFFFF; count = 0; error = 0; while (count < 0x10000) { *((unsigned int *)(0x80000000 | count)) = temp; count +=2; temp -= 4; } count = 0; temp = 0xFFFF; while (count < 0x10000) { buffer =*((unsigned int *)(0x80000000 | count)) &0xFFFF; if(buffer != temp) error++; count +=2; temp -= 4; } if(error) error = 0; }
while(1)
{
unsigned int temp = 0xFFFF;
unsigned int count = 0;
unsigned int error = 0;
unsigned int buffer;
temp =0xFFFFFFFF;
count = 0;
error = 0;
while (count < 0x10000)
*((unsigned int *)(0x80000000 | count)) = temp;
count +=2;
temp -= 4;
}
temp = 0xFFFF;
buffer =*((unsigned int *)(0x80000000 | count)) &0xFFFF;
if(buffer != temp)
error++;
if(error)
All the reads were errors, so I had one board changed to have the old flash on. I got that back today and it still doesn't work. I have spent a lot of time playing around with register and timing values and got no where. My emif registers in my gel file are as follows
/* EMIF setup */
*(int *)EMIF_GCTL = 0x00003068;
*(int *)EMIF_CE0 = 0xffffbf93; // CE0 SDRAM 0x10528191
*(int *)EMIF_CE1 = 0x02208812; // CE1 Flash 16-bit 0x01208812
*(int *)EMIF_CE2 = 0x22a28a22; // CE2 Daughtercard 32-bit async
*(int *)EMIF_CE3 = 0x22a28a22; // CE3 Daughtercard 32-bit async
*(int *)EMIF_SDRAMTIM = 0x00000578; // SDRAM timing (refresh)
*(int *)EMIF_SDRAMEXT = 0x000a8529; // SDRAM Extension register
*(int *)EMIF_SDRAMCTL = 0x6348F000; // SDRAM control (16 Mb)
With this out of a possible 0x7FFF errors there is about 0x7DF5 this fluxtuates and isnt fixed but is allways 0x7Dxx so some reads allways work but the majority don't. I have investigated this thurther and the working reads dont seem to tie up with any data or address lines being disconnected.
I am really puzzeled with this now any help would be great.
I have tried the above code on my old board where the RAM and DSP are wired identically and it works with no errors.
First make certain that your data cache is disabled for now during your testing.
And not knowing your hardware, I compared your EMIF setup with the original one for the DSK below
*(int *)EMIF_GCTL = 0x00000068; *(int *)EMIF_CE0 = 0xffffbf33; // CE0 SDRAM *(int *)EMIF_CE1 = 0x02208802; // CE1 Flash 8-bit *(int *)EMIF_CE2 = 0x22a28a22; // CE2 Daughtercard 32-bit async *(int *)EMIF_CE3 = 0x22a28a22; // CE3 Daughtercard 32-bit async *(int *)EMIF_SDRAMCTL = 0x57115000; // SDRAM control (16 Mb) *(int *)EMIF_SDRAMTIM = 0x00000578; // SDRAM timing (refresh) *(int *)EMIF_SDRAMEXT = 0x000a8529; // SDRAM Extension register
and would like you to ascertain that they are all fit to your device choice mixture (which appear to be different from the DSK).
Next, your test code is for a 32 bits unsigned integer space in SDRAM. It is incrementing the address increment "count" by 2 bytes. Please clarify that is what you wanted to do.
Last, post your results for a follow up.
BTW, I assume your old board design uses a different EMIF setup. Pls clarify.
Hi Sam,
Sorry i didn't reply for so long. The boards were the same. A week or so ago I sat down scoping the emif signals (nor easy with BGA and such small resist covered vias). It came to light that there was a short on one board between CE0 and GND (this would be the board that isnt working at all). The other board I could fill the RAM and there were clear patterns indicating some Address and Data lines were also shorted to GND or +v.
This was the two new build boards. I have two prototype boards from the build before with the same emif setup that work perfectly.
So the reason I am replying now is that I have now concluded the problem is with the board. In the end our assembly house x-rayed it looking for the short and the PCB layers are clearly misaligned quite shockingly.
This is very frustrating as the same people made the boards that work and they come very highly recommended by our assembly house who we have used for years so we had no reason to suspect the board but hopefully this was a one off mistake.
Many thanks for you assistance.
It is good to get to the bottom of it. Please mark the thread resolved.