Toyota A-Series Transmission controller

Kai

That Limey Bastard
Staff member
Okay, so, i'm bored waiting for my parts to arrive, and i want to DO something with regards to my other car. I want to design a transmission controller, capable of controlling upto 6 solenoids, run by an Atmel AVR Microcontroller.

The A340E transmission in the car (MA70 Supra) is a 4-speed automatic with lockup Torque Converter, the valve body has three solenoids & line pressure is controlled by a cable to the throttle body. All three solenoids are simple 'engage/disengage' type, two E/D type for the gear selection (1/2/3/OD) and the third for either engaging or disengaging the TC.

However, i want to have a bit more control over the transmission.

The A341E & A343E transmissions in the JZA70 and JZA80 are also 4-speed with the lockup Torque Converter, but the valve bodies have five solenoids, two 'engage/disengage' type, and three PWM controlled ones. The two E/D type are for the gear selection 1/2/3/OD the three PWM type are for the line pressure, accumulators & the torque converter lockup.

Now, you can swap the valve bodies over between the A340E and the A341E/A343E, but you need to then ditch your transmission controller. See, in the MA70's, the transmission controller is a separate unit. In the JZA70 and JZA80 they're built into the ECU, and you can't run them without the engine attached. So, the only option until now has been to purchase something like a PCS Transmission controller for about $750.

So i figure i'd build my own. The original transmission controller looks DIRT SIMPLE:

IMG_2426.jpg


That is a 4/8-bit Fujitsu 6800-based microcontroller with 2kb of ROM embedded and 512-bytes of memory, so i figure if i use an Atmel ATMega168, it'll be more than enough.

ATMega168 has 23 I/O lines including 6 PWM Channels - the only question is, how to control the solenoids. I figure MOSFET's would do, but, Logic Level or driven via another IC? I'd like to be able to use logic level ones - but the solenoids are 12v and bank on about 2 to 3 amps current each to run them.

Inputs will be throttle position sensor, speed sensor (hall effect), coolant temperature sensor, the pattern selector (PRND2L), neutral start switch, O/D switch (you can disable O/D on the selector lever), brake pedal switch & PWR switch (sport mode selector).

I've even whipped up a block diagram of the hardware in illustrator for you. If you have electronics knowledge/experience, POST IN THIS THREAD! ALL HELP GLADLY WELCOME!

Transmission-Controller-Draft.jpg


So, thats the lay of the land - who fancies giving me a hand? With any luck, it'll be almost universal for use on any automatic transmission, not just the Toyota A series.
 

Kai

That Limey Bastard
Staff member
Slight change - instead of the ATMega168, i'm going to go overkill on the controller for the prototype - i don't want to be caught short on the I/O channels & PWM channels, so i'm speccing an ATMega128 - 2 more PWM channels and about 30 more I/O pins. That's the only change for the moment, i'm still trying to nail this down to a modular approach before i start working on a code flowchart. Also - big kudos to IJ for sending me the config file for his PCS transmission controller - without it i'd still be in the dark, but now i have PWM frequencies & durations and alllll the settings i needed to be able to plan the schematic in full!
 

Kai

That Limey Bastard
Staff member
Worked out a LOT of the output side today - turns out that instead of using PWM Solenoid Drivers and SPST relays, turns out i can use a Siemns BTS711 Quad High Side Driver - runs off upto 46v DC, so i can run it off the 12v rail directly. Instead of having a set of PWM Solenoid Drivers and one set of FET/SPST Relays to run the On/Off Solenoids, i can use two BTS711's, each with 4 inputs, and 4 outputs. The AVR can output PWM signals to one BTS711 for the PWM solenoids, and output on/off signals to the other BTS711 for the on/off solenoids. The PWM solenoids have a top frequency of 700Hz, which is well within the 2500hz (2.5Khz) switching speed of the modules.

As for the inputs, using a simple voltage divider with two 1k ohm resistors can step down the 0-7v from the TPS to 0-3.5v that the AVR can handle (max 5v input on logic level) - so that's all sorted! :)
 

