2004-01-26 09:24 PM
Unstable system behavior problems
2011-05-17 02:58 AM
Hello all,
I‘m using uPSD3334DV device in my target ( the power supply is 3.3V ). When I run my program on the evaluation board ( Turbo uPSD DK3300 ) the program run OK and there is no problem. But when I run my program on the target there are problems. The program jump to unexpected Address. I try many hardware-mapping configurations to solve this problem and nothing helps. I write a small program that initialize array of 1000 elements and after that change I/O bit. 1- xdata PSD_REGS PSD8xx_reg _at_ PSD_REG_ADDR; 2- PSD8xx_reg.DIRECTION_B |= 0x10 ; 3- void main( void ) 4 - { 5- EA = 0; 6- for (Index = 0 ; Index < 1000 ; Index ++ ) 7- DataArray[Index]= 0 ; 8 - while ( Forever ) 9 - { 10 - PSD8xx_reg.DATAOUT_B ^= 0x10 ; 11- } 12- } // main When I mask only line 10 the program don’t jump to unexpected Address. When I mask line 6 and 7 and line 10 work, the program also don’t jump to unexpected Address. Device mapping : Code area Csboot0 – 0000H ~ 1FFFH Csboot1 – 2000H ~ 3FFFH Csboot2 – 4000H ~ 5FFFH Csboot3 – 6000H ~ 7FFFH Data area Csiop – 0000H ~ 00FFH User – 0100H ~ 01FFH rs0 – 2000H ~ 3FFFH FS0 – 8000H ~ FFFFH ( page 0 ) FS1 – 8000H ~ FFFFH ( page 1 ) FS2 – 8000H ~ FFFFH ( page 2 ) FS3 – 8000H ~ FFFFH ( page 3 ) FS4 – 8000H ~ FFFFH ( page 4 ) FS5 – 8000H ~ FFFFH ( page 5 ) FS6 – 8000H ~ FFFFH ( page 6 ) FS7 – 8000H ~ FFFFH ( page 7 ) I attached the orcad schematic and soft expreess design Please, somebody can kindly help me ? hanan [ This message was edited by: hanan54 on 24-01-2004 15:18 ]2011-05-17 02:58 AM
redefine CSIOP to 4000h to 40ffh, you will be fine. I don't think ST let you use 0000 to 00ffh space..
2011-05-17 02:58 AM
I don't think that your problem is the CSIOP address, as suggested by Frank; I have tried to put the CSIOP at 0 without any problem.
I had a brief look at your circuit. Since I cannot see anything basically wrong, I think that you could have a layout problem: 1 - When you say that your program ''jumps to unexpected addresses'', how do you know that? 2 - Is your 30Mhz oscillator close enough to the chip pin? is its power supply properly decoupled? 3 - All the VCC/VDD pins should have bypass capacitors to ground, with the shortest possible paths. I don't see them on you drawing. 4 - How many layers your PCB have? Is there a ground plane? Good luck, Daniel2011-05-17 02:58 AM
hi Daniel and thanks for your response
1. The program jump to unknown address and the code looks like that: C:0x16CA FF MOV R7,A C:0x16CB FF MOV R7,A When there is a breakpoint in the main loop, The program doesn’t jump to the unexpected addresses. We use keil ICE for debugging. 2. The 30Mhz oscillator is 1.5 cm from the chip and shielded with DGND signal. 3. In the schematic for the bypass capacitors you can see that they are locally connected to the uPSD ( on the PS of the PCB ). 4. There are 18 layers on the PCB including GND plane . hanan2011-05-17 02:58 AM
hello all
We change the mapping, according to the Errata Sheet Also we find a hardware problem in our card that influence the jtag. Now the program works good. hanan