Skocz do zawartości

Problem z podłączeniem uC do PC


flex

Pomocna odpowiedź

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.

  • Lubię! 1
Link do komentarza
Share on other sites

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).

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

Link do komentarza
Share on other sites

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...

Link do komentarza
Share on other sites

@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... 😉
Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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"?

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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. 😉

Link do komentarza
Share on other sites

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ż 😉

Link do komentarza
Share on other sites

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??

Link do komentarza
Share on other sites

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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.