Bobby Styczeń 29, 2012 Udostępnij Styczeń 29, 2012 dondu, z aref chodzi mi o to, że nie zawsze mamy go spinać do gnd przez C - wewętrzne napięcie odniesienia ma zwykle mniej niż 5V, często nie wystarcza, załóżmy zatem, że wewnętrznie ustalilibyśmy napięcie odniesienia na avcc - czyli nie ma znaczenia czy podpinamy aref pod avcc czy przez C do masy, bo będzie to i tak dokładnie to samo napięcie, z tymi samymi zakłóceniami, a oszczędzamy miejsce na pcb, często też może to ją uprościć. Ogólnie, chodzi mi o to, żeby nie generalizować, zasilanie nie zawsze podpina się tak samo. piotreks-89, nie chodzi mi o to, żebyś przestał się udzielać, ale pisanie non-stop o dławiku na avcc, gdy nie jest konieczny -tutaj jak widać jeszcze nawet ADC nie poszło w ruch, bo się jeszcze flex z PC nie połączył, więc nie ma znaczenia w rozwiązaniu jego problemu czy na avcc będzie dławik, czy też nie. Ponadto, nie wiemy co to za uC (m8 miała wewnętrznie spięte avcc z vcc na stałe - piszę miała, bo m8a tej wady chyba jest już pozbawiona). Z resztą sam napisałeś, że nie wiemy co flex chce osiągnąć, więc nie możemy mu jednoznacznie doradzić, że powinien dać na avcc dławik, bo może go najzwyczajniej w świecie nie potrzebuje. 1
MirekCz Styczeń 29, 2012 Udostępnij Styczeń 29, 2012 Bobby dobrze, skoro cię to tak denerwuje to ja się mogę przestać udzielać Staram się tylko pomagać, bo sam wiem jakie miałem początki. Owszem tutaj chodzi o filtr LC, który eliminuje zakłócenia na ADC. W tym przypadku może być i zbędny, ale skąd wiesz co kolega chce osiągnąć? Może akurat zależy mu na dokładnych pomiarach?Sprawdzam schematy, bo lubię to robić. Zarazem uważam to za pomoc dla początkujących. Sam nie jestem żadnym ekspertem/profesjonalistą i uważam siebie za początkującego, ale czy to oznacza, że mam nie dzielić się wiedzą? Piotrek, bez nerwów, ale tak jak kolega sugeruje, dokładanie do układu PROGRAMATORA kondensatorów do aref i filtrów na AVCC nie ma sensu. Utrudnia to tylko poprawne zmontowanie układu, bo plączą się dodatkowe elementy, które nic nie wnoszą w działanie programatora. Zresztą ADC akurat w ATMEGA8 jest takie, że równie dobrze można sobie te filtry... Pamiętaj o regule KISS - Keep it simple, stupid! Flex: Tak spojrzałem na zdjęcie i: a) gdzie masz podłączone zew. zasilanie? Bo niezbyt widzę... (chyba, że wchodzi tą wiązką, ale tego już nie widać - zrób zdjęcie wszystkiego) b) Masz dosyć długie przewody. Pamiętaj, że przewody od LPT do układu programowanego powinny być krótkie (do 0,5m działa bez problemu, dalej już będzie coraz gorzej i powyżej 1m może zupełnie nie działać - zależy od przewodu) c) Jak masz długie kable zasilające to warto dodać 100nF pomiędzy VCC a GND (ceramiczny).
dondu Styczeń 29, 2012 Udostępnij Styczeń 29, 2012 Ogólnie, chodzi mi o to, żeby nie generalizować, zasilanie nie zawsze podpina się tak samo. Całkowicie się z tym zgadzam, dlatego na blogu dokładnie rozpisałem co kiedy i jak warto zastosować: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html dondu, z aref chodzi mi o to, że nie zawsze mamy go spinać do gnd przez C - wewętrzne napięcie odniesienia ma zwykle mniej niż 5V, często nie wystarcza, załóżmy zatem, że wewnętrznie ustalilibyśmy napięcie odniesienia na avcc - czyli nie ma znaczenia czy podpinamy aref pod avcc czy przez C do masy, bo będzie to i tak dokładnie to samo napięcie, z tymi samymi zakłóceniami, a oszczędzamy miejsce na pcb, często też może to ją uprościć. Miejsce na jeden malutki kondensator zawsze się znajdzie - no chyba, że to microsumo albo jeszcze mniej Piszesz o przypadku wykorzystania możliwości połączenia AREF za pomocą wewnętrznego miltipleksera do AVCC. Niestety sam pokazałeś dlaczego ten kondensator jest właśnie potrzebny. Jest on niezbędny, ponieważ jak słusznie zauważyłeś, zakłócenia będą się przenosić z AVCC na pin AREF (pin napięcia referencyjnego), a to bardzo źle wpływa na dokładność przetwornika ADC - to wręcz gardłowa sprawa. Dlatego właśnie Atmel w datasheetach bardzo jasno określił, że kondensator ten jest niezbędny - szczegóły w tabeli nr 74 w linku powyżej. Tutaj należy wyjaśnić dodatkowo, że wewnętrzny miltiplekser, to nie jest przełącznik idealny i ma swoją impedancję, pojemności, itp. Dlatego właśnie dodanie kondensatora na AREF eliminuje sporą część zakłóceń pochodzących z AVCC pomimo, że patrząc na rysunek w datasheet wydaje się, że tak nie powinno być. Piotrek, bez nerwów, ale tak jak kolega sugeruje, dokładanie do układu PROGRAMATORA kondensatorów do aref i filtrów na AVCC nie ma sensu. Utrudnia to tylko poprawne zmontowanie układu, bo plączą się dodatkowe elementy, które nic nie wnoszą w działanie programatora. Generalnie tak, jednak wpięcie dodatkowo 3 kondensatorów w płytkę stykową nie sprawia chyba wielkiego kłopotu (dławik sobie podarujmy)? Zresztą ADC akurat w ATMEGA8 jest takie, że równie dobrze można sobie te filtry... Mit spowodowany lekceważeniem zasad projektowania schematu, PCB i sposobu programowania mikrokontrolera. Atmega8 ma bardzo dobry ADC i można na nim bez problemu osiągać 10-bitową rozdzielczość i stabilne pomiary do 10 bitu. Warunek jest jeden - nie lekceważyć zaleceń producenta - i o tym także w linku powyżej. Podsumowując: KOMPROMIS - elektronika to sztuka kompromisów więc nie zawsze trzeba iść na maksa, można sobie pozwalać na odstępstwa, byle czynić to świadomie, znając tego skutki. Ale z drugiej strony doświadczony elektronik wie na jakie kompromisy może iść, a nowicjusz nie. Dlatego moim zdaniem lepiej doradzać im poprawne rozwiązania niż kompromisy, bo później nie wiedzą, dlaczego poprzedni projekt działał, a inny już nie.
KD93 Styczeń 29, 2012 Udostępnij Styczeń 29, 2012 Przepraszam, ale chyba nastąpił jakiś bug, bo pytanie jest: Witam jestem początkujący i mam problem: zrobiłemprogramator podłączyłem piny z programatora przez płytkę stykową do procesora, wszystko sprawdziłem 10 x ale w bascomie ciągle wyskakuje komunikat: Could not identifi chip witch ID:00000 Co może być nie tak?? Odpowiedzi na to pytanie szukałem ale nie znalazłem. Z góry dzięki za odpowiedzi. A od kilku postów toczy się dyskusja odnośnie podłączania ADC. Ja napisze tak: powinno się dać zaprogramować korzystając z kilku połączeń: -podłączone zasilanie do procesora,-podłączone zasilanie programatora (LPT) pod to samo zasilanie, co procesora,-podłączenie pinów MOSI, MISO, SCK, RESET w odpowiednie miejsca. Nie mam zatem pojęcia, po co ta plątanina przewodów, bo w przypadku programatora Simlpe powinno wystarczyć ich 8: 2 zasilania i 6 z programatora. Jeśli nie działa, to sprawdziłbym w takiej kolejności: -poprawne podłączenie przewodów do wtyczki (może przylutowałeś w odbiciu lustrzanym? Ja tak zrobiłem w pierwszym programatorze),-poprawne podłączenie przewodów programatora do procesora,-czy na procesorze i programatorze jest odpowiednie napięcie,-czy w programie ustawiony jest dobry programator. Polecam złożenie programatora STK200 z jakiegoś gotowca, najlepiej ze złączem LPT i gniazdkiem KANDA wlutowanym w płytkę, nie ma problemu z urywającymi się przewodami, mam taki programator od kilku lat i służy mi bardzo dobrze, pomimo że korzystam teraz częściej z STK500v2, to czasem sięgam po STK200.
xArcus Styczeń 29, 2012 Udostępnij Styczeń 29, 2012 Jeśli występuje zawsze ten sam błąd z ID:00000 to jest to prawie na pewno zwarcie jednej z programowanych linii do masy. Sprawdź jeszcze kilka razy połączenia, nie na oko a miernikiem. Jeśli zasilasz uC z portu USB to spróbuj zmienić zasilanie na jakieś zewnętrzne. I jeszcze takie info - otóż ten programator - gdzie pin 6 a nie 5 złącza LPT to SCK zostaje przez BASCOM-AVR rozpoznany nie jako Sample a jako STK200/STK300 Programmer. Spróbuj użyć programu PonyProg2000, on jakoś bardziej lubi programatory na LPT. Ja wbrew opiniom innych użytkowników polecam Ci podpięcie uC z jak najmniejszą ilością komponentów (tak jak podpinasz), gdyż podpinając wiele elementów zwłaszcza na płytce stykowej łatwo o przeoczenie czegoś. Z twojego połączenia nie wiele widać, ale na pierwszy rzut oka jest poprawnie. I czy mi się wydaje czy ty zasilasz ponownie kabel z programatora napięciem z kondensatora ? (biały przewód) Tutaj masz kilka zasad co do prowadzenia przewodów na płytce stykowej Pozdrawiam.
MirekCz Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 Ogólnie, chodzi mi o to, żeby nie generalizować, zasilanie nie zawsze podpina się tak samo. Całkowicie się z tym zgadzam, dlatego na blogu dokładnie rozpisałem co kiedy i jak warto zastosować: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html ... Dondu, a czytasz czasami tego swojego bloga? Generalnie masz fajne opisy, ale sam się do nich nie stosujesz. W pkt. 1.2.1 sam piszesz, że jak się ADC nie używa to można pin AREF pominąć i tylko stosować kondensatory filtrujące na zasilaniu. Dlaczego więc tutaj ciśniesz tezę, że najlepiej wszystko podłączyć tak jakby nam zależało na dokładności pomiarów analogowych? PS. Jak uzyskujesz stabilne wyniki 10bitowe z ATMEGA8 to ja chce tą płytkę Jak dookoła działa wiele innych komponentów to uzyskanie takiego wyniku jest mało realne ze względu na połączenie VCC i AVCC małą rezystancją. Przypadki laboratoryjne typu nie posiadanie żadnych układów dookoła i wyłączenie procesora na czas pomiaru ADC pomijam, bo są mało życiowe. PPS. Może tą część o ADC warto by przenieść do innego tematu...
dondu Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 @MirekCz - odnoszę wrażenie, że zbyt szybko przeczytałeś mój poprzedni post Dondu, a czytasz czasami tego swojego bloga? Czytam gdy piszę, później już nie No chyba, że ktoś wskaże jakąś nieścisłość lub niedopowiedzenie - taki feedback jest bardzo potrzebny i cieszę się, że jest. Generalnie masz fajne opisy, ale sam się do nich nie stosujesz. W pkt. 1.2.1 sam piszesz, że jak się ADC nie używa to można pin AREF pominąć i tylko stosować kondensatory filtrujące na zasilaniu. Dlaczego więc tutaj ciśniesz tezę, że najlepiej wszystko podłączyć tak jakby nam zależało na dokładności pomiarów analogowych? Pełna nazwa punktu: 1.2.1 Gdy nie wykorzystujesz ADC czyli przypadek autora tematu. Oj, toż przecież w poście powyżej napisałem, że się zgadzam z tym, że nie zawsze trzeba stosować najlepsze z możliwych rozwiązań i że kompromisy są wskazane. Dlaczego więc tutaj ciśniesz tezę, że najlepiej wszystko podłączyć tak jakby nam zależało na dokładności pomiarów analogowych? Absolutnie nie robię tego. Wręcz przeciwnie potwierdzam Wasze (Twoje i Bobby) zdanie, że nie zawsze trzeba iść najlepszą możliwą drogą, w przypadku gdy autor tematu chce na razie tylko zaprogramować układ. Ale jednocześnie dodałem, że: Generalnie tak, jednak wpięcie dodatkowo 3 kondensatorów w płytkę stykową nie sprawia chyba wielkiego kłopotu (dławik sobie podarujmy)? ... Podsumowując: KOMPROMIS - elektronika to sztuka kompromisów więc nie zawsze trzeba iść na maksa, można sobie pozwalać na odstępstwa, byle czynić to świadomie, znając tego skutki. Ale z drugiej strony doświadczony elektronik wie na jakie kompromisy może iść, a nowicjusz nie. Dlatego moim zdaniem lepiej doradzać im poprawne rozwiązania niż kompromisy, bo później nie wiedzą, dlaczego poprzedni projekt działał, a inny już nie. bo tak uważam i wytłumaczyłem dlaczego. -------------------------------------------- PS. Jak uzyskujesz stabilne wyniki 10bitowe z ATMEGA8 to ja chce tą płytkę Jak dookoła działa wiele innych komponentów to uzyskanie takiego wyniku jest mało realne ze względu na połączenie VCC i AVCC małą rezystancją. Przypadki laboratoryjne typu nie posiadanie żadnych układów dookoła i wyłączenie procesora na czas pomiaru ADC pomijam, bo są mało życiowe. Stosując wszystkie możliwe techniki z datasheet, które opisałem także w artykule z linku powyżej, czyli: - filtrowanie zasilania,- zewnętrzne źródło napięcia referencyjnego (choć i bez niego można osiągać bardzo dobre rezultaty),- dobór częstotliwości przetwornika ADC,- usypianie mikrokontrolera na czas pomiaru,- sposób wykorzystania sąsiednich pinów,- zaprogramowanie niewykorzystanych pinów,- projekt PCB. Są to zalecenia producenta i gdy się je spełni przetwornik działa rewelacyjnie. Do tego dochodzi jeszcze ekranowanie w trudnym środowisku - choć nigdy nie miałem takiej potrzeby. Ale to powyżej to w większości eliminacja skutków, a do tego dochodzi jeszcze eliminacja przyczyn, czyli eliminowanie zakłóceń na elementach je generujących. W szczególności elementów indukcyjnych - silniki, przekaźniki, głośniki, itp. Przydaje się także własny spryt, polegający na dokonywaniu pomiarów w trakcie gdy urządzenie generuje najmniej zakłóceń. Czasami są takie możliwości, choć w robotach pewnie to się nie zdarza, bo tutaj silniki pracują prawie non stop i ze zmiennym w pełnym zakresie wypełnieniem PWM. Tutaj przydaje się doświadczenie, które każdy może nabyć w zakresie pisania programów z maksymalnym możliwym wykorzystaniem przerwań, dążąc jednocześnie do ciągłego usypiania mikrokontrolera w celu minimalizowania zużycia energii z baterii - to daje tak duże doświadczenie, że napisanie później programu, który jest nieco bardziej skomplikowany, ale wyciska z mikrokontrolera jego maksymalne parametry, jest o wiele łatwiejsze. Zachęcam do takiego podejścia - droga trudniejsza, ale naprawdę warto. Innymi słowy, po żadnym urządzeniu nie można spodziewać się prawidłowego działania, jeżeli nie spełnia się wymogów danego urządzenia niezależnie, czy jest to samochód, czy mikrokontroler. A czy usypianie jest mało życiowe - fakt czasami jest to gardłowa sprawa i niemożliwa do zaakceptowania. Ale z drugiej strony, nie zawsze potrzebna jest 10 bitowa rozdzielczość, stąd nie zawsze trzeba być idealnym - czyli moje ulubione słowo KOMPROMIS. W końcu kiedyś czołgi musiały się zatrzymać, by celnie strzelić. Jedynie odniosłem się do stwierdzenia z którym się nie zgadzam: Zresztą ADC akurat w ATMEGA8 jest takie, że równie dobrze można sobie te filtry...
MirekCz Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 Dondu, ja Ciebie nie pytałem o porady jak to zrobić, tylko o konkretną, działającą płytkę gdzie masz stabilne 10 bitów jak dookoła dzieją się inne rzeczy. Znam teorię i znam praktykę, bo z tuzin moich płytek z różnymi Atmelami jest w komercyjnej sprzedaży + wykonałem kilka tuzinów różnych prototypów i wiem jak to wygląda. Na papierze 10 bitów wygląda dumnie, ale jak wsadzisz to do jakiegokolwiek rozsądnego środowiska to jest to tylko ładna liczba.
dondu Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 Na papierze 10 bitów wygląda dumnie, ale jak wsadzisz to do jakiegokolwiek rozsądnego środowiska to jest to tylko ładna liczba. Co rozumiesz przez "jakiekolowiek rozsądne środowisko"?
MirekCz Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 Dajmy na to masz jakiś pomiar sygnału analogowego idący na wzm.op., potem procka, do tego sterujesz PWM kilkoma ledami i poprzez uart wymieniasz cały czas dane z PC. W sumie proste urządzenie pomiarowe.
flex Styczeń 30, 2012 Autor tematu Udostępnij Styczeń 30, 2012 Przepraszam za to zdjęcie ale nie chciało się dodać na forum ponieważ było za duże.
bartek1333 Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 Przepraszam za to zdjęcie ale nie chciało się dodać na forum ponieważ wyło za duże. Wtedy możesz za pomocą np. programu IrfanView w łatwy sposób zmniejszyć owo zdjęcie.
flex Styczeń 30, 2012 Autor tematu Udostępnij Styczeń 30, 2012 Ale chciałem dać w dobrej rozdzielczości.
piotreks-89 Styczeń 30, 2012 Udostępnij Styczeń 30, 2012 Programator Simple nie wymaga jakiegokolwiek zasilania oprócz masy. Nie wiem dlaczego tak twierdzisz KD93, ale wystarczy 5 kabli wychodzących z programatora (MISO, MOSI, RST, SCK, GND) Również zalecam zbudowanie programatora STK200/300, ponieważ port LPT będzie zabezpieczony i uC również
flex Styczeń 30, 2012 Autor tematu Udostępnij Styczeń 30, 2012 a) gdzie masz podłączone zew. zasilanie? Bo niezbyt widzę... (chyba, że wchodzi tą wiązką, ale tego już nie widać - zrób zdjęcie wszystkiego) MirekCz zasilanie jest w wiązce b) Masz dosyć długie przewody. Pamiętaj, że przewody od LPT do układu programowanego powinny być krótkie (do 0,5m działa bez problemu, dalej już będzie coraz gorzej i powyżej 1m może zupełnie nie działać - zależy od przewodu) Od LPT do płytki jest poniżej 30 cm, te kable na plytce są trochę długie ale takie mi się zrobiły (skrócę je) I czy mi się wydaje czy ty zasilasz ponownie kabel z programatora napięciem z kondensatora ? (biały przewód) To jest tylko kondensator tak podpięty w innym miejscu i przeniesiony kablami Również zalecam zbudowanie programatora STK200/300, ponieważ port LPT będzie zabezpieczony i uC również Chciałem tylko zacząć na pewno taki zrobię tylko nie jako pierwszy Czekam na dalszą pomoc. Zdjęcie programatora wstawię później. [ Dodano: 30-01-2012, 19:24 ] Na płytce ma być tak : czy tak: ten rezystor jest z zasilania + do RESET a i jeszcze programator: [ Dodano: 31-01-2012, 12:05 ] Można prosić o pomoc??
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »