Układ na ATmega - proszę o przypo

Na studiach bawiłem się troszkę budową układów opartych o mikrokontrolery ATmega (dokładnie ATmega8), teraz chciałbym sobie co nieco przypomnieć. Proszę więc o małe wsparcie :)

Chcę zbudować sobie taki trochę bardziej zaawansowany komputerek samochodowy który będzie mierzył prędkość, obroty silnika, zużycie paliwa, mierzył przeciążenia (jakieś akcelerometry mi się walają po szufladach), szacował aktualną moc i sprawność silnika, mierzył temperaturę, i co jeszcze mi po drodze przyjdzie do głowy.

Dotychczasowe układy wykonywałem w technice trawienia płytek, ze ścieżkami rysowanymi pisaczkiem i układem w obudowie DIP (powinno wystarczyć do takiego zastosowania), a najmocniejszy w DIP znalazłem ATmega32. Chyba powinien mi wystarczyć.

Teraz kilka pytań:

Jak to zasilić? W samochodzie mam dostęp do 12V, jak najlepiej z tego zrobić 5V, pamiętając że fajnie będzie jak wszystkie ADC nie będą mi odbierać cewki zapłonowej i szumu alternatora.

I jeszcze mam pytanie dotyczące podłączania 2 urządzeń odbiorczych do jednego czujnika. Jeżeli chciałbym monitorować moim układem jakiś czujnik w silniku, to jak podłączyć mój układ żeby nie zakłócić oryginalnego odczytu? Rezystancja wejściowa ADC w ATmega to 100Mohm, jeżeli oryginalny układ ma taki sam ADC, to podłączając oba do jednego czujnika zrobi mi się niekontrolowany dzielnik napięcia i odczyt będzie nieprawidłowy. Dobrze myślę? Jak tego uniknąć?

Wydaje mi się że w samochodzie nie powinno używać się odbiorników o tak dużym oporze wewnętrznym. Znikome prądy płynące od czujnika byłyby podatne na zakłócenia, więc może układy odbiorcze mają jakieś równolegle wpięte rezystory tak żeby zmniejszyć opór wewnętrzny i można takie

100Mohm podłączyć bez ryzyka?

Czy te 32kB wystarczy? Chcę programować w C, kompilować pod GCC. Pamiętam że kompilator generował niewielkie binarki, ale nie bardzo czuję rozmiar programu który uda mi się tam wepchnąć. Ma ktoś pomysł na obrazowe przedstawienie co daje się upchnąć w taką ilość pamięci przy użyciu gcc?

Jak to się programowało? Pamiętam że korzystałem z interfejsu ISP, kabla podłączonego do LPT komputera i oprogramowania które wszystkim zarządzało softwareowo. I pamiętam że było to synonimem lipy i prowizorki. Czy to nadal ma rację bytu (np. chodzi mi o dostęp na niskim poziomie do LPT w nowych komputerach, pod Windowsem XP, ewentualnie Linuxem)? Czy może lepiej zainwestować w programator? W czym będzie lepszy od interfejsu ISP? Dochodzi tu jeszcze taka rzecz, że urządzenie ma być w samochodzie zamontowane stacjonarnie. Uaktualnienie oprogramowania polegać więc będzie na wyciągnięciu uProcka i zaniesieniu go do domu.

Reply to
Tomasz Pyra
Loading thread data ...

Użytkownik Tomasz Pyra napisał: Witam

W tych 32kB można upchnąć naprawdę sporo :-)

7805 plus ewentualny dławik na zasilaniu powinien wystarczyć. W ostateczności wsadzić całość w puszkę ekranującą. Dużo będzie zależało od prawidłowo zaprojektowanej płytki.

To będzie zależało od impedancji wyjściowej czujnika. Jeśli będzie ona wynosiła np 1kom, to w pierwszym wypadku dotaniesz dzielnik 1/1.000001 a po podłączeniu ATmegi będzie to dzielnik 1/1.000002 czyli różnicę można sobie darować choćby ze względu na 10-bitową rozdzielczość przetwornika ADC w ATmedze i niezbyt dokładne wewnętrzne źródło referencyjne. Nie sądzę aby miało to również wpływ na oryginalny układ współpracujący z takim czujnikiem. No chyba, że czujnik ma impedancję

1Moma... to wtedy może coś się podziać, ale nie sądzę aby w samochodzie występowały takie czujniki.

j.w.

Tak jak wspominałem można w tym scalaczku naprawdę sporo upchnąć.

ISP działa bez problemu pod WinXP (np avrdude z pakietu WinAVR).

Można wyprowadzić złącze ISP lub napisać bootloader komunikujący się ze światem zewnętrznym za pośrednictwem dowolnego medium (kabelek RS232, podczerwień, radiówka itd. itp.)

Pozdrawiam Grzegorz

Reply to
Grzegorz Kurczyk

Grzegorz Kurczyk pisze:

Jeszcze jedna rzecz - bo planuje układ podtrzymania zasilania na czas rozruchu silnika w samochodzie (napięcie akumulatora wtedy mocno spada). Chodzi o to żeby układ na podstawie spadku napięcia podczas rozruchu oceniał kondycję akumulatora w samochodzie i po wyłączeniu zasilania żeby układ zgrał nieulotne dane do EPROM-u.

Czy wystarczy wstawić elektrolityczny kondensator po stronie 5V tego

7805? Czy jeszcze jakoś dodatkowo muszę zabezpieczyć się przed ucieczką prądu przez ten 7805 do instalacji samochodu? Tak patrząc na specyfikację 7805 nie wydaje mi się żeby to było konieczne, ale pewności nie mam.

A co rozumiesz pod prawidłowym zaprojektowaniem płytki? Na co zwrócić uwagę? Kiedyś budowałem układ pomiarowy w którym musiałem sobie radzić z szumami (układ działał w bezpośrednim sąsiedztwie wielkich silników elektrycznych), ale tam było odwrotnie - filtrowałem sygnał z analogowej sondy, a zasilanie miałem z własnej baterii.

No pamiętam że całkiem sporo upchnąłem w 8kb, ale pamiętam też, że zaczęło mi w jakimś momencie tej pamięci brakować, a program jednak był wtedy mniej skomplikowany.

No nad tym będę musiał pomyśleć. Fajnie by było gdybym mógł przynosić do samochodu program wgrany do telefonu komórkowego i robić upgrade firmware-u za pomocą IrDA bez wyciągania czegokolwiek. Bo wyprowadzenie ISP mnie nie urządza - samochód na parkingu, komputer w domu, a laptopa nie mam.

Są może gdzieś schematy gotowych rozwiązań zdalnego programowania?

Reply to
Tomasz Pyra

Tomasz Pyra snipped-for-privacy@spam.spam.spam> napisał(a):

Jest jeszcze w DIP-ie ATMega644 , a w tę można już naprawdę sporo upchać ;)

Piotrek

Reply to
Piotrek Sz.

Piotrek Sz. pisze:

Ooo... Super. Przy tak niewielkiej różnicy w cenie i przy jednym egzemplarzu nie warto się bawić w gorsze procki, a dodatkowa pamięć zawsze się może przydać.

Zwłaszcza z powodu, że nie mam nawet oscyloskopu i to urządzenie będzie musiało też służyć do "rozgryzania" całego systemu, bo dokumentacja do elektroniki samochodowej jest taka sobie, więc w fazie eksperymentalnej będę tam nagrywał różnie niedocelowe programy do zbierania czystych danych.

Reply to
Tomasz Pyra

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.