Mierzenie obrotów silnika samochodowego - analiza

Hej.

Kolejnym moim wyzwaniem jest budowa obrotościomierza cyfrowego do samochodu na '51. Chciałbym pod Waszą ocenę poddać moje rozumowanie.

Impulsy będę zliczał z cewki zapłonowej, gdzie pojwiają mi się zera. Pomijam kwestię uformowania inpulsów do TTLa oraz fakt, że wynik muszę dzielić przez

4 - ilość cylindrów.

Impulsy chcę podać na wejście przerwania INT0.

Teraz troszkę o czasie.

Zakres teoretyczny dla urządzenia pracy silnika określam na:

422 obr/min - 9000 obr/min

Chcę policzyć impulsy w danym określonym czasie. Mój procek ma przyłożony kwarc 11059200 Hz więc maksymalna częstotliwość pracy układu czasowego jako

16-to bitowego licznika impulsów wynosi 11059200 Hz / 24 = 460800 Hz (z dokumentacji). To daje czas trwania okresu rzędu: 0,00000217 sekundy.

Licznik ma pracować w trybie 16to bitowym więc 0,00000217 sekundy x 65536 (do momentu zgłoszenia przerwania z licznika licząc od zera) = 0,142 sekundy.

Czyli 142 ms to minimalny okres dla uchwycenia choćby 1 impulsu, czyli wyznacza mi minimalne obroty, jakie jestem w stanie uchwycić.

Stąd mam:

1 / (0,142) x 60 = 422 obr/min (jak wyżej).

Co do logiki działania:

- program ustawia liczniki T0 i T1 na zero przy starcie

- czeka na zgłoszenie przerwania opadjącym zboczem z INT0

- w momencie przerwania z INT0, blokuje to przerwanie i uruchamia 16bitowy licznik czasu T1 popychany wewnętrznym oscylatorem.

- jednocześnie poprzez zworę między INT0 a T0 , licznik T0 zlicza kolejne impulsy

- gdy T1 dojdzie do przepełnienia (65536) generuje przerwanie, które zatrzymuje zliczania, obrabia wynik dla programu głównego, zeruje liczniki i włącza przerwanie od INT0.

Wybaczcie, że może wyważam otwarte drzwi, ale zależy mi na zrozumieniu zagadnienia, a po przekopaniu Google i kilku art. EP miałem kilka pomysłów zamiast rozwiązania.

Za uwagi i sugestie z góry serdeczne THX. D.

Reply to
DEXTER
Loading thread data ...

Użytkownik "DEXTER" snipped-for-privacy@home.pl napisał w wiadomości news: snipped-for-privacy@news.home.net.pl...

Przez 4? IMHO jezeli silnik 4-suwowy to 1 iskra na 2 obroty walu ... No chyba, ze cewka daje napiecie na swiece w kazdym obrocie walu...

11059200 / 24? Hmmm zawsze myslalem, ze cykl rozkazowy trwa 12 taktow zegara a nie 24. No ale skoro tak masz w dokumentacji...

Sam pomiar to w sumie zalezy od czasu odswiezania - czyli jak czesto chcesz odswizac wynik. Mozna albo liczyc ilosc impulsow w czasie - ale tu zeby wynik byl w miare dokladny mui tych impulsow troche nalapac, a wiec odswiezanie moze byc slabe... Mozna tez liczyc czas jaki uplywa miedzy 2 kolejnymi iskrami ale tu trza dokladny wzorzec czasu i wysoka (w miare) czestotliwosc zegara procka (metoda lepsza do pomiaru niskich wartosci rpm).

Pozdrawiam, Bartek

Reply to
Bartek

Iskry idą jednocześnie na 2 cylindry więc jest impuls na obrót.

PC

Reply to
PC

ja zrobilem sobie obrotomierz tak że zliczał czas między opadającymi zboczami zewnetrznego przerwania i wystarczy do tego jeden licznik z przerwaniem.

1.zbocze opadające 2.start licznika co np 100us i zliczanie programowe przerwan od T0.
  1. kolejne zbocze opadające i stop zliczania od T0
  2. przeliczenie i wywalenie na wyświetlacz.
  3. go to 1.

Pozdrawiam Janusz Brela

Reply to
Janusz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.