XGATE PIT based bit bang fuel injection

Official FreeEMS vanilla firmware development, the heart and soul of the system!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by Fred »

Right, not surprising, if there are no competing interrupts, and there aren't right now, then you will have no jitter, which is the whole point of doing it in a sequential way. If they have to compete, then you'll get peak jitter of the runtime of the opposing interrupt. Only if they are competing, though, ie, trying to run at the same time. if they're interleaved, there will be no jitter, just a slight latency.

Aim for ignition goodness, I think you are already by your questions earlier today :-) Good man, keep it up.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by SleepyKeys »

Fred I really need a way to view memory . I was thinking something like a request packet containing an s12x memory address and nBytes that will cause it to respond with what I requested. If you think its faster for me to just order a BDM I can do that.

thx!
You snooze, you lose!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by Fred »

It'd be faster for you to send a packet to the existing debug function over serial :-p

Code: Select all

case retrieveArbitraryMemory:
It's in the comms specification document, you didn't even have to look at the source to find it :-)

Hope that helps.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by SleepyKeys »

Sweet thx!
You snooze, you lose!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by Fred »

Some motivation for you mate! Me with PIT ignition mostly working, 4th May 2008 ;-)

http://www.youtube.com/watch?v=ti-Qe3Q9-ZM

I was just looking for another vid and saw this and thought I'd use it to wind you up!

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by SleepyKeys »

Depends on how you define "mostly working" to use that code on an engine would be considered murder in the first degree ;) But yeah its still a bit more than I have. Good wind up though, better get out my TA card and test what I did last night ;). ASM coding is slow unfortunately....
You snooze, you lose!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by Fred »

The later variants of it were better. Without the interrupt load of the main core interferring it almost certainly would have worked well.

BTW, can you give me two things:

An init your shit function
A shutdown your shit function

Even if they're the same function with different arguments.

Or is that not necessary? Just thinking about always on/stop/wait/sleep etc. Can I just turn off XGATE all together and run a C S12 side function to clean up your memory? I should probably run something like that to init it all in the first place, right?
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by SleepyKeys »

Hmmmm yeah I can do that. What if you bring back the S12x and an xgate interrupt fires before the xgate module is backup and running ? I'm sure its easy just need to test.
You snooze, you lose!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by Fred »

All interrupts will be masked while down anyway. We can just turn the XG back on before enabling the interrupts. You must do something like this at boot time anyway.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SleepyKeys
LQFP144 - On Top Of The Game
Posts: 549
Joined: Mon Feb 11, 2008 10:52 pm
Location: Arizona
Contact:

Re: XGATE PIT based bit bang fuel injection

Post by SleepyKeys »

Everything is moving along decently except one weird issue. If I write the same value over and over to portB I get different LEDs lit up. For example.
STB R6, R4, #ZERO_OFFSET ;bang register with new value
; STB R6, R4, #ZERO_OFFSET ;bang register with new value
; STB R6, R4, #ZERO_OFFSET ;bang register with new value
; STB R6, R4, #ZERO_OFFSET ;bang register with new value
brk

The first time I will see the contents of R6 on portB, register R4 contains the address of portB. But if I issue that statement multiple times I get different results, anyone have a clue as to whats going on? I used CW to disassemble my code and its verbatim what I have in my src.
You snooze, you lose!
Post Reply