Technical discussions about the TI C54x DSPs (including the c5401, c5402, c5402a, c5404, c5407, c5409, c5409a, c5410, c5410a, c5416, c5420, c5421, c5441, c549, c5470 and c5471).
|
> Hi ! > I'am using TI CCS 2.1 and emulator SPI525+TMS320C54XX EVM of Spectrum > Digital. > When i set the values to the cpu and peripherals registers ,they all seems > to accept those values EXCEPT the CLKMD register. > I'am writing to this register for setting the PLL to multiply the freq > from 10MHz to 80MHz. > I defined all the registers by their Adresses(e.g : #define CLKMD > 0x58 ) , and access them as a pointers. > > when i open Code Composer , open my project , load the .out file to the > cpu and start debug , the CLKMD register have some value > like 0xF003. and when i get to the line that set this register to my > wanted value , the value of the register is not change at all. > > strange phenomenon : > i can set this register only if i do the following : > > 1) i manually set value 0x00 to this register (with the edit register > window) > the CLKMD change value from 0xF003 to 0xF000 > 2) then i repeat it again: set value 0x00 to this register . > the CLKMD change value from 0xF000 to 0x0000. > > only now i can change the CLKMD register to any value that i want . > manually or by the code : > > *(unsigned int *)CLKMD = 0x7007; //set pll to multiply > the 10M to 80M > > please reply with any answers. > THAKS > HAIM PASKAL > B.O.S - Better On-line Solutions > Rabin-House,Teradion,Misgav 20179,ISRAEL > Tel : (972)-4-9907542 > fax : (972)-4-9990334 > mailto: > "IP Telephony...Clear and Simple" |
|
|
|
Check out the C54x datasheets. I believe you are supposed to clear bit 1 (0x0002) then poll bit 0 (0x0001) until it clears, then setup the register. Check out page 8-33 in spru131g.pdf. -Stan -----Original Message----- From: Haim Pascal [mailto:] Sent: Monday, January 14, 2002 4:26 AM To: ' Subject: [c54x] VC5409 - CLKMD register problem > Hi ! > I'am using TI CCS 2.1 and emulator SPI525+TMS320C54XX EVM of Spectrum > Digital. > When i set the values to the cpu and peripherals registers ,they all seems > to accept those values EXCEPT the CLKMD register. > I'am writing to this register for setting the PLL to multiply the freq > from 10MHz to 80MHz. > I defined all the registers by their Adresses(e.g : #define CLKMD > 0x58 ) , and access them as a pointers. > > when i open Code Composer , open my project , load the .out file to the > cpu and start debug , the CLKMD register have some value > like 0xF003. and when i get to the line that set this register to my > wanted value , the value of the register is not change at all. > > strange phenomenon : > i can set this register only if i do the following : > > 1) i manually set value 0x00 to this register (with the edit register > window) > the CLKMD change value from 0xF003 to 0xF000 > 2) then i repeat it again: set value 0x00 to this register . > the CLKMD change value from 0xF000 to 0x0000. > > only now i can change the CLKMD register to any value that i want . > manually or by the code : > > *(unsigned int *)CLKMD = 0x7007; //set pll to multiply > the 10M to 80M > > please reply with any answers. > THAKS > HAIM PASKAL > B.O.S - Better On-line Solutions > Rabin-House,Teradion,Misgav 20179,ISRAEL > Tel : (972)-4-9907542 > fax : (972)-4-9990334 > mailto: > "IP Telephony...Clear and Simple" _____________________________________ |