Other Parts Discussed in Thread: TMS320F28379D
I have a TMS320F28379D control card and a custom hardware prototype that I am running with essentially the same code, having confined a handful of GPIO pin assignment differences to a header file. I was having trouble getting both boards to boot from flash, but since solving that problem in another thread, I have run into a problem where I can see the Analog Subsystem Registers on my control card have non-zero trim values loaded at power-on, but the same registers on my custom hardware have zeros in them, as though there is no call to Device_cal (0x70280) from c1brom_system_init() in c1brom_boot.c as part of the bootloader initialization sequence. I originally thought that this would get solved by booting from flash so that the cal would not get bypassed, but it didn't seem to fix the issue, so I'm back. :)
I have dumped the OTP memory for both and compared them to be sure that DEVICE_CAL_LOCATION wasn't all zeros or all 1s, since that would prevent the call. When I single step the assembly code at 0x070280, everything looks to be working the same on both pieces of hardware (although one is trying to load 0x0000.8D63 and the other 0x0000.955E, as one would expect since the TRIM values would be unique per DSP), but on the control card, I can watch the ANAREFTRIMA register update with the values from OTP, while on the custom hardware, the registers simply stay zero, as though locked or prohibited from being written. Is there something that could be preventing the calibration registers from being written on my custom board? I'm totally stumped.
I'm attaching the OTP dumps from the control card and from the custom hardware as well as a screenshot comparing the analog subsystem registers at the point just after stepping instruction at 0x70296, MOVL @0x36, ACC. Control card regs are yellow (changed) and custom HW regs stay same.
Thank you!
custom_hardware_otp_dump.zipcontrol_card_otp_dump.zip