Hi,
I was working with the RDK-BLDC using a LM3S8971.
As I was working on the PWMs I tried to convert the example given in the user guide to my Stellaris Board: The "75% duty cycle example"
After downloading the code the board kind of crashed . Afterwards there seems to be no option to download anything new to the board. I get the following error:
"Failed to get CPU status after 4 retries"
When using the software provided with the J-Link connection it says: "Could not power up debug port: Control/Status register reads 00000F02. No device found on JTAG chain."
I think I deactivated the oscillators with the following code which I tried to download as thwe last action with the working board.
GPIO_PORTF_AFSEL_R = GPIO_PIN_0; // using alternate function
SYSCTL_RCC_R = (0x14 | 0x0); // using PWMDiv & divide by 2 PWM_0_CTL_R = (0x00000020); // Countdownmode PWM_0_GENA_R = (0x8c); PWM_0_GENB_R = (0x80c);
PWM_0_LOAD_R = (0x7D0);
PWM_0_CMPA_R = (0x1F4); // 25% cycle = 0x63F * 0,25 PWM_0_CMPB_R = (0x5DC); // 75% cycle = 0x63F * 0,75 PWM_ENABLE_R = (GPIO_PIN_0|GPIO_PIN_1); // start PWM0 & PWM1
Is there any option to reactivate the board? I am working on this as it is one of my final exams. Therefore it's a little bit important :-/
I already tried the LM Flasher Software which didnt work: it couldn't establish any connection to the board.
Thank you for any helping information
Normal/Customary use of RDK-BLDC board is via ethernet - managed by this board's custom GUI program. In addition - a bootloader is resident - which must be carefully managed.
Now you mention, "J-Link connection." Can you detail just how you used the J-Link connection? Did you use it together with the running motor - under the GUI's direction? At what point did you download your own code - had your BLDC program been running properly prior to that fateful download?
I used a j-link from SEGGER to program the board. It was just "dry test" so without a connected motor. Only connections were V+, GND, QEA, QEB and the J-TAG interface (2x5 pins). This worked fine for quite a while. Therefore this can't be the reason of failure.
I tried to donwload a new programm on the board while pressing down the reset button, but it didn't work very well. I just got a different error message.
I never used the GUI as this didn't connect the board via ethernet.
I took again a look to the register maps to verfiy if shut down any oscillators but this seems to be not the case. Any suggestions?
Our group has paid IAR & J-Link - have loaded literally hundreds of programs - thousands (easily) of times - have never once pressed reset in this process.
Must assume that you have kickstart IAR - under Program > Options can you screen capture & show how you've config'ed? Normally the J-Link does not appear as default when employing vendor's program/set-up.
Disaster - as you describe - occurs when you mismatch the, "ROM_SysCtlClockSet()" xtal field w/ xtal emplaced your board - or when you improperly harvest a Port_C pin. (and steal PC0-PC3 - used as JTAG) Check to see that neither of these occurred.
The latest LMI Flash Program has a mechanism to "recover" your MCU - if either of the above resulted...
Thanks so far. I will have a look at the Program Options of IAR tomorrow and send the screen capture. And I think it is also a paid version. Afair I got a CD Key.
At least I can tell you that the J-Link is the selected Debugger device. As I said before that the setup workd until I tried the PWM configuration.
Our IAR has small dongle. But if you have past, successful use - this is unlikely...
Prime suspect then - your, "SYSCTL_RCC_R = (0x14 | 0x0);" // using PWMDiv & divide by 2 *** I fear your failure to "or" into this Reg wreaks havoc...
Haven't time now - this appears to be only "evil" candidate w/in the brief code you listed. Will revisit upon touch-down later tonight...
I think you got the solution. While reading this I realise that this expression is quite dumb as it resets all the other bits in the concerning register.
So now he question is if the LM Flash Program will reset the board. The problem is while I tried to recover the board with LM Flash Program that it couldn't establish any connection via the J-TAG. Of course I didn't initialise any other communication interface like the serial one oder CAN or ethernet. Otherwise I guess tis would have been some options.
Surely your school/teachers can beg/borrow/steal any form of LMI/TI Eval Board. LM3S811 ideal! These may be used w/the LMI Flash Programmer to recover your MCU! And will not work w/ your J-Link! (don't try)
Read up on the LMI Flash Programmer - enjoy the "delight" of learning which "class" your MCU is w/in - and then follow the instructions (last page) of LMI Flash Programmer. Such will restore your board.
Would you be so kind to reward this cascade of effort with Verified Answer? (just above my initial, answering post to you)
Comforts/guides future readers and re-motivates we ragged (non-official) yet rapid - semi-skilled responders.
Upon completion of, "beg/borrow/steal" mission - here's a screenshot from LM Flash Programmer:
Your goal is the "unlock" of your apparently "locked" MCU.
You must first "tick" proper class of MCU. Excellent Ap Note from TI details - but unusable as you cannot "talk" to your MCU - picture perfect, "Catch-22!"
We're told that TI FAE's have such info at the ready...
Unfortunatly I don't see how this has to work. How can a second board ( evaluation board ) be used to unbrick my first one? Just to get this right: We're talking about a soldered MCU on the following board. I can't connect to the board (via J-TAG) wether connect to the MCU via a second board. Or to put the latter in other words: The MCU is not transferable to another Eval-board, is it?!
The "class - problem" solves with a look into the User guide of the MCU: There's only one Option, the Fury-class
After taking a deeper look into the LM Flash Programmer it is connected the way the help file offers under system requirements :-|
PC>::::::::::(USB)::::::::::<EvalBoard with JTAG-Connector>::::::::::(JTAG/SWD Target Cable)::::::::::<Target Board
LM Flash Programmer can "recover" your "in place" - RDK MCU - trust me. I did not invent - simple reporter - procedure is well detailed but here is quick, simple summary:
a) you must acquire a 2nd LM/TI eval board. These connect to your PC via USB. The output from this 2nd LM/TI board then passes into your RDK BLDC board. Often you will require use of the existing, 20 pin to 10 pin (fine pitch) JTAG adapter.
b) you must power both the RDK board and the 2nd board. Depending upon your 2nd board - 1 key pin must be grounded to, "hold off" the 2nd board's MCU - instead routing the JTAG signal onto your RDK board.
c) the 1st page of the LM Flash Programmer has a drop-down box which includes the variety of LM boards which accept the PC USB connection and convert it to JTAG.
d) unfortunately - as I stated earlier - your J-Link stands idle thruout this process. Once you complete the "recover" - the J-Link may be returned to service.
There is a detailed write-up (beyond mine here) and you may find more detail w/in help of the LM Flash application.
Hope I've helped - stay cool/calm - follow the instructions and you should be back, "on the air."
Yes, thank you. I appreciate your helpful comments very much :) Although I needed to find out some things by myself, but that depends mor on a lack of bad reading skills I think. Once again: Thank you very much :)
Your point b) states that 1 key pin need to be on "ground level". How is this guaranteed? Do I assert this by pressing the reset button?
I've got a MSP430 LaunchPad right next to me, but I guess this isn't the suitable for recovering a Stellaris MCU.
Thanks so far and have a nice day!
Re: "Key pin @ ground." No - you do not use the reset button as this key pin - iirc - must be used exclusively during the recovery process. If you get the LM3S811 - key pin is pin 18 w/in the 20 pin JTAG output cable. This must be grounded - it holds the 3S811 MCU in reset so that JTAG data passes thru. Believe that you have a 20 to 10 pin adapter board - suspect that the grounding of pin 18 may occur naturally on the 20 to 10 adapter board. (but very quick/easy for your to check) Departing now - won't be back till late today - good luck...