Explaning the high ignition timing values
Hello all,
Was a little puzzled by the top right corners of the tables with timing advance from 241 to 254 degrees!!! Surely this would be trying to fire a spark in the wrong cylinder.... Anyway here an explanation as to why they are these values (or not!)..
I take it these map were read directly from the memory map in the ecu. The numbers are stored in memory as a binary number which are either 0 or 1. Clearly this is not that useful if we want to represent numbers greater than 1!! so the numbers (called bit(s)) are grouped together as 8 bits, know as a byte. Using 8 bits (a byte) we can represent any whole number from 0 to 255. 00000000 to 11111111. For example:
00000000 = 0
00000001 = 1
00000010 = 2
00000011 = 3
00000100 = 4
........
00001000 = 8
........
00010000 = 16
........
00100000 = 32
........
01000000 = 64
........
10000001 = 129
........
11111100 = 252
11111101 = 253
11111110 = 254
11111111 = 255
Note how nothing in the above table is greater than 255!
However, it can be seen that there is no way of representing negative numbers. Will actually there is and its called the "Twos complement notation", I'm not going to explain it here, but
http://en.wikipedia.org/wiki/2s_compliment give a desent explanation if your interested. Because we are stuck with 8-bits, the range of number we can represent also changes. Using 2s Complement we can represent numbers from -128 to 127.
Positive number are repreresented in just the same way. Any number equal to or greater that 128 in the above tables are negative! They need to be converted by subtracting 256 from then. So 254 is actually [254-256= -2]
So the top 2 lines for the CG13DE ECU (i.e 600rpm & 800rpm) is
15 15 15 15 10 9 8 4 2 -2 -7 -12 -12 -12 -12 -15
15 15 20 20 13 9 9 4 1 0 0 0 0 0 0 -7
Thats better! Clearly negative number represent timing retard. i.e degrees BTDC.
I'll leave you to do the one for the CG10DE ECU!!
Hope this is useful...Laters