SVX Network Forums Live Chat! SVX or Subaru Links Old Lockers Photo Post How-To Documents Message Archive SVX Shop Search |
IRC users: |
#181
|
||||
|
||||
Quote:
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II |
#182
|
||||
|
||||
Quote:
The shape of the graph comes from the data in the table. It's the scales and units that I'm not 100% sure of. Thanks for posting the ECUtune graphs, I'd been looking for them, but couldn't find them. I'm happy that they look fairly similar to mine. I understand what you are saying about the map should be flat in low load as rpms increase. I'll check the code again and make sure I haven't got the scale backwards. There are some other tables in the memory that probably have an effect on things. I don't understand what they do yet.
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II |
#183
|
|||
|
|||
Yea, . I couldn't get to sleep Friday night and just started wandering around the internet.
Oops, I spoke too soon. The 7791 is using peripherals the 7790 doesn't have. Its got two UARTs, but its only using one. It does have the same length interrupt vector table as the 7790 though. I wonder if its just the commercial grade 7700? Ever found a datasheet or pinout of the 7791? I'll re-disassemble trying it as a 7700 and see what that coughs out. On the port speed: it depends on how they setup the UART. Its a little old school, you can actually supply an external clock to set the speed of the UART (Nissans do that), or use the internal clock. The Subaru is a little odd. Check out the code initializing the serial port: Code:
0094B1 AD2980 lda al, 0x8029 0094B4 D011 bne 0x94c7 0094B6 8DCF12 sta al, 0x12cf 0094B9 643065 ldm #0x65, dp + 0x30 ; Write to UART tx/rx mode register 0094BC 64317F ldm #0x7f, dp + 0x31 ; Write to Baud rate generator 0094BF 643404 ldm #0x04, dp + 0x34 ; Write to Control register 0094C2 643505 ldm #0x05, dp + 0x35 ; Write to Control register high byte 0094C5 800F bra 0x94d6 Code block address: 94C7 Length: 145 M:1 X:0 called by: 94B4 0094C7 8DCF12 sta al, 0x12cf ; Branch target from 94B4 0094CA 643005 ldm #0x05, dp + 0x30 ; Write to UART tx/rx mode register 0094CD 643133 ldm #0x33, dp + 0x31 ; Write to Baud rate generator 0094D0 643404 ldm #0x04, dp + 0x34 ; Write to Control register 0094D3 643505 ldm #0x05, dp + 0x35 ; Write to Control register high byte 0094D6 643801 ldm #0x01, dp + 0x38 ; Branch target from 94C5, Write to unknown peripheral [38] 0094D9 643907 ldm #0x07, dp + 0x39 ; Write to unknown peripheral [39] 0094DC 643C04 ldm #0x04, dp + 0x3c ; Write to unknown peripheral [3C] 0094DF 643D05 ldm #0x05, dp + 0x3d ; Write to unknown peripheral [3D] 65h - even parity, 1 stop bit, internal clock (8Mhz/2), 8 data bits, 1953.125 baud or 05h - no parity, 1 stop bit, internal clock (8MHz/2), 8 data bits, 4807.69 baud It looks like it can also swap between the two modes in software (it sets the UART registers later in the code), maybe. This matches the two SSM data transmission modes Kaele (Kashima) documented: http://kaele.com/~kashima/car/gc8.html The Japanese to English translation isn't great, but it looks like Kashima at least though about upping the speed to 9600 baud. I don't know how that would work in a car like the SVX with multiple ecus sharing the same diagnostic port. You might have to separate the engine ecu from the rest. to try it just change the line in the '65h mode: ldm #0x7f, dp + 0x31 ; Write to Baud rate generator to 19h istead of 7Fh. That should set it to 9600 baud instead of 1953. |
#184
|
||||
|
||||
Actually, there's no need to use online translation tools for that page, because he's bilingual. If you click the "ENGLISH" link on that page, it'll be translated for you.
http://kaele.com/~kashima/car/gc8-e.html Quote:
|
#185
|
|||
|
|||
His English version abbreviated the description of the protocol, and didn't describe the alternate ASCII mode.
|
#186
|
||||
|
||||
Oh you're right, he cut off the part in the middle. I'm at work right now and the computers here don't support Japanese text, or I would translate it for you myself. When I get home, I'll translate what I can, okay? Just three more hours...
|
#187
|
||||
|
||||
Now sadly I don't know enough about the hardware we're dealing with to be 100% sure about my translation of the final paragraph. But HOLY CRAP GUYS, YOU HAVE TO READ IT!!! IT'S AMAZING!!!!! Maybe this will solve the problems with the feedback coming in so slowly!!
Quote:
EDIT2: A friend of mine offered to take a look at what I've got and try to figure something out with me. He's pretty good with electronics, so we might be able to find something out. Last edited by Nomake Wan; 08-22-2007 at 01:50 AM. |
#188
|
||||
|
||||
Quote:
Quote:
I am undecided whether to use your disassembler or update mine with your ideas. At present I'm using a linux box which rules out MS C++. Quote:
I've had a look at some comparator datasheets (LM339 & LM311) but I can't figure out how to add them to our circuit. If you have a schematic it would help immensely.
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II |
#189
|
||||
|
||||
Quote:
The ASCII mode comms routine is at FCDD in the SVX code. The commands are 12, 7F and 20 exactly as per Kashima-san's website. I'll give it a try later and see if it works at the higher baud rate. I'll also check what he said about the rate not returning to normal, but at first glance it looks like the baud rate is reset at the start of each comms routine. If it doesn't work then there may be another way: At the start of each comms routine there is a flag (bit 6 of location 11CF), which indicates which baud rate is currently in use. It checks the flag to see whether it needs to reset the baud rate. Perhaps by switching to the ASCII mode and then clearing the flag we can make it skip the reset when it gets to the Normal mode routine. Quote:
I had a quick scan through the TCU code but I can't see anything that looks like an ASCII mode routine.
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II |
#190
|
||||
|
||||
Quote:
I don't think it would be an issue having the separate units on different baud rates. They stay silent until woken by their own specific read command. At present we don't have the ability to make changes to the ROM. As I understand it, the 28C1028 EPROM required by the ECU and TCU is no longer available. There is a guy who makes an adapter that will allow a pair of 27C512 EPROMS to be used instead. http://www.scoobyecu.co.uk. This is the same approach taken by Longassname (ECUtune) for his Stage 1. A burner for 27C512 eproms can be found on ebay for about $18. http://search.ebay.com/Enhanced-Univ...ROM-Programmer I may think about getting one in the future, but at the moment I can't devote enough time to the project. Phil.
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II |
#191
|
||||
|
||||
Quote:
Quote:
Quote:
Quote:
|
#192
|
||||
|
||||
Quote:
http://homepage1.nifty.com/BG5A59D/r.../dataread.html Quote:
Quote:
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II |
#193
|
||||
|
||||
Quote:
Quote:
|
#194
|
||||
|
||||
Okay, I will now share the results of my test.
First off, I can't figure out how to do any of the baud stuff. I tried setting to 4808-8N1 but then the ECU wouldn't respond. Duh I wasn't talking in ascii. So I tried typing "7f111213141010" but that got no response. Nothing I tried got any response. I know NOTHING about ASCII, so I'm probably just doing it wrong. I also don't know how to overwrite the 7f for the baud rate UART control. Please explain what memory address this is. I thought it was "94BC" but that got "64" not "7F." If I knew where to read/write from, I could test this whole override thing out. However! I DID make a HUGE HUGE HUGE HUGE breakthrough. HUGE. GIGANTIC. I found out the source of the junk data in my car. When I ran the program with the car off running from the laptop battery, I got good data. When I ran the program with the car idling after a while with the laptop running on the inverter, I got junk data. But I noticed suddenly that while indeed it was junk, it wasn't nearly as bad as before. Not as many FF readings. And to my shock, there were a few random lines that read "123400." So I unplugged the inverter. I got good data, to my extreme shock. But then the radiator fans came on, and I started getting As and Bs and stuff. I waited for them to turn off... and decided it was time to do a real experiment. I cleared my screen, sent the read command, and let it run. Idling Low, Nothing On: 123400... (good data) Idling Low, Headlights On: FFEEECFDFDE (extreme junk data) Idling Low, Parking Lights On: AACABDDS906590A (not as much junk) Revved up ~2000 RPM, Parking Lights On: 123400... (good data) Revved up ~3500 RPM, headlights on: 123400.... (good data) IT'S POWER. Power has something to do with it. I'll attach all of my logs here. Please enjoy them. EDIT: To be clear, it seems to be a lack of power. When a load is placed on the SVX electrical system, the converter box can no longer read coherent data. When the load is relieved (i.e. by revving up to increase alternator output) the converter box can once more read coherent data. Last edited by Nomake Wan; 08-22-2007 at 08:21 AM. |
#195
|
||||
|
||||
Quote:
7F is the read code 31 is the ascii code for 1 32 is the ascii code for 2 33 is the ascii code for 3 34 is the ascii code for 4 35 is the ascii code for 5 } I'm not entirely sure what kashima-san meant with "R" in 32 is the ascii code for 2 } column 5 & 6. I'm assuming this. 52 is the ascii code for R. I think this should be equivalent to 78 12 34 'R' in binary mode. Quote:
Quote:
I'm hoping that Calum will come back with a schematic for us. He suggested using a comparator. It sounds like the Nissan guys have found a solution to this problem.
__________________
Subaru ECU and TCU Website 1992 Alcyone SVX Version L 1992 Alcyone SVX Version L 1994 Alcyone SVX S40-II 2004 Subaru Legacy 2.5 SE Sports Tourer 1996 Subaru Legacy 2.2 GX Wagon 1988 Subaru Justy J12 SL-II Last edited by b3lha; 08-22-2007 at 09:19 AM. |
|
|