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.

TMS320F28379D: Difficulty Emulating Bootloader - Alternate SCIA Pins GPIO28 and GPIO29

Part Number: TMS320F28379D
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

TMS320 F28379DPTPT YFC-73AVJ1W G4
CCS Version: 7.3.0.00019

-------------------------------------------------------------

From the documentation, it sounds like if you write the BOOTCTRL register to have
BMODE 0x81, you will no longer be able to boot to flash when booting to "GetMode"?
This seems very undesireable...I just want to use the altername SCI pins when the
boot pins select the SCI as the boot source. I would still want to boot to flash
otherwise. Is this not possible?

I then read that I could use the emulation boot to test these settings, which
is what I proceeded to do. I have not had any success getting the alternate
pins to work (I cannot test the default pins of GPIO84 and GPIO85 because they
are used for other functions on my board.) The following is what I have tried.

From CCS, I have EmuKey to 0x005A and EmuBMode to 0x0081. After selecting the
CPU Reset button, it was my understanding that the Boot ROM would wait to
autobaud detect on GPIO28 upon receipt of the character A. The documentation
(Technical Reference Manual) that I have read said that I should get the
character A repeated back when detection was successful...when this didn't
happen I:
-Repeatedly hitting the character A several more times in case the autobaud
detect had a retry...I never saw an A repeated back to me.
-Swapped Rx and Tx just in case I had them backwards...still no result...

-Tried different baud rates: 9600, 38400, 115200
-Downloaded the "controlSUITE" code as it has what is supposed to be the
source code for the bootloader that is in ROM. However, there are many
different versions...how do I know what is actually on my chip?
(v100 v130 v140 v150 v160 v170 v180 v190 v200 v210 v3.00.00.00)

-Picking one at random and digging through the source code...I have many
questions:
*c1_bootrom.h extern's EmuKey and EmuBMode...but when I grep through the
code, I don't see them being used anywhere? So, does setting those in
CCS really do anything? Is this even supported for my part?
*F2837xD_sci_flash_kernels_cpu01.c calls SCI_GetFunction(SCI_BOOT) which
appears to be hard coded for the default GPIO's(SCI_BOOT is defined as 0x01
in the c1_bootrom.h header...SCI_BOOT_ALTERNATIVE is 0x81 which is what I
was hoping could be set using the EmuBMode variable). If this is really
what is in the ROM for my part...it seems that using the alternate pins
really isn't available?
*I do not see anything in the boot code that would repeat the autobaud
character back. Does the autobaud hardware block do this by default? The
Technical Reference Manual didn't seem to indicate that the hardware would
send a response.

Is what I am attempting to do possible?
If so, will it prevent me from booting to flash when the boot pins are both
high?
If so, it is possible to test this boot configuration in emulation mode?

Best Regards,

Andrew

  • Digging into this further, it seems that the built in bootloader can only write to RAM.  As I need a bootloader that will write the code to flash, it appears that I will be writing a custom bootloader for this part.

    While still curious why I was unable to connect to the internal bootloader, I am no longer going to spend time on it as it will not meet my needs.

    Best Regards,

    Andrew

  • Andrew,

    Did you already check this example in C2000Ware? This example seems to do exactly want you are trying to do.

    <ti>\c2000\C2000Ware_1_00_02_00\device_support\f2807x\examples\cpu1\F2807x_sci_flash_kernel

    Regards,
    Manoj