Forum - MCS Electronics

 

FAQFAQ SearchSearch RegisterRegister Log inLog in

ZES - injection and ignition control unit

 
Post new topic   Reply to topic    www.mcselec.com Forum Index -> BASCOM Project Blog
View previous topic :: View next topic  
Author Message
kartmanne

Bascom Member



Joined: 02 Mar 2018
Posts: 28

germany.gif
PostPosted: Fri Mar 02, 2018 10:19 pm    Post subject: ZES - injection and ignition control unit Reply with quote

HI,
I understand, here I may post information about a BASCOM project.

As some friends of mine are professional software developers for micros, they proposed to me to develop the firmware of my small project using C. The reason was in general, that my software may handle a lot of interrupts, and C shall be the most efficient language for such a project, because the compilers can be adjusted to produce timing optimized code.
As I am a 50+ guy, I learned basic during my university time. So I wanted to use a kind of basic. BASCOM was my choice. And now, my project is in a adult stadium. Means, me and some friends do not find any bugs, now.

My project is a injection and ignition control unit für 2stroke-engines, up to 3 cylinders. I use a ATXMEGA128A1@32Mhz. The engine can be controlled up to 16.000rpm with up to 20 teeth on the trigger wheel. The firmware handles 9 interrupts, 8 timers, UART and watchdog. And the accuracy is by 1° per rev @16.000rpm.

I didn't use any integrated ASM code, just basic code (except a modified boot loader, based on the MSC boot loader)

First test object is a 4cylinder-4stroke motor bike engine (mounted in a go kart). It was controlled before by a trijket unit.

See the small circuit board in he middle of the go kart:


So, I think, BASCOM ist efficient enough Smile Great job MCS!

If you want to read more: http://zes.kart-mal-anders.de

CU
Manfred[/url]
Back to top
View user's profile Visit poster's website
albertsm

Administrator



Joined: 09 Apr 2004
Posts: 5922
Location: Holland

blank.gif
PostPosted: Tue Mar 06, 2018 1:29 pm    Post subject: Reply with quote

hi Manfred,

welcome to the forum. the project blog can be used to log on the forum about the progress of a project. but it can also be done when the project is ready. or you can use it as a show case. as long it is in English it is ok.
i read your web pages and i see you and your friends put a lot of time in this device. i am glad when my car starts so i admire the people with skills for these kind of projects. i like to watch the tv shows where they fix, mod and make cars. wish you great success with the continuation of your project !

_________________
Mark
Back to top
View user's profile Visit poster's website
kartmanne

Bascom Member



Joined: 02 Mar 2018
Posts: 28

germany.gif
PostPosted: Wed Mar 07, 2018 8:44 pm    Post subject: Reply with quote

HI Mark,

nice to read, that I'm not on the wrong way with my project post. The link links to the only one german page - sorry. If there are questions - I'll try to answer here in english as good as I can do that using my bad English Smile

The first firmware system was designed to trigger only one impulse per rev and a cylinder per each 120°. Running good... in my lab Smile My friends told me, this will hit about 10% of all 2-stroke-engines. And so the system grows up to the current variable system, which additionally can control 4-stroke-engines, too. Additionally I learned that engines accelerate and slow down - within each rev. So I had to find a way to react about that, means I needed more than one impulse per rev, and I have to find a way to prevent double or none ignitions when the trigger-point was near 360°. Each switch (ignition or injector) fires a interrupt. If there is an 3-in-line-engine, 3 interrupts fire a the same time. The atxmega has no round robin for hi or med-interrupts. So I needed a system to prevent missing interrupts.
Positive experience is, that the BASCOM-routines print# and get# placed in the main loop, do not struggle at 56k baud when the system runs at 16000 rpm (remember: 6 interrupts (ignition/injector) and up to 20 interrupts (trigger wheel) per rev, plus a 100kHz routine checking the "degree"-position of the crank shaft)

btw: the most interesting thing was finding a way to reduce space for variables. And there I found that the BASCOM restriction (only one math operation per line) looks more like an advantage. If I put the operations of a complex formula in the "right" sequence, some formulas could be realized with a smaller variable size, and this resulted additionally in faster processing time and smaller code. If I'm wrong please enlight me Smile

_________________
CU
Manfred
Back to top
View user's profile Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    www.mcselec.com Forum Index -> BASCOM Project Blog All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum