Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega8][Raczej C]Projekt płytki, jestem kompletnie zielony

Nathir 05 Paź 2009 00:46 2840 21
  • #1 05 Paź 2009 00:46
    Nathir
    Poziom 14  

    Witam.
    Chcę zaprojektować moją pierwszą płytkę do uC.
    Nastawiłem się na ATmegę8.
    Umiem programować na PC w C++, po przeczytaniu Symfonii Jerzego Grębosza.
    Chciałem zająć się kontrolerami 2 miesiące temu, dowiedziałem się, że C++ się nie nadaje- duże zniechęcenie...
    Przeczytałem jednak, że język C jest dobry, a że są dość podobne....
    Dostałem 'zamówienie' u wójka, który chce mieć taki mały komputerek na pokładzie ciągnika :D
    Nie jest to ciągnik stary(3,4 miesiące, z unii)... W pełni elektryczne sterowanie itp itd
    Chodzi mu konkretnie o maszynkę do liczenia uniesień i opuszczeń ramion tylnych, po X akcjach ma załączyć to i to...
    Pytał się mnie wtedy, a raczej kazał poszukać takiego komputerka...
    Jedyne co wygrzebałem to oryginalny układ Case'a(Ciagnik = Case), za nieco ponad 2000 euro

    Wiadomo, nikt raczej tego nie kupi
    Postanowiłem podjąć wyzwanie, tymbardziej, że jak wyżej wspomniałem chcę pobawić się uC, a to jest świetna okazja...
    Mam 14 lat, nie oczekujcie ode mnei za wiele...
    W szkole elektronika... Mielismy w podstawowce obwody...
    To wszystko...

    Udało na razie zmajstrować mi się takie coś(obrazek w załączniku)




    Adnotacje do rysunku:
    -PortD podłączony jest do diód
    -Rezystory do diód nie są z tej strony, musze je poprawić, wiem...(teraz jest 00:44 godzina..)

    Masa pytań:
    1. Czy dobrze zrozumiałem porty wyjściowe:(przykład będzie opierał się na moim rysunku)
    Jeśli w porcie D0 ustawie DDR = 1(port wy.) i ustawie stan niski, to dioda nr1 nie świeci, stan wysoki, dioda świeci?
    2. Po co zewnętrzny kwarc?
    3. Co to za różnica : kondensator ceramiczny czy ten inny(zapomniałem jaki ...)
    4. Jak działają porty wejścia? Jaki zrobić obwód z przyciskiem, aby po nacisnięciu port odczytał 1 lub 0?
    Na razie wiecej pytan nie pamietam, ale na pewno się jeszcze pojawią....

    Z góry dziękuję za odpowiedzi, liczę, że ten temat pomoże nie tylko mi, ale i innym początkującym, mającym te same problemy....

    @edit
    :!: Zapomniałem schematu wrzucic
    @edit2
    Coś nie moge na elektrode... Potem sie jeszcze pomecze - na razie IS
    [ATmega8][Raczej C]Projekt płytki, jestem kompletnie zielony

    Poprawiłem obrazek, usunąłem załącznik.
    [zumek]

    0 21
  • #2 05 Paź 2009 00:58
    tmf
    Moderator Mikrokontrolery Projektowanie

    C++ na AVR tez dziala, tyle, ze moze nie jest to najlepszy wybor dla poczatkujacych, ale to inny temat. Co do reszty - nie widze tego schematu, wiec nie moge sie ustosunkowac do wszuystkich twoich pytan. Ale ad. 2 - zewnetrzny kwarc jest potrzebny wtedy jesli potrzebujesz stabilna i znana czestotliwosc zegara, np. odmierzasz czas. Jesli np. 8MHz +/- kilka % ci nie przeszkadza to wewnetrzny zegar jest wystarczajacy. Ad. 3 - bez schematu ciezko powiedziec o co chodzi. O kondensatory przy kwarcu? Ad. 4 - Ustawic port jako wejscie (odpowiednio ustawic DDRx i PORTx) i czytac z PINx. Przycisk podlaczyc pomiedzy mase a port, od portu do Vcc dac rezystor podciagajacy - mozna tez zrobic odwrotnie. Wez pod uwage, ze przycisk podczas wciskania i zwalniani drga, generujac przez kilka ms serie impulsow - musisz to uwzglednic w programie, poszukaj czegos co sie nazyba debouncing.

    0
  • #3 05 Paź 2009 07:33
    Nathir
    Poziom 14  

    @up
    Dzieki za odpowiedz...
    Kwarc pewnie dodam, bo uklad ma byc w pelni rozbudowywalny...
    Pytalem czy jest rroznica miedzy kondenstaorami ceramicznymi,a takimi w kostce... Sklep avt pl ma dwa takie rodzaje

    Nadal nie rozumiem tego przycisku wejscia...
    Mialo by to sens jak by bylo tak : na porcie wyjsciowym jest VCC i trzeba podlaczyc do GND zeby odczytal 1...
    Z tego co mowisz udalo mi sie takie cos wysmarowac....
    TO jest dobrze?...
    [ATmega8][Raczej C]Projekt płytki, jestem kompletnie zielony

    Chyba nie...

    Dzieki za odpowiedz
    Pozdrawiam

    0
  • #4 05 Paź 2009 07:35
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Naciskasz przycisk i masz zwarcie. Może warto byłoby poznać jakieś podstawy, poczytać jakieś kursy, przejrzeć jakieś książki?

    4\/3!!

    0
  • #5 05 Paź 2009 07:49
    Nathir
    Poziom 14  

    @up
    No i nie rozumiem

    Albo piszesz, ze tak jak UP jest dobrze, i ze powinno byc zwarcie zeby port cos odczytal

    Albo piszesz, ze jak nacisne przycisk to mam zwarcie i myslisz ze tego nei wiem

    Czlowieku, wytlumacz mi to....
    Tak ciezko? Bedziesz sie nademna znęcać bo ty miales wiecej elektroniki w szkole?

    0
  • #6 05 Paź 2009 08:05
    zdebel
    Poziom 14  

    Człowieku, trochę cierpliwości. Tak jak na schemacie narysowałeś, na wyjściu masz Vcc i kiedy naciśniesz guzik zwierasz Vcc z masą. Żadnego oporu nie ma i popłynie teoretycznie nieskończony prąd co w efekcie spowoduje popsucie się, w najlepszym wypadku, tego wyjścia mikrokontrolera. Tak jak Freddie Ci napisał, jeżeli bardzo Ciebie elektronika interesuje zainwestuj w jakąś książkę do elektrotechniki, na pewno Ci się przyda.

    0
  • #7 05 Paź 2009 08:09
    Nathir
    Poziom 14  

    I teraz patrz co ja mam do wyboru
    -napisac pma jakiemus uzytkownikowi forum, ktory mi odpowie normalnie
    -kupic ksiaze (z 30-50zl) zeby dowiedziec sie jak dziala port wejscia

    ...

    Jak by dokumentacja atmegi byla w j polskim mialbym pewnie mniej problemow...

    Czyli co, wystarczy opornik dac i juz bedize smigac?

    0
  • #8 05 Paź 2009 08:17
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Nathir napisał:
    -napisac pma jakiemus uzytkownikowi forum, ktory mi odpowie normalnie

    Wątpie, mało osób na forum ma ochote dawać darmowe lekcje komuś, kto chce wiedzieć wszystko od razu i bez żadnych podstaw. Nawet jeśli znajdzie się ktoś tak naiwny, to co zrobisz następnym razem - też do niego będziesz pisał o pomoc, czy może w końcu nauczysz się podstaw?

    Cytat:
    -kupic ksiaze (z 30-50zl) zeby dowiedziec sie jak dziala port wejscia

    To straszne.

    Cytat:
    Jak by dokumentacja atmegi byla w j polskim mialbym pewnie mniej problemow...

    Naucz się angielskiego, bez tego i tak dalej nie pójdziesz w elektronice.

    Masz 14 lat i burzysz się, że ktoś nie chce Ci w jednym poście streścić wiedzy o której są pięcioletnie studia, wieluset stronicowe dokumenty, przydługawe książki specjalistyczne. Sorry. Masz czas, zacznij od początku.

    Zupełnie pomijać należy fakt, że odpowiedź na twoje pytania padła już miliony razy, ale ty zamiast poszukać potrzebujesz wersji specjalnie dla ciebie? Poczytaj przyklejone tematy może? Poszukaj jakiegoś kursu w necie? Znajdź jakąś darmową książkę elektroniczną?

    4\/3!!

    0
  • #9 05 Paź 2009 14:24
    Cubaza
    Poziom 14  

    Zgadzam się tutaj z Freddie Chopin. Musisz poczytać o podstawach. Pytanie o przyciski było z miliard razy. Moze nawet więcej. Wystarczy poszukać :) Bez podstaw ani rusz. Dodatkowo angielski bo większość przydatnych materiałów(np. datasheet) jest po angielsku. I jest zdecydowanie lepiej gdy zna się chociaż podstawy tego języka i można wiele wyczytać z tych materiałów.

    Co do Twojego przycisku to powinien być podłączony tak:
    [ATmega8][Raczej C]Projekt płytki, jestem kompletnie zielony
    Zresztą po takim schemacie widzisz, że przycisk działa na zasadzie takiej, że zwierasz do masy w momencie kiedy go naciśniesz.
    Mikrokontroler ATmega8 ma w swoim "wnętrzu" tzw. rezystory podciągające. Podciągają one daną linię portu do stanu wysokiego przez co po naciśnięciu przycisku masz 0. A gdy nie jest naciśnięty to masz 1.
    O ustawieniach portu, jak "włączyć" podciąganie i jak sprawdzić stan portu to poczytaj ;) TMF napisał Ci na jakie pojęcia powinieneś zwrócić uwagę przy tym problemie.

    A co do kondensatorów to obstawiam, że chodzi o zwykłe kondensatory, nie elektrolityczne. Różnią się one po prostu obudowami a nie czymś w środku;) Nie mówimy tutaj o rozróżnieniu na ceramiczne i elektrolityczne kondensatory

    0
  • #10 05 Paź 2009 16:05
    Nathir
    Poziom 14  

    @up
    Dzięki...

    Czyli przy ustawieniu DDR=0(wy.) PORT =1(pull-up) mam na porcie VCC i zeby cos sie zmienilo to musze zamknac obwod(podpiac do masy)

    Takiego zdania oczekiwalem, jednak...

    Tak, wiem, że bez podstaw ameryki nie odkryje, wiem ze to co robie teraz to jest oszukiwanie samego siebie. Robie to wbrew sobie... nie jestem z tego zadowolony

    Jednak naprawde nie mam czasu... Wiem ze jesli chce zaczac sie bawic uC musze znac podstawy, jednak ten projekt to nie zabawa, lecz praktyka.
    Termin waznosci to jeszcze jakies 1,5 miesiaca - nastepni termin przypada za rok, wiec spieszyc sie musze

    Chodzi mi tylko o zaprojektowanie plytki, bo ową wytrawi mi mój kolega
    (no kolega... 50+, elektryk, problem w tym, ze nie zna sie na uC i nie mam z nim konaktu - 12km zeby sie cos spytac.....)

    Zaraz poprzestawiam schemat i wrzuce 'nowy'
    Swoją drogą... żałuję, że zacząłem w ExpressPCB... Tam nie ma nawet LEDów....

    Za 15 min postaram sie wyedytować już ze schematem
    @edit
    Schemat :

    [ATmega8][Raczej C]Projekt płytki, jestem kompletnie zielony

    Czy dobrze rozumiem reset? Działa jak kazdy inny port?
    Na ktoryms schemacie zobaczylem kondensator przy resecie, wiec dalem i tu, czy jest dobry?

    0
  • #11 05 Paź 2009 16:24
    Cubaza
    Poziom 14  

    Nathir napisał:
    Czyli przy ustawieniu DDR=0(wy.) PORT =1(pull-up) mam na porcie VCC i zeby cos sie zmienilo to musze zamknac obwod(podpiac do masy)

    Tak. A stan jaki jest na klawiszu i sprawdzenia czy jest wciśnięty, czy nie, to musisz sprawdzic PIN.

    Poza tym na razie masz klawisz;) A co jeszcze potrzebujesz na tej płytce i w ogóle. Ale powodzenia życzę. Z elektroniką nie miałeś nic wspólnego, z tworzeniem płytek też nie. Ale życzę powodzenia :) Mam nadzieję, że się uda. Będę śledzić Twoje postępy ;)

    0
  • #12 05 Paź 2009 16:57
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Nathir napisał:
    ten projekt to nie zabawa, lecz praktyka.
    Termin waznosci to jeszcze jakies 1,5 miesiaca - nastepni termin przypada za rok, wiec spieszyc sie musze

    Słusznie, to że ciągnik z podłączonym twoim "praktycznym" dziełem kogoś zabije to już detal, bo zapomniałeś o jakiejś błahostce, ludzie na forum nie mówili przecież, że tak jest źle...

    4\/3!!

    0
  • #13 05 Paź 2009 17:05
    Nathir
    Poziom 14  

    Tymczasowy schemat wrzucilem wyzej....
    Razem z pytaniami oczywiscie.. ;d
    @up Freddie
    No dobra nie przesadzaj...
    Słuchaj.. i tak musialbym kupic plytke testowa, tak?
    Moze jest juz 'sprawdzona'...
    Jednak w wieku 14 lat nie jestem w stanie dość szybko nazbierać tyle pieniedzy... bo to prawie 200zł, a przeciez to ma byc prosta plytka, 3,4 przyciski... 5,6 diod... Na koniec tranzystory pod silniczek 12v. Tyle....
    Ale na prawde jest o to o wiele bardziej praktyczne niz wyskakiwanie z traktora za kazdym razem... eh i tak nie zrozumiesz(czyt. za duzo bym musial pisac, nie ma to sensu)

    A skoro nie wierzysz w ten projekt to OK...
    Sam nie jestem pewien czy dojade, ale sprobowac nie zaszkodzi...
    Przynajmniej mnie nie demotywuj, dobra?
    Taka mała prośba....
    Nie chcę się kłócić, nie będę sie wymądrzał, widze, że dla ciebie jestem nikim, ale myśle ze to spojzenie nie jest do konca sluszne...

    0
  • #15 05 Paź 2009 18:58
    Nathir
    Poziom 14  

    Dzięki

    Zaraz poczytam....
    Mógłby mi ktoś powiedzieć co jeszcze muszę niezbędnie zeby projekt ten działał?(aktualny schemat 3-4 posty wyzej)

    0
  • #16 05 Paź 2009 19:41
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nathir - mowiac szczerze to jesli teraz ominiesz podstawy i bedziesz uparcie forsowal swoj projekt to tylko stracisz pieniadze, a to i tak nie zadziala. I nie pisze tego, zeby cie zdolowac, bo zdolowany bedziesz jak wydasz pieniadze, stracisz czas, a na koncu wrzucisz to do kosza. Ad meritum - twoj schemat, ktory trudno nazwac schematem - reset zostaw niepodlaczony, ATMega ma wewnetrzny rezystor podciagajacy i uklad resetu. Na twoim "schemacie" przycisk wisi w powietrzu - nie jest podlaczony do zadnego portu. Koledzy pisali ci, ze mozesz wykorzystac wewnetrzny pull up, tylko w srodowisku z zakloceniami jakim jest traktor wewnetrzny rezystor rzedu 50kOm moze nie wystarczyc, proponuje jednak dac zewnetrzny 4k7. Na twojej plytce kwarc i kondensatory sa za daleko od ATMegi, najpewniej nie wystartuje. Kwarc musi byc jak najblizej stosownych pinow. Podobnie jak kondensator odsprzegajacy 100nF. Gniazdo ISP, ktore masz na plytce tez warto zmienic tak, zeby bylo kompatybilne ze standardowymi programatorami.
    A na koniec - zamiast zaczynac od plytki zacznij od zainstalowania WinAVR i AVR Studio i napisania przynajmniej poczatku programu. W AVR Studio mozesz to potem zasymulowac i przynajmniej bedziesz wiedzial czy w ogole dalej ruszysz.

    0
  • #17 05 Paź 2009 20:03
    janbernat
    Poziom 38  

    45 dnix10h=450h na projekt i testy- powinno wystarczyć.
    A na nauczenie się podstaw działania procesorów reszta czasu.
    Tak się składa że kilkanaście lat byłem rolnikiem i wiem co to znaczy wyskakiwać z ciągnika kilkadziesiąt razy dziennie.
    Chociaż jestem elektronikiem z zawodu.
    A studia trwały 6 lat- a nie 5.
    To teraz pod rozwagę:
    Ciągnik jest nowy- Case.
    Kosztował nieco więcej niż 200zł a nawet niż 2000euro.
    Nawet jak "Ciocia Unia" dopłaciła.
    Jest na gwarancji- jakakolwiek ingerencja w układ sterowania spowoduje utratę gwarancji.
    Podnośnik hydrauliczny trójpunktowy jest sterowany hydraulicznie- ma udźwig kilkunastu ton.
    A silniczki elektryczne to mogą służyć co najwyżej do włączenia jakiejś pompki smarowniczej lub dodatkowego zaworu- a nie do podnośnika.
    Musisz zrobić zewnętrzne czujniki pozycji podnośnika- nie wolno obciążać dodatkowo firmowych.
    Musisz tylko sygnalizować ilość podniesień- nie wolno sygnału sterującego wprowadzać do firmowego układu.
    Musisz nauczyć się specyficznego dialektu C na mikrokontrolery.
    Musisz nauczyć się jak działają rejestry w mikrokontrolerach.
    Musisz nauczyć się projektowania płytek drukowanych- proponuję darmowy Eagle PCB- chociaż Freddie Chopin mnie za to zmiesza z błotem.
    Musisz nauczyć się trochę elektroniki.
    A poza tym masz 14lat- masz na to czas.
    Życzę powodzenia.
    PS.
    Pisze się "wujek"- "wójek" się pisało ze 100lat temu.

    0
  • #18 05 Paź 2009 20:23
    Freddie Chopin
    Specjalista - Mikrokontrolery

    janbernat napisał:
    Musisz nauczyć się projektowania płytek drukowanych- proponuję darmowy Eagle PCB- chociaż Freddie Chopin mnie za to zmiesza z błotem.

    Bynajmniej - zrobiłbym to dopiero wtedy, gdy napisałbyś, że Altium Designer / Protel jest gorszy niż EAGLE <:

    4\/3!!

    0
  • #19 05 Paź 2009 21:08
    janbernat
    Poziom 38  

    Freddie Chopin napisał:

    Bynajmniej - zrobiłbym to dopiero wtedy, gdy napisałbyś, że Altium Designer / Protel jest gorszy niż EAGLE <:

    4\/3!!

    Aż taki kretyn to jeszcze nie jestem.
    Początki starczej demencji to mam pod kontrolą.
    Dzieci (dorosłe) mi mówią- Tata- nic nie pamiętasz...
    Ale w zasadzie to entuzjazm autora tematu budzi mój podziw.
    Nie wie czego jeszcze nie wie.

    0
  • #20 05 Paź 2009 22:18
    Nathir
    Poziom 14  

    Ja wiem ze musze to wszystko umiec...
    Prosze was o pomoc dlatego, ze wlanie tego nie umiem...
    A co do tego ciagnika - to raczej ten kontroler nie ma byc 'do ciagnika' tylko do siewnika... w ciagniku maja byc diody i 2 przyciski... koniec....
    Silniczek ma blokowac/odblokowywac sciezki w siewniku....
    Z resztą na pewno z wUjkiem cos wymyslimy, tak ze mozna bedzie to zdjac w 5 minut... nie takie prowizorki u niego widzialem

    tmf
    "Na twoim "schemacie" przycisk wisi w powietrzu - nie jest podlaczony do zadnego portu."

    4 przyciski są podłączone do portów PortC0 .... PortC3, same przyciski będą poza płytką...

    "Na twojej plytce kwarc i kondensatory sa za daleko od ATMegi, najpewniej nie wystartuje. Kwarc musi byc jak najblizej stosownych pinow. Podobnie jak kondensator odsprzegajacy 100nF."

    Dzięki, zaraz poprawię...

    "Gniazdo ISP, ktore masz na plytce tez warto zmienic tak, zeby bylo kompatybilne ze standardowymi programatorami."

    O to się nie martwie, te pare kabelków mnie nie przestrasza

    Faktycznie, masz rację, ściągnę na jutro ten avr studio, spróbuje cos napisac....


    Widze ze ten temat juz chyba nie pojedzie...
    Fakt - przeliczylem sie...
    Jednak na upartego bede kontynuowal ten projekt, chociazby sam...
    Niby w tym roku na technice mamy miec elektronike, ale widze, jak to bedzie wygladalo...

    Dowiedzialem sie przynajmniej kilku rzeczy...
    dziekiuje

    0
  • #21 06 Paź 2009 19:24
    janbernat
    Poziom 38  

    "Widze ze ten temat juz chyba nie pojedzie..."
    Dlaczego ma nie "pojechać"?
    Jeżeli to do siewnika- to przecież w październiku nic się nie sieje.
    Nawet żyto najwyżej do 15września.
    Do wiosny masz czas.
    Musisz usystematyzować pytania- po co pytałeś o ciągnik jak chodzi o siewnik?
    Przeczytaj tematy informacyjne na górze strony- na początek "jak zintegrować AVRStudio z WINAVR".
    Bo AVRStudio jest środowiskiem do pisania programów w ASM a nie w C.
    Dopiero po zintegrowaniu z WinAvr można pisać w C.
    Zresztą, to wszystko jest opisane w tematach informacyjnych.
    I nie bądź taki "w gorącej wodzie kąpany"- nie zaczyna się projektu od płytki.
    Najpierw od koncepcji- co to ma robić.
    Najlepiej na kartce w punktach.
    Potem w postaci schematu algorytmu-też na kartce.
    Potem program i schemat elektryczny.
    Potem parę razy to samo od początku.
    Aż w końcu coś zaczyna wychodzić.
    Pozdrawiam i życzę powodzenia w nauce.
    P.S.
    Jak wejdziesz w dział "mikrokontrolery ogólne" to wciśnij AVR-tam jest bardziej szczegółowo na górze ze znaczkiem "i".

    0
  • #22 08 Paź 2009 15:28
    MacGyver 7
    Poziom 21  

    Tak jak koledzy piszą wyżej, porywasz się z motyką na słońce.
    Bez nakładów finansowych raczej niczego się nie nauczysz. Kup książkę Baranowskiego "Mikrokontrolery AVR ATmega (albo ATtiny) w praktyce". W książkach tych są dokładnie opisane układy z rdzeniem AVR, w języku asembler, i nie bój się go, jeśli nauczyłeś się C++ to i nauczysz się assemblera. Jeżeli lubisz lutować kabelki, to programatora nie musisz kupować (jeśli planujesz dłuższą przygodę z mikrokontrolerami to lepiej kup), wystarczy odpowiednie piny mikrokontrolera połączyć poprzez rezystory (np 330.Ω) z odpowiednimi pinami portu LPT i możesz programować.

    0
  Szukaj w 5mln produktów