Register Remap?
#1
Supreme Member
Thread Starter
Register Remap?
The pink book lists the standard addresses for the registers to be located.
And how to map them to a different location.
But I can't find anything in the ANHT hac that looks like the appropriate Load cmd to remap to the $4000 area.
What am I missing?
I looked at the DIY 68hc11 ign controller page and the load statement is plain as day in it.....
And how to map them to a different location.
But I can't find anything in the ANHT hac that looks like the appropriate Load cmd to remap to the $4000 area.
What am I missing?
I looked at the DIY 68hc11 ign controller page and the load statement is plain as day in it.....
#2
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
The I/O range that I keep seeing is $1000 to $103F.
but I still don't know how to change the configs of these.
There IS a way I'm sure there must be something.
$3FC0-$3FFA Computer Control Registers might be the key to the setups but again, I don't see anything making the setup except for the code at this spot.
....I'm still digging...
...stupid code switch ain't doin it. (now it is )
but I still don't know how to change the configs of these.
There IS a way I'm sure there must be something.
$3FC0-$3FFA Computer Control Registers might be the key to the setups but again, I don't see anything making the setup except for the code at this spot.
Code:
LB088: bset L0003,#$08 ; Set EPROM ERR 51 (Failed) BIT ; CRef: $B07A,$B07F LB08B: ldx #$FB1A ; Init CPU $FB1A = 1111 1011 0001 1010 ; CRef: $B086 brclr L0003,#$08,LB095 ; Br if No ERR 51 BIT set ; ... else ldx #$FB12 ; Init CPU $FB12 = 1111 1011 0001 0010 (b3 OFF is change) LB095: stx L3FFC ; CPU Control Register ; CRef: $B08E
...stupid code switch ain't doin it. (now it is )
Last edited by JP86SS; 03-09-2005 at 08:20 PM.
#3
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Forget all that !
Look at the L0033 location.
That is where the $4000 configuration is set/changed.
I'm seeing something there but not sure what...
Look at the L0033 location.
That is where the $4000 configuration is set/changed.
I'm seeing something there but not sure what...
#5
Supreme Member
iTrader: (2)
Join Date: Jan 2002
Location: Moorestown, NJ
Posts: 9,962
Likes: 0
Received 3 Likes
on
3 Posts
Car: 88 Camaro SC
Engine: SFI'd 350
Transmission: TKO 500
Axle/Gears: 9-bolt w/ 3.23's
I dont know much about the HC11, but depending on the ecm, it may be possible to remap it. But, youd have to remap it to an area that isnt in use by other hardware already. Youd also have to go through the entire code and change all the references to the registers as well.
#6
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
I've been running through the code on my simulator and the only places I see changes to the $4000 register is when it "seems" like directional changes to the serial controller for read/writes direction.
It alternates a few bits on each scan, I'll try to explain what I see.
LF0C8 (just below there) sets 0000 0100
then progresses to LF0DA (lookup routine)
STAA changes it to 0000 0000
Then progresses to the section labled "Read A/D test Channel"
$B0 changes it to 1011 0000
program pregresses and comes back to
LF0DA (lookup routine)
STAA changes it to 0110 0000
Then progresses to the section labled "Read A/D test Channel" again
$B0 changes it back to 1011 0000
program pregresses and comes back to
LF0DA (lookup routine) again
STAA changes it to 0001 0000
Seems like that's not what were looking for.
It alternates a few bits on each scan, I'll try to explain what I see.
LF0C8 (just below there) sets 0000 0100
then progresses to LF0DA (lookup routine)
STAA changes it to 0000 0000
Then progresses to the section labled "Read A/D test Channel"
$B0 changes it to 1011 0000
program pregresses and comes back to
LF0DA (lookup routine)
STAA changes it to 0110 0000
Then progresses to the section labled "Read A/D test Channel" again
$B0 changes it back to 1011 0000
program pregresses and comes back to
LF0DA (lookup routine) again
STAA changes it to 0001 0000
Seems like that's not what were looking for.
#7
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Originally posted by dimented24x7
youd have to remap it to an area that isnt in use by other hardware already.
youd have to remap it to an area that isnt in use by other hardware already.
The parts are the same, just pinned differently.
there must be some code there to make the setup match.
Is there some kind of bios code in the thing to make the config arrangement match the I/O pinout? I've been looking for anything relating to config register settings but just don't see it in there.
Z'
I have scanned the pink book config sections and like you said, seems easy in those terms.
Just do this, and this, and this, to do that...
Nothing is ever as easy as it seems.
Trending Topics
#8
Supreme Member
iTrader: (1)
Join Date: Jan 2002
Location: garage
Posts: 4,432
Likes: 0
Received 1 Like
on
1 Post
Engine: 3xx ci tubo
Transmission: 4L60E & 4L80E
Originally posted by JP86SS
The idea is why can the same hardware be used whith different masks?
The parts are the same, just pinned differently.
The idea is why can the same hardware be used whith different masks?
The parts are the same, just pinned differently.
There is not a possibility of remapping registers. One has to work with the given MCU register map.
J
#9
Supreme Member
Thread Starter
Ok the fact that you can't remap a P4 explains why the remap
can't be found. It appears quite easy to do in a std hc11 chip
by the example I've seen.
JP and I were trying to figure this out on our own.
So we need to know what the register mapping is since the
hac is lacking in the comments pertaining to this.
Had no clue that this stuff was going on till I saw a different
ASM for a std hc11 with the I/O regs remapped to a diff addy.
If the P4 doesn't follow the standard 68hc11 map.
How does one go about finding the correct addresses?
I'm at a loss as to where to go next. And I know
JP has been at this particular road block a lot longer than I have.
He's just been plugging away at the aujp hac to keep him busy.
can't be found. It appears quite easy to do in a std hc11 chip
by the example I've seen.
JP and I were trying to figure this out on our own.
So we need to know what the register mapping is since the
hac is lacking in the comments pertaining to this.
Had no clue that this stuff was going on till I saw a different
ASM for a std hc11 with the I/O regs remapped to a diff addy.
If the P4 doesn't follow the standard 68hc11 map.
How does one go about finding the correct addresses?
I'm at a loss as to where to go next. And I know
JP has been at this particular road block a lot longer than I have.
He's just been plugging away at the aujp hac to keep him busy.
#11
Supreme Member
iTrader: (1)
Join Date: Jan 2002
Location: garage
Posts: 4,432
Likes: 0
Received 1 Like
on
1 Post
Engine: 3xx ci tubo
Transmission: 4L60E & 4L80E
I determine what the registers do by reading through the excellent anht_hac.pdf. It gives pretty much all the info you need for modifying code.
I took a look the linked website and saw that he has just started documenting what the registers do. I noticed that there are some assumptions about the SCI baud rate setting which don't make sense to me.
bit 5 bit 4 baud rate
256
1024
8192
I think that these are the clock prescaler bits. divide by 2,4,8 or something like that. (8.3M/4)/256 ~ 8192.
So if the SRX chip can handle it, you could theretically run 2*8192
or approx. 16k baud. I haven't tried it in hardware yet, but I am betting it is possible even with the old slow 1980/90s electronics.
I am going to start messing with some asm test code on the bench in a few weeks and this is one of the tests that I have planned.
I almost forgot........there was a post from someone a few months ago "claiming" that they were going to re-write the entire ECM code in "C". They calimed it would take a month. If they lived up to their claim, then the would know the complete register set because that is the only way to properly write the code in "C".
J
I took a look the linked website and saw that he has just started documenting what the registers do. I noticed that there are some assumptions about the SCI baud rate setting which don't make sense to me.
bit 5 bit 4 baud rate
256
1024
8192
I think that these are the clock prescaler bits. divide by 2,4,8 or something like that. (8.3M/4)/256 ~ 8192.
So if the SRX chip can handle it, you could theretically run 2*8192
or approx. 16k baud. I haven't tried it in hardware yet, but I am betting it is possible even with the old slow 1980/90s electronics.
I am going to start messing with some asm test code on the bench in a few weeks and this is one of the tests that I have planned.
I almost forgot........there was a post from someone a few months ago "claiming" that they were going to re-write the entire ECM code in "C". They calimed it would take a month. If they lived up to their claim, then the would know the complete register set because that is the only way to properly write the code in "C".
J
#12
Supreme Member
Thread Starter
Thanks
The abbreviations in the anht hac don't always make sense to a newb. And they don't always match the pink book. But if it had lined up in some fashion with the pink book then I could figure it out.
I think I read somewhere that the serial com greater than 8192
might interfere with the main interupt for the FI. Or they thought it might.
The abbreviations in the anht hac don't always make sense to a newb. And they don't always match the pink book. But if it had lined up in some fashion with the pink book then I could figure it out.
I think I read somewhere that the serial com greater than 8192
might interfere with the main interupt for the FI. Or they thought it might.
#13
Senior Member
Join Date: Jun 2000
Location: Tuscaloosa, AL
Posts: 998
Likes: 0
Received 0 Likes
on
0 Posts
Car: 91Z, 91RS, '84 Jimmy
Engine: L98, 355, L98
Transmission: 700R, T56, 700R4
The idea is why can the same hardware be used whith different masks?
The parts are the same, just pinned differently.
The parts are the same, just pinned differently.
Before the A/D input routine is called, the channel number for the sensor is stored in acc. A. Then it JSR's to the routine.
The routine sets b3 of $4002 to select U5.
$4000 is the data register...it's loaded with the channel number (from acc. A,) which tells U5 which of it's inputs to read. This slight delay also allows time for U5 to "come on" when selected.
Next it sets b7 of $4001 (I/O control register) high, which sends the channel data to U5 and tells it to read the channel. All the waiting is just for the time it takes for U5 to read the analog voltage and change it to a digital data byte, and to cycle the "test channel" off and back on. The "test channel" is sort of a default for U5, it's where the channel select sits when nothing is being read.
U5 then sticks the digital data byte back in the data register at $4000.
The data is then moved to accumulator A and the routine ends.
Anyway, in order to move a sensor from one ECM pin to the other, you just go into the code just before it calls the A/D input routine ($F0DA) and change the channel number stored in acc. A to match whatever U5 input pin the sensor is using. U6 is a little more complex.
Is that what you're looking for or did I totally miss the point?
Last edited by TheGreatJ; 03-10-2005 at 01:54 PM.
#15
Supreme Member
Thread Starter
Thanks, The input wasn't too hard to figure out.
Just change the channel and make sure the correct JSR is used for U5 or U6. Wasn't real sure on access to the extra pins on U6 but figured some experimentation would get it. The mux stuff is very confusing.
The outputs are a whole lot harder to figure out based on the hac.
Just change the channel and make sure the correct JSR is used for U5 or U6. Wasn't real sure on access to the extra pins on U6 but figured some experimentation would get it. The mux stuff is very confusing.
The outputs are a whole lot harder to figure out based on the hac.
#18
Moderator
iTrader: (1)
Join Date: Mar 2002
Location: Chasing Electrons
Posts: 18,432
Likes: 0
Received 227 Likes
on
212 Posts
Car: check
Engine: check
Transmission: check
The 1227730 and the 1227749 use the same PCB. The parts that are loaded are different between the two. There is another ECM of which I forget the service number that has the '730 parts loaded along with the additional RAM that neither the '730 or '749 have (but has a location on the PCB for).
Between the '730 and '749, the '749 is short a quad driver. And the '730 is short the extra injector driver parts. (they both have the ADC mux). I can't find my marked up schematics otherwise I'd post which parts differ.
RBob.
Between the '730 and '749, the '749 is short a quad driver. And the '730 is short the extra injector driver parts. (they both have the ADC mux). I can't find my marked up schematics otherwise I'd post which parts differ.
RBob.
#19
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
still digging...
Just to keep my head on straight, the original reason I started looking into this was so that running $8D mask on a 730 or 749 is pinned one way.
Running $58 boosted code can be run on the same hardware but is pinned another way.
The pins that are wired differently "should" be able to be coded to work with either mask.
Has to be in there somewhere.
I the analogs ins would be easy to fix by manipulating the channel numbers for different routines.
The digital I/O is another story and I haven't been able to nail it down.
Further investigation (or helpful, advanced kick in the rear) is what it will take to get the solution.
Running $58 boosted code can be run on the same hardware but is pinned another way.
The pins that are wired differently "should" be able to be coded to work with either mask.
Has to be in there somewhere.
I the analogs ins would be easy to fix by manipulating the channel numbers for different routines.
The digital I/O is another story and I haven't been able to nail it down.
Further investigation (or helpful, advanced kick in the rear) is what it will take to get the solution.
#20
Moderator
iTrader: (1)
Join Date: Mar 2002
Location: Chasing Electrons
Posts: 18,432
Likes: 0
Received 227 Likes
on
212 Posts
Car: check
Engine: check
Transmission: check
I've been wondering what you two have been up to. Not looking at the pin differences, going by memory, there are some digital I/O stuff changes. The TCC is most prevalent. The $8D mask uses a quad driver for the TCC that isn't present in the '749 ECM.
That may be a a place to start.
RBob.
That may be a a place to start.
RBob.
#21
Supreme Member
iTrader: (1)
Join Date: Jan 2002
Location: garage
Posts: 4,432
Likes: 0
Received 1 Like
on
1 Post
Engine: 3xx ci tubo
Transmission: 4L60E & 4L80E
Here is some info for setting up the A/D mux via the SPI interface:
Code:
*************************************************************************************** Register $4002 (General Purpose I/O register) setting a bit to one in $4002, sets the PIN HIGH Bit 0: output; controls IACA (idle air control) Bit 1: output; controls IACB (idle air control) Bit 2: output; controls III1CS (chip select,fuel management device 1, U13) Address is direct Channel select (0x0 => D16IN, 0x => AN8) Address 0x9 selects second A/D device Bit 3: output; controls ADCCS_L (chip select, active low, A/D sampling device U5) Bit 4: output; controls FOUT (gated with LIMP_L at U19 (fault device) Bit 5: output; controls MUXC (chip mux select for second A/D device, U6) MUXA MUXB MUXC 0 0 0 => select channel X0 (TPS2) 0 0 1 => select channel X1 (F12IN) 0 1 0 => select channel X2 (F11IN) 0 1 1 => select channel X3 (ESC) 1 0 0 => select channel X4 (MAT2) 1 0 1 => select channel X5 (MAT3) 1 1 0 => select channel X6 (FAULT1819_L) 1 1 1 => select channel X7 (E11IN) Bit 6: output; controls III2CS_L(chip select,fuel management device 1, U13) Bit 7: output; controls GLUCS_L (chip select, active low, called SC1=discrete I/O device U10) *************************************************************************************** *************************************************************************************** Register $4000 (SPI serial shift DATA register (SSR)) Holds data to be transmitted over the SPI interface Holds data received from the SPI interface ***************************************************************************************
#22
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Great info, Thanks for contributing
#23
Supreme Member
iTrader: (1)
Join Date: Jan 2002
Location: garage
Posts: 4,432
Likes: 0
Received 1 Like
on
1 Post
Engine: 3xx ci tubo
Transmission: 4L60E & 4L80E
forgot to give you the other register for the MUX A and MUX B selects
Code:
**************************************************************************************** $4004 SCI (ALDL) Baud I/O with MUX selects (called DO1 in the code, ??data_out_1??) Bit 0 Bit 1 Bit 2 second A/D MUXA Bit 3 second A/D MUXB Bit 4 SCI Baud select bit (8192 Hz) Bit 5 Bit 6 Bit 7 SCI Baud select bit (8192 Hz) ****************************************************************************************
#24
Supreme Member
Thread Starter
Thanks all of you guys. I catch something new each time I read this thread now.
Very helpful.
To clarify,
$4000 (SPI serial shift DATA register (SSR)) or Data register
$4001 (I/O control register)
$4002 (General Purpose I/O register)
$4003 CPU DDR
$4004 SCI (ALDL) Baud I/O with MUX selects
I'll edit more later...
Very helpful.
To clarify,
$4000 (SPI serial shift DATA register (SSR)) or Data register
$4001 (I/O control register)
$4002 (General Purpose I/O register)
$4003 CPU DDR
$4004 SCI (ALDL) Baud I/O with MUX selects
I'll edit more later...
#25
Re: Register Remap?
Hi, I am new to this board. It seems like there are people on this board that know what they are doing, contradistinguished from me, as I know nothing about this. I am looking for information on using HHO to run a fuel injected engine. As it is now, when HHO is used as a suppliment fuel, the O2 sensor is tricked into functioning at a lesser fuel delivery for better milage, by using an EFEI C/B. The problem is, if the ratio goes too low, then the ECU goes into closed loop and disreguards the the O2 signal and reverts to programing. If it is possible, I would like to remap the PROM for a different fuel delivery so the engine will run on 50 percent gasoline and 50 percent HHO. Do any of you know if this is possible? If so, are there any particular books that I could read so I could ask intelligent questions? What is the best type or model PROM burner? Also, I was thinking that using an injector from a TBI for HHO delivery would work, but I do not know where to get the signal to pulse this extra injector. Jack
#26
Supreme Member
iTrader: (2)
Join Date: Jan 2002
Location: Moorestown, NJ
Posts: 9,962
Likes: 0
Received 3 Likes
on
3 Posts
Car: 88 Camaro SC
Engine: SFI'd 350
Transmission: TKO 500
Axle/Gears: 9-bolt w/ 3.23's
Re: Register Remap?
Im not familiar with the HHO system, but depending on the ECM or PCM in use, its a matter of adjusting either the AFR tables(open loop AFR, closed loop stoich AFR, PE AFR) within the PCM or the stoich AFR if lambda or inverse lambda is used. There really isnt a need to remap anything, just a matter of adjusting the stoich AFR to whatever it is for the blend of fuel being used. The ECM/PCM will then target the correct AFRs in open and closed loop. The only stipulation is that the ratio of the fuels must remain constant over the range of operation. Otherwise, things get more complicated.
Also, what are the requirements for the supplimental injector? Its possible to use another output to switch the injector at a constant frequency and adjust the duty cycle to meter the fuel. Many of the outputs in the later TBI PCMs are PWM. You can set the frequency divider and output duty cycle. The caveat is that you would need to add extra code to meter whatever additional fuel your using.
Also, what are the requirements for the supplimental injector? Its possible to use another output to switch the injector at a constant frequency and adjust the duty cycle to meter the fuel. Many of the outputs in the later TBI PCMs are PWM. You can set the frequency divider and output duty cycle. The caveat is that you would need to add extra code to meter whatever additional fuel your using.
Last edited by dimented24x7; 09-27-2008 at 08:37 PM.
Thread
Thread Starter
Forum
Replies
Last Post