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.
Hi everyone,
This is my second question concerning this new setup, but I create another post because I don't the 2 subjects are related.
I am using LMFlash build 1613 to program the flash memory of a TM4C1231 microcontroller through the UART. I connect to the UART using a custom designed USB-to-Serial board based on a FT232 chip from FTDI. This custom designed board was originally created to work with a NXP microcontroller (LPC11E14F).
Following NXP logic suggested, the serial port output signals RTS and DTR are connected the RESET and ISP signals of the microcontroller. The goal is to be able to perform a software reset of the LPC11E with a Toggle of the DTR signal on the serial port. It also allows to set the microcontroller in bootloader mode by programmation with the proper toggle sequence of DTR and RTS sequence.
I was hoping to keep the same logic with the TM4C microcontroller. However, I observed that LMFlash programmer is toggling the DTR signal during its communication therefore causing my TM4C to reset. I was not able to flash program my TM4C until I cut the DTR trace on my custom USB-to-serial board.
Is there another version of LMFlash or an alternative Flash programmer for TM4C series which does not change the state of the DTR serial signal during programmation?
Has anyone faced the same situation and develop a custom LMFlash application based on the previous open source versions from Stellaris?
It would help me a lot.
The main purpose of this is to be able to create an automated user friendly test sequence with TestStand. This way, with a single click I could :
- Put the TM4C microcontroller in bootloader mode
- Flash program The TM4C with a test firmware using lmflash.exe command line interface
- Reset the TM4C
- Execute electric tests
- Put the TM4C microcontroller in bootloader mode
- Flash program The TM4C with latest firmware release using lmflash.exe command line interface
Thanks in advance
NIen
Hi Amit,
I understand that the TM4C does not require DTR and RTS signaling. I want to use DTR and RTS as RESET and ISP signals from USB. Here is part of my small custom board showing the FT232 and how DTR and ISP are connected to RESET and ISP respectively. If LMFlash Programmer would not affect The DTR signal, I would be able to use DTR as a RESET signal from the USB port without having to use the push buttons to put the TM4C in bootloader mode or perform a reset. This board was originally designed to be used with a NXP microcontroller the NXP flash programmer (Flash Magic) is using DTR and RTS for this purpose. I would really like to continue using this strategy with the TM4C.
Concerning the FT232, you seem to tell me that the FT232 is reponsable for the DTR signal being driven during the serial communication. I was always under the impression that it was the serial port configuration which was responsable for driving the DTR signal. If flow control is disabled in the serial port configuration (Not in the FT232 registers), then the FT232 has no reason to drive that signal. At least this is the behavior I observe when using Flash magic with my NXP device. DTR is not driven and the microcontroller does not reset. I did not change the FT232 default configuration since I use it.
More preciseley, with LMFlash, I observe that when initiating flash programming, DTR and RTS are set to ACTIVE both at the same time in the beginning. Then, RTS will TOGGLE INACTIVE and programming will start. DTR remains ACTIVE steady for the whole programming process.
When using UNIFLASH as you suggested for my other post, I observed that DTR is not Driven during the first part of programming which seems to work (Up until 30%). Then I get an error for which I ignore the cause. I have posted my log in my other post but here it is again :
[14:31:32] Begin Writing flash memory operation.
[14:31:32] Loading program at 0x0: C:\z\LabTestsFullImage_1.90.bin
[14:31:55] ERROR >> Cortex_M3_0: <!>Serial Communication exception: Timeout expired
[14:31:55] ERROR >> Cortex_M3_0: GEL: File: C:\z\LabTestsFullImage_1.90.bin: Load failed.
[14:31:55] File: C:\z\LabTestsFullImage_1.90.bin: Load failed.
[14:31:55] Operation Writing flash memory returned.
If I was able to perform a full programming with INIFLASH, it could be my solution because DTR is not driven and I should be able to set the TM4C in bootloader mode using the signals from serial port by programmation.
Best Regards
Hello Nien,
The 30% status may be an indication of UNIFLASH engine operation and not necessarily 30% of the download.
Nienscecco said:
1. Set RESET and PA0/U0RX ACTIVE
2. Set RESET INACTIVE (PA0/U0RX remains ACTIVE)
3. Set PA0/U0RX INACTIVE
I was referring to PA0 being used as Boot Cfg.
Regards
Amit