Post Go back to editing

Replaced Microcontroller, How to Program?

Category: Hardware
Product Number: tmcl-6110

Hello,

I use the TMCL-6110-TMCM board and had one experience a catastrophic failure with part of the microcontroller blowing off. The board still worked slightly; the I/O didn't work, but the green LED still blinked, and motors turned. I could just buy a new board, but I wanted to challenge myself to change the microcontroller. A new microcontroller was acquired and mounted successfully, but when I plug the board into the USB port, there's no indication from my PC that anything is connected. Also, the green LED isn't blinking--neither is the red one; both are extinguished, but do work. These two things point to the microcontroller needing to be programmed through four test points on the bottom of the board. Is that correct? And do I just upload the standard Trinamic firmware? Or is there a bootloader that should be programmed? Can I use a generic SPI hardware programmer? And which software to use to upload the firmware?

  • Hi Lance, 

    the CPU on the board provides software protection in order to protect our IP, so you cannot read out the firmware and program it to a new controller. As far as I know, operation of update files is protected by presence of the bootloader. So, unfortunately soldering in a new controller will not help. My proposal would be to send in the board for repair via your distributor.

  • Thank you for the feedback. I was able to figure it out and got it working. I used an STLink V2 and the STM32Cube Programming software, connecting to those four test points on the bottom with the programmer. I updated the firmware using the publicly-available firmware for this board and the green LED started blinking when I was done. Sending it back would make me lose out on all this fun I've had today exploring this. 

  • Keen work there replacing the CPU.
    Could you point to where you found the firmware?

  • The firmware, without the bootloader, can be found on the Analog Devices site: https://www.analog.com/en/resources/evaluation-hardware-and-software/software/software-download.html?swpart=TMC0000002T

    I've used this board for ~6 years, so I already had all versions of the firmware downloaded from the old Trinamic site. If you make a proper inquiry to Analog Devices, they may send you the latest firmware for the board--they sent me 1.47, for example.

    None of this public firmware has the bootloader, however, so you either need to make you own that just jumps to location 0x8004000 or find a board that hasn't been read-locked, pull the full 128K flash off of it, as it will have the bootloader, and use that as a base to program the board with. Such boards do exist as I found, but recent ones do seem to be read-locked.

    You'll need a bootloader of some type or the board will not run because the starting address of the firmware is at 0x8004000, and the start of flash is 0x8000000. So, you need to have a program at 0x8000000 that at least does a jump instruction to 0x8004000, and is smaller than 0x8003FFF.

    Note that I've found that only version 1.42 is usable for my application. 1.46 and 1.47 both seem to have bugs where the chip goes into a power down mode where communication from the board is delayed. This occurs when the board hasn't received a move instruction in a while.

  • Thanks very much for the info. I'm working on the TMCM1290 so was hoping where your code was located would be others as it says in the manual. I've not seen any others so far.
    Points noted on the bootloader, hopefully we won't have to replace that.
    My quest for this is to be able to work around any future bugs like you mention.

    Thanks again.