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.
Part Number: MSP430F123
I'm debugging a MSP430F123 that does not want to program. Fist step was to look at the fuse check step and that seems to be ok. Next step was to check the returned JTAG_ID. The value (from SLAU320AB pg 64) should be 0x89 (binary pattern 10001001) but the returned value is 0x91 as shown below (MSB is the last bit as described in Fig 1-3 of SLAU320AB pg 9). Could someone offer some insight here? I could be doing something wrong but I can't see it.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Nathan Siegel:
In reply to Andrew Barnes:
The glitch was a signal reflection. Adding a 10 ohm series resistor seems to have fixed the problem. I'd still like to know how the bits are transmitted from the MSP. Either the documentation is wrong or the MSP is sending out the wrong JTAG id, or I'm wrong. If I'm wrong please tell me why.
You are right that the signal moves from left to right, this means that the bits on the left were received first (it's the oldest data). I've got 20+ years developing and debugging protocols with an oscilloscope. The documentation says that the LSB is sent first and the MSB last: Bit 1 2 3 4 5 6 7 8 Value 1 0 0 0 1 0 0 1 Normally we look at binary numbers with the LSB on the right so the value we received needs to be mirrored Bit 8 7 6 5 4 3 2 1 Value 1 0 0 1 0 0 0 1 This then needs to be turned into a hex number Bit 8 7 6 5 | 4 3 2 1 Value 1 0 0 1 | 0 0 0 1 HEX 9 1 You can't take a bit sequence with the LSB on the left and convert it directly to hex because hex numbers have the LSB on the right. What you have done is make the LSB the MSB. The endian thing was simply to point to the bit order, lsb first or msb first. For reference look at this. The transmitted value is 0x4B with the B being transmitted first. Using your approach the value would be 0xC2.
So is the MSP sending the wrong code or is the documentation wrong.
I've looked at SLAU320AB a little bit further and noticed that from the documentation, the IR_SHIFT macro shifts in bits on TDI LSB first but it does not say how the JTAG ID is shifted out on TDO (LSB first or MSB first). If what you say is correct then the bit order for the JTAG ID must be MSB first which is the same as the DR_SHIFT16 and DR_SHIFT20 macros. If the bit order is different for received and transmitted bytes in the IR_SHIFT instruction this would be an important detail to add to the documentation. Can you confirm this? Is there any particular reason the IR_SHIFT is LSB first but the IR_SHIFT16 and IR_SHIFT20 are MSB first?
Best regards,Dietmar Walther
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.