USB JTAG

USB JTAG (http://www.usbjtag.com/vbforum/index.php)
-   BDM (NT)on Car Engine computer (http://www.usbjtag.com/vbforum/forumdisplay.php?f=22)
-   -   P59 PCM with AMD Flash (http://www.usbjtag.com/vbforum/showthread.php?t=9574)

DavidBraley 02-09-2019 04:19 PM

P59 PCM with AMD Flash
 
1 Attachment(s)
I've been following bubba2533's thread on getting the P59 PCM that uses the Intel AB28F800 flash chip working with the USB BDM NT device:

https://www.usbjtag.com/vbforum/showthread.php?t=9560

This "New" TP59.xml file that you created for bubba2533 does not work with my 1 Meg P59 PCM that uses the AM29F800BB flash chip and I was hoping you could help me too.

After connecting everything and before I press the "ID" button on the tool bar, I look in the lower right corner of the software it says: "USB Connected" and "BDM ON"

Here is the output from the USBJTAGNT software when I press the "ID" button on the toolbar:

Copyright (C) 2010-2015
USB BDM NT 0.84
Target: P59
-speed 0
-speed 1
-reset 1
unknown flash type!
Report these values http://www.usbjtag.com/vbforum 0001,2258

I then read the contents of the AMD AM29F800BB flash using the TP59.xml file, and the bin file it created is attached below.

I compared the bin file created by the USB BDM NT device with a known good bin file from the same P59 PCM, and the two bins are identical. So I know that the TP59.xml file is correctly reading the memory contents of the AMD AM29F800BB flash memory using the USB BDM NT device.

I hope what I said makes sense. I'm very new to using the BDM device to read and program these PCM's.

Let me know if there is anything else you might need.

Thanks in advance for your help with this.

David

NSFW 02-21-2019 11:31 PM

Did you make any progress with this?

If you need help getting the flash chip into command mode, this C code worked for me:

#define COMMAND_REG_AAA (*((volatile uint16_t*)0xAAA))
#define COMMAND_REG_554 (*((volatile uint16_t*)0x554))


// Switch to flash into ID-query mode.
COMMAND_REG_AAA = 0xAAAA;
COMMAND_REG_554 = 0x5555;
COMMAND_REG_AAA = 0x9090;

// Read the identifier from address zero.
//flashIdentifier = FLASH_IDENTIFIER;
uint16_t manufacturer = FLASH_MANUFACTURER;
uint16_t device = FLASH_DEVICE;
uint32_t id = ((uint32_t)manufacturer << 16) | device;




The data sheet was not clear at all. That code was mostly based on existing code that I found in a GM ECU, and code that someone else showed me from a Lotus ECU.


I think I accidentally erased my ECU's boot block, so I'm working on getting the BDM NT set up to fix it. I'm hoping you guys can get writing to work by the time I get mine wired up. :)

usbbdm 02-22-2019 12:19 AM

I can help you to program the flash. The AMD flash support is not an issue. Simply need to add the flash into the definition.

DavidBraley 02-22-2019 09:31 PM

Quote:

Originally Posted by usbbdm (Post 61136)
I can help you to program the flash. The AMD flash support is not an issue. Simply need to add the flash into the definition.

That would be fantastic! Any help would be very much appreciated. Not just for me, there are many that could benefit from this working. Let me know if I provided enough information in my first post.

I attached a file in my first post from reading the contents of the AMD flash using the USB BDM NT device that I bought from you. Please let me know if there is anything else I can do.

Oh, I also wanted to thank you for the help you gave me regarding the wire length on the header for the USB BDM NT device. I have managed to keep the total length to less than 6 inches (~152mm). It works much better that way. :)

Take care,

David

DavidBraley 02-22-2019 09:35 PM

Quote:

Originally Posted by NSFW (Post 61135)
Did you make any progress with this?

If you need help getting the flash chip into command mode, this C code worked for me:

#define COMMAND_REG_AAA (*((volatile uint16_t*)0xAAA))
#define COMMAND_REG_554 (*((volatile uint16_t*)0x554))


// Switch to flash into ID-query mode.
COMMAND_REG_AAA = 0xAAAA;
COMMAND_REG_554 = 0x5555;
COMMAND_REG_AAA = 0x9090;

// Read the identifier from address zero.
//flashIdentifier = FLASH_IDENTIFIER;
uint16_t manufacturer = FLASH_MANUFACTURER;
uint16_t device = FLASH_DEVICE;
uint32_t id = ((uint32_t)manufacturer << 16) | device;




The data sheet was not clear at all. That code was mostly based on existing code that I found in a GM ECU, and code that someone else showed me from a Lotus ECU.


I think I accidentally erased my ECU's boot block, so I'm working on getting the BDM NT set up to fix it. I'm hoping you guys can get writing to work by the time I get mine wired up. :)

Thank you so much NSFW for the reply! I think we are going to get this going. :) I also have a bunch of bin files if you need anything to get that ECU going again.

I will be very interested in seeing the programming fixture you are about to build that uses the USB BDM NT device. Let me know too if you need anything. I have a machine shop here at home and I've been cranking handles now for over 40 years...


All times are GMT -7. The time now is 09:10 PM.

Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.