____ / ___| | | _ | |_| | \____|
_______ ( ___ ) | ( ) | | | | | | | | | | | /\| | | (_\ \ | (____\/_)
______ |___ / / / / / / /__ /_____|
### #### ## ## ## ## ## ## ###### ## #####
#### ## ## ## ## ## ## ####
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: '''Mazda Miata trigger''' '''Background''' The Mazda Miata is one of the most popular spec race cars in use in Sweden. One very successful combination is to put the 99-01 NB engine in the early 90's cars. The leading race car drivers here in Sweden wish to run with the stock trigger as they want the option to run the car on the stock engine management system if there is a problem. I am developing a plug and play harness for these cars and I would like us to look at the trigger to see if we can make this work reliably. '''Trigger system''' The crank and cam sensors are hall triggers on the 99-01 Miata NB engine. The teeth on the crank look like they are made for a VR trigger but it really is a Hall trigger. This is what I found when scoping the car. This should be sufficient for implementing the trigger. It could be a degree or two off here and there as it was taken with a scope on an idling car. As the crank trigger pattern is not symetric it's probably simplest to decode to a 4+1 trigger by counting and ignoring teeth. Possible pseudo code for the input filter: <code> Primtrig / Crank interrupt routine: if( secondarytriggercount ){ if( secondarytriggercount > 1 ){ if (primarytriggercount == 0){ initial sync found ...} primarytriggercount = 1; // tooth_wheel = .. } secondarytriggercount = 0;// Reset every crank pulse. } if (primarytriggercount == 0) return; // not in sync yet if( (primarytriggercount++) & 1 ){ // return if it was odd return(); // Return if it's the first tooth after cam sync () } //tooth at 50 deg found if this point is reached. primarytriggermagic(); ---- sectrig / cam interrupt routine: if (secondarytriggercount++ == 0) return(); // ignore single cam pulse // dual teeth cam sync pulse found if this point is reached. secondarytriggermagic(); </code> http://www.vems.hu/files/MembersPage/JorgenKarlsson/MiataNB/Miata99.png ---- '''They are not 90 degree apart, they are unsymetric. at something like 80-100-80-100 degrees.''' '''I have trigger log of this. Is is correct. 1 singel then 180 deggre dual puls.''' '''I removed 2 teeth, and got 2 x 180degree teeth and ran waste. Starts every other time.''' '''Now i need Cam sync. /Thorbjörn ''' Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.