gennro

New Member
Mar 12, 2008
357
0
0
Alamogordo, NM
Yeah the GPIO output board is a bit to much for a simple transmission controller. The CPU alone on the GPIO board costs 80 dollars where Kai can build the transmission controller for less then 30 dollars.
 

4U2QUIK

1UZFE SWAP DUDE!!!
my understanding was that the gpio rout is for if you want fuel spark and trans controll alltogether. One of the other options is to take a ms1 and make it a dedicated trans controller. But in Kai's case I think he's got a good thing going using the ATMega128. Cheap, compact, and extremely versitile.
 

Kai

That Limey Bastard
Staff member
Been feeling a bit crap lately, and had a few other things to deal with, so apologies for the lack of updates.

However, i have encountered a possible problem. Turns out the TPS connection doesn't go directly to the transmission controller as well as the ECU, instead, the ECU feeds the data to the transmission controller. But, rather than just being a passthrough, the ECU splits the incoming resistance into three channels with different voltages thrown out by each pin dependant on the throttle position, and it's proving to be a bit of a pig to map it. The 0-7v 8-bit resolution 'step' that can be measured from the diagnostic connector is actually the processed signal from the transmission controller, so the stock one is converting the inputs into that voltage, and using that 'step' system to determine the throttle position. On further inspection, it looks like the SIL modules are converters for input & output channels, but of course, there's no documentation on them, cause they're made by Fujitsu TEN who now only make in car audio...

So, my plan of attack is to use three voltage dividers, one on each 'channel' so that the 12v value becomes 4v, 5v would become 1.66v etc - and use discrete logic to give me a binary coded input i can feed into the MCU. Although i had thought of piping the input into the MCU directly and writing the software routine that would do the conversion. I also thought about using a pair of quad voltage comparators, and doing something that way. Here's a pinout, so you know what i'm up against;

MA70-A340E%20Transmission%20Controller%20Pinout.jpg


Yes, i know i could technically just take a feed from the TPS connector to give me a resistance value instead, but, i'm, aiming for this to be as plug and play as possible.

Any ideas, chaps?
 

Kai

That Limey Bastard
Staff member
Would that TPS also output the signals that TCCS requires?

I had a thought, see, if i use a voltage divider on each of the 'L' inputs to knock it down to say, 4v from 12v, then i can use the on-chip ADC with no need for support logic. I really would like everything to be as plug & play as possible as far as TCCS and inputs are concerned.
 

Kai

That Limey Bastard
Staff member
I'll check into the Camry TPS. The PCS is a good bit of kit, but, i guess $750 is a lot of cash for most people to drop on something like that.

If i can get the inputs to the system to carry straight over from the stock system/setup, then there won't be any 'dicking around' - the MCU has multiple inputs that'll be unused, so there's no reason i can't make it entirely universal, but the priority for the moment is to be able to slot it into a supra, slam in an A343 valve body and just have it 'work' without needing to feck around with it too much.
 

IJ.

Grumpy Old Man
Mar 30, 2005
38,728
0
0
62
I come from a land down under
No matter how you do it it's still going to be dicking around as you need to program shift logic up and down slopes for all the PWM channels and shift tables....

The PCS does this in an easy to use and understand GUI so for me the purchase price is well worth it.

Can't imagine a botched 3>4 shift at 6000 rpm back into 1st is going to be pretty...
 

Kai

That Limey Bastard
Staff member
Which is why i had the idea of working on a 'stock' map that would just allow the use of the A343 body without any of the more performance oriented features first, and using that as a base from which to play with.

The MCU has a 4k EEPROM, more than large enough for all the configuration data, tables etc - which i see no reason you wouldn't be able to edit on the PC, and upload via USB or the ISP in much the same way as the PCS - the difference being that obviously it's not going to be as mutifaceted & advanced as the PCS. I envisaged this as an open source project, provide the schematics and the code to people and if they want to feck with it, they can.

At the end of the day - we know the Mk3 crowd for the most part prefers to just plug something in and have it work/go faster, electronics especially, so i figure, why not make it easier for people to do that? Then, if they want to configure more inputs/outputs, the hardware is commercially available with datasheets, the software is free to all, and they can have at it :)

PCS for $750
SupraStick for $350
This? Basics would cost no more than say, $50 in hardware, the code is free, and you can build it yourself if you want - never underestimate the cheapness of Mk3 owners :D
 

Kai

That Limey Bastard
Staff member
This is starting to make sense...but still annoying!

As the TPS is directly related to TCCS, i thought i'd ask in the TCCS thread:

Question for you - the L1, L2 & L3 Pins from the ECU, i know that they're primarily for the TEMS computer, but in A/T models they connect to the ECT ECU as well - they're outputs of the throttle position, i'm guessing, but are they generated by discrete components on the lower board, based on VTA, IDL & E2? If so - is there any way to show what each channel should output as the throttle is increased/decreased on a bench setup?

This is what 3p14159, lead on the TCCS Disassembly thread had to say on the matter:

The L1,L2,L3 outputs are a 3 bit digitization of the first derivative of the throttle position. The code calculates the difference between the instantaneous throttle position and a running average position, and then uses a lookup table based on this value to select the L1/L2/L3 bits. There is a peak hold feature too, so when you punch the throttle the value is held even after the throttle position stops changing.

You will note from the table that the peak value (assuming Lx represents a number) occurs for not the most aggressive throttle opening, but something backed off from there. Its a bit of a puzzle.

The lookup table data is as follows:

Map_ECT_TPS2: .db 00h ; 000x only interested in value of bits 1,2,3 (L1, L2, L3)
ROM:EE18 .db 08h ; 100x
ROM:EE19 .db 0Ch ; 110x
ROM:EE1A .db 04h ; 010x
ROM:EE1B .db 06h ; 011x
ROM:EE1C .db 0Eh ; 111x
ROM:EE1D .db 0Ah ; 101x
ROM:EE1E .db 02h ; 001x

It would be good to have some measured data to compare with, something I have not done.

It's entirely possible that the method i mentioned above, with piping the L1 into the ADC0 port via a voltage divider, would most definitely not work! :(
 

mikeymkll7mgte

Supraholic
Oct 11, 2007
52
0
0
Spokane
Im keeping a close eye on this. I hope you can come up with something. I have Megasquirt outputing the IDL, L1, L2, and L3 signals to the stock trans ecu for now, and it seems to work great, but I would LOVE to have a programable controller. I may end up buying another MS unit and making it a controller.
 

suprahero

naughty by nature
Staff member
Aug 26, 2005
14,971
0
36
54
Roll Tide
I"m keeping an eye on this as well. I'd love to put a built automatic up to my 1.5jz so I can do some quarter mile racing and have fourth gear. Any suggestions would be greatly appreciated.
 

preludelinux

New Member
Dec 13, 2010
3
0
0
East Moline,IL,61244
very interesting ( subscribed )
ah the idea to build your own transmission controller sounds pretty neat.
anything open source is good too and schismatics and such for everyone to build on and see is fantastic.

im planing on using Megasquirt this spring/summer on a 1jz/2jz swaps ecu.
 

Kai

That Limey Bastard
Staff member
Yeah, it's taken a bit of a back seat as other stuff has cropped up (getting engaged etc) - but i am still having a think about it. It's one of those things that i wish there were a few people that knew more about electronics, or at least microcontroller programming, getting involved, like in the TCCS Disassembly thread - i'm not going to ask too much of the guys in that thread either, as the TCCS Project is far more advanced and way more important!

As i said - the ultimate goal is to do away with the line pressure cable and swap to the fully electronic valvebody. It'll never be as advanced as something like the PCS, but then, it's not designed to be. Simplicity and openness is the key - both in terms of any final schematics, and all the code.

I'm also looking very closely at the Volvo transmission controller, as 940's and 960's use an A341/3E transmission with a standalone transmission ecu.

If anyone wants to get involved - by all means chime in!