logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega16][bascom] Atmega 16 - jak włączyć ?

Hubold 23 Lip 2008 14:25 8129 50
  • #1 5369997
    Hubold
    Poziom 11  
    Witam!


    Jestem początkujący na forum i w elektronice także więc proszę o wyrozumiałość jeżeli moje pytanie będzie głupie. Złożyłem sobie układ który ma działać jako sterownik nawadniania. Wzór płytki głównie odgapiłem z tematu Link. Jednak zmieniłem też wiele by dostosować płytkę do swoich potrzeb. Mój problem polega na tym ,że po podłączeniu zasilania wyświetlacz (lcd 4x16) wyświetla mi kwadraciki lecz nie wyświetla tego co wgrałem do atmegi. Poniżej wstawiłem wzór płytki, fusy i program który wgrywam do megi. Proszę o sprawdzenie połączeń przy scalaku i lcd'kiem i porady co mogę z tym fantem zrobić. Jeżeli to potrzebne to podłączony mam zewnętrzny kwarc 16 MHz.

    [Atmega16][bascom] Atmega 16 - jak włączyć ?

    [Atmega16][bascom] Atmega 16 - jak włączyć ?

    $regfile = "m16def.dat"
    $crystal = 16000000
    Config Lcd = 16 * 4
    Config Lcdmode = Port
    Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.1 , Db6 = Portb.5 , Db7 = Portb.6 , E = Portb.4 , Rs = Portb.2
    Display On
    Cursor On
    Do
    Cls
    Lcd "1234567890123456"
    Wait 1
    Loop


    [Atmega16][bascom] Atmega 16 - jak włączyć ?

    [Atmega16][bascom] Atmega 16 - jak włączyć ?
  • #3 5370356
    Hubold
    Poziom 11  
    Poprawiłem rysunek i zaznaczyłem która z łączka to złączka do lcd. Jeżeli nie chcesz pomóc to lepiej nic nie pisz bo to wcale nie pomaga. Jeżeli to pomoże to narysuję schemat i zamieszczę go tutaj.

    Z góry dziękuję za pomoc i pozdrawiam
    Michał
  • #4 5370369
    snow
    Poziom 31  
    Przydałby się bo nadal nic nie mówi twój opis na rysunku - kto ma wiedzieć gdzie jaki sygnał z LCD podałeś. Generalnie jeżeli masz kratki to masz źle zainicjowany wyświetlacz. Sprawdź miernikiem czy masz połączenia z tymi portami do w ustawieniach w Bascomie, jeżeli tak a program jest poprawny to może uszkodzony wyświetlacz.
  • #5 5370513
    Balu
    Poziom 38  
    Jakbym nie chciał pomóc, to bym się nie odzywał - nie płacą mi za kolejny post.
    Nie wiem czemu młodzież taka agresywna się zrobiła ostatnio...

    BEZ schematu nikt nie będzie myślał co masz źle, wybacz.

    Wg mnie albo nie masz RS na masie, albo masz na jednym z DB4..7 masę, ale czort Cię wie, bo masz NIEOPISANE ZŁACZE do lcd.
  • #6 5370815
    Hubold
    Poziom 11  
    Jest i schemat. R/W mam podpięte do masy i na żadnym z DB4...DB7 nie mam masy. Chodzi mi bardziej o to jak spowodować by Atmega się odezwała. Lcd raczej jest sprawny , ponieważ kupiłem go 2 tyg. temu nie pomyliłem na nim nigdy biegunów oraz nie stało się z nim nic takiego co mogło by spowodować jego zepsucie ( w moim mniemaniu). W zamyśle do pinu Reset miał być podpięty układ dallasa kontrolujący napięcie itp. oraz switch do resetu, jednak postanowiłem pozostawić sobie ten "bajer" na później i teraz zrobić to jak najprościej. Dlatego mam wyprowadzone na płytce piny od rst vcc i gnd obok siebie. Próbowałem już podłączyć rezystor 4,7 k do rst i vcc lecz nic to nie dało. Próbowałem także bezpośrednio podłączyć rst i vcc lecz ze skutkiem podobnym jak poprzednio. Obawiam się ,że rezystor podciągający , który ma być przy złączu 1 wire( Ds1820) mógł jakoś zadziałać na megę.

    P.S Ja właśnie nie jestem w ogóle nerwowy , powiedziałbym nawet ,że jestem oazą spokoju. :)

    P.S 2 Mam nadzieję ,że schemat będzie wystarczający abyście mogli mi pomóc. Jeżeli czegoś jeszcze brak proszę mówić.
  • #7 5370992
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    Jeśli, jak piszesz, masz pin RS na masie to masz problem. Powinieneś mieć RW na masie, a RS podpięte do pinu procesora. Sprawdź z datasheetem LCD czy numery pinów zgadzają się z tym, co masz na złączu.

    Tak w ogóle to zacznij od czegoś prostszego, żeby sprawdzić czy procesor działa itd. Widzę diodki na schemacie, pomrugaj którąś (z niską częstotliwością) dla testów. Upewnij się, że programowanie i weryfikacja zawartości pamięci flash przebiegają poprawnie.

    PS. Schemat woła o pomstę do nieba, rozumiem, że darmowy Eagle pozwala tylko na 1 stronę schematu, ale mógłbyś się chociaż trochę postarać...

    (edit)

    Po pierwsze, masz piny w złączu LCD w numeracji 1 rząd 1-8, 2 rząd 9-16. Upewnij się, że Twoj LCD tak ma (ja mam inne, które mają piny w złączu numerowane 1-2, 3-4, ... itd.)

    Poza tym piny 5,7,8,15,16 (wg. numeracji pierwszej) masz połączone ze sobą, ze złączem ISP oraz z jeszcze jednym złączem, ale ta ścieżka nigdzie indziej nie jest podłączona (a powinna być na potencjale masy układu). To samo dotyczy pinu nr. 9 - ścieżka prowadzi do jakiegoś złącza, ale co dalej? W tymże złączu masz prawdopodobnie zwarcie.

    Pozdrawiam,
    Dr.Vee
  • #8 5371037
    Hubold
    Poziom 11  
    Moja pomyłka, zapatrzyłem się w post Balu i przepisałem tak jak on napisał. Błąd już poprawiłem RS mam podpięte do megi a R/W mam do masy. Mógłbyś napisać co źle zrobiłem w schemacie ?
  • Pomocny post
    #9 5371131
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    Twój schemat przypomina trochę schematy z gazet - maksymalne upchanie elementów, co mocno utrudnia czytanie - tylko że tam jest to podyktowane ograniczonym miejscem.

    Ogólnie robi się tak - wejścia układu po lewej, wyjścia układu po prawej. Sygnały "płyną" z lewej na prawą. Punkty znajdujące się wyżej na schemacie mają zwykle wyższy potencjał względem masy.

    W schematach układów takich jak Twoj ciężko je stosować, ale dużo można poprawić. Np. masz 5 identycznyh podukładów z przekaźnikami, powinny być narysowane identycznie i blisko siebie. W każdym podukładzie VCC powinno być wyżej niż GND, tak, że prąd przepływa "od góry do dołu". To samo tranzystory (npn kolektor na górze, emiter na dole, pnp odwrotnie), stabilizator itd.

    Reguły się łamie, ale głównie po to, żeby układ dało się szybko przeanalizować, a nie po to, żeby go zmieścić na kartce.

    Poza tym prowadzisz linie sygnału przez elementy (po co? brak miejsca?), opisy elementów są nieczytelne (nakładają się) itd.
    Spróbuj zastosować szyny danych (ang. bus) z opisem odczepów, to może wiele poprawić.

    Pozdrawiam,
    Dr.Vee
  • #10 5371252
    Hubold
    Poziom 11  
    Właśnie tak jak wcześniej napisałem z elektroniką w praktyce dopiero zaczynam. Więc reguł , które właśnie wymieniłeś wcześniej nie znałem. A schemat starałem się zrobić czytelnie tylko ,że nie umiem jeszcze dobrze operować miejscem które daje eagle. A co do postu powyżej to pin 9 ze złącza lcd to masa tak samo jak 6,7,8,10 tylko ale jest to podłączone drucikiem do reszty masy bo przez przypadek w czasie edycji wzoru płytki usunąłem kawałek ścieżki. Piny 15 i 16 to piny podświetlenia. Pin 16 podpięty jest przez rezystor 10ohm to masy a 115 wyprowadzone jest złączem na drógą stronę płytki tak jak jeden pin scalaka by później móc sterować jasnością podświetlenia przez PWM. Piny numerowane są tak jak piny scalaków czyli tak jak napisałeś. Chciałem pozostawić sobie jak najwięcej wolnych pinów megi do późniejszego rozwoju i dlatego niektóre piny lcd to piny ISP. Jeden pin ISP , którego nie wykorzystałem w dodatkowy sposób czyli Sck wykorzystałem do podłączenia lini 1wire. Lcd jest podłączone do taśmy , która zakończona jest obciętą złączką od taśmy IDE ( taśma w komputerze do przesyłu danych) 2x8 , której styki sprawdziłem miernikiem uniwersalnym, tak ,że połączenie lcd - atmega wydaje mi się poprawne . Zwarć nigdzie nie ma przynajmniej między vcc a gnd a między pozostałymi ścieżkami to dziś jeszcze się upewnię pod dużą lupą. Głównie chodzi mi o to jak powinna być podłączona Atmega by działała. Programowanie przebiega poprawnie. Może ma ktoś jakiś prosty kod na migającą diodę lub coś podobnego pod ręka i mógłby podesłać ?


    Dziękuję za pomoc i pozdrawiam
    Michał
  • #11 5371390
    Balu
    Poziom 38  
    Oczywiście mnie w poście chodziło o RW, literówka z tym RSem:)

    Next.
    Pokaż link do miejsca gdzie kupiłeś lcd, albo dokumentację do LCD, nie spotkałem w moim 24letnim życiu LCD numerowanego jak układ scalony, wszystkie były numerowane jak złącza, 12, 34, 56, 78,....a nie jak scalak 18, 27, 36, 45...
  • #12 5371546
    Hubold
    Poziom 11  
    Jak napisałem wcześniej do lcd przylutowana jest taśma w jednym rządku 1x16 tak jak na schemacie , tak jak większość lcd , a ta taśma jest zakończona wtyczką 2x8 , którą numerowałem jak scalaki czyli złącze na płytce , kolumna od prawej od dołu do góry jest 1,2,3...8 , a kolumna od lewej od góry do dołu 9,10...16.
  • #14 5371636
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    Hubold, źle ponumerowałeś złącze. Jeśli zacisnąłeś na taśmie złącze 2x8, to kolejne piny złącza (patrząc od góry) są tak ponumerowane:

    
    
      2 4 6 8  ...
      1 3 5 7  ...
      |||||||  ...
      ^
      \___ ten przewód powinien być oznaczony jako 1
    


    Zresztą zobacz sobie sam na niezaciśniętej końcówce.

    Zrób jak mówi Balu, podłącz LCD i sprawdź miernikiem jakie masz połączenia (od nóżek procesora do miejsca przylutowania taśmy do LCD).

    Pozdrawiam,
    Dr.Vee
  • #15 5371921
    Hubold
    Poziom 11  
    Problem z lcd rozwiązany. Po dokładniejszym przyglądnięciu się taśmie od strony lcd zauważyłem ,że dwie żyły taśmy są ze sobą splecione. Przelutowanie ich pomogło i lcd wyświetlił mi ciąg cyfr które wgrałem do atmegi. Jednak uradowany tą sytuacją postanowiłem wgrać bardziej skomplikowany program do megi. I... . Otworzyłem Bascom-avr otwieram odpowiedni program. chcę go wgrać ale coś mnie pokusiło by kliknąć taki przycisk ( czarny wykrzyknik za przekreślonym kółkiem ) który gdy najechało się na niego myszką pojawiał sie napis Reset chip . Kliknąłem i mega nie odpowiada może ma ktoś pomysł co z tym zrobić.


    P.S Tematu nie zamykam. Będę w nim umieszczał swoje pytania do forumowiczów by nie tworzyć setek innych tematów.

    Dzięki
  • #17 5372011
    Hubold
    Poziom 11  
    No to ,że zresetowałem to się domyśliłem , tylko czy ma to coś z tym wspólnego ,że wtedy gdy zresetowałem rezystor między resetem a vcc był odlutowany jaki i cały czas wcześniej ? Przelutowywałem tylko te dwa kabelki i nic innego nie ruszałem . Podłączyłem lcd do układu i zasilanie to lcd wyświetlił to co miał. Podłączyłem układ do programatora wcisnąłem reset chip i teraz żaden program do programowania , przede wszystkim Bascom-AVR nie widzi megi czyli "couldnt not identiffy chip with ID : FFFFFF".
  • #18 5372171
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    :arrow: Balu, nie nabijaj się z kolegi :)

    :arrow: Hubold - następnym razem nie klikaj jak nie wiesz co robisz :)

    A teraz łap się za dokumentację do Bascoma i przeczytaj, co ten przycisk naprawdę robi. Głowne pytanie - czy zmienia fuse bity czy nie.

    PS. Rezystor nic tu nie powinien zmienić, AVRy mają wewnętrzny rezystor podciągający RESET do VCC.

    Pozdrawiam,
    Dr.Vee
  • #19 5372232
    Hubold
    Poziom 11  
    Tak , teraz już wiem ,że nie wolno klikać podejżanych przycisków. Szukałem w googlach lecz nic nie znalazłem. Ale w książce "Programowanie mikrokontrolerów w języku Bascom" Marcina Wiązani napisane jest ,że ten przycisk zeruje mikrokontroler (sprzętowy reset). Nadal nie wiem co z tym zrobić. Chyba jedynym jednak nie najprostszym rozwiązaniem będzie kupienie nowej megi. Nie najprostsze , bo w sklepie elektronicznym w L-cy nie ma atmegi 16 no chyba ,że coś się zmieniło.
  • #20 5372236
    Balu
    Poziom 38  
    Dr.Vee nie mam w zwyczaju nabijania się, napisałem co robi - RESETUJE!!! Robi reset, hardware reset, nic nie kasuje, poprostu podnosi nogę resetu (a właściwie opuszcza )na chwilę.
    (Nie mam w zwyczaju nabijania się, co najwyżej bycie ironicznym SOBem :) )

    NIE WIERZĘ, że nic więcej nie zrobiłeś... NIE WIERZĘ
    powtórzę:
    N I E W I E R Z E!!!

    Dodano po 1 [minuty]:

    ERGO poszukaj co zwarłeś przypadkiem.

    Dodano po 11 [minuty]:

    A klikać wolno wszystko - nic tam uC nie zepsuje:)
  • #21 5372272
    Hubold
    Poziom 11  
    Przy przelutowywaniu nic dodatkowego nie zrobiłem. Jak już pisałem po zlutowaniu wszo działało , podłączyłem do komputera chcąc wgrać nowy program wcisnąłem erase później reset chip i to wszystko. Zwarć szukałem ponownie i nie ma. Może jakimś magicznym trafem programator się zepsuł. Jutro pojadę do sklepu po nową kość 74hct244 i zamienię , ewentualnie kupię megę jeżeli będzie. Macie jeszcze jakieś pomysły.
  • #23 5372297
    Hubold
    Poziom 11  
    wydaje mi się ,że wina nie leży po stronie lutowania. Jutro z rana rzucę na układ żywszym okiem może dostrzegę jakiś błąd. Czyli kliknięcie przycisku reset chip nie mogło uśmiercić megi ?

    P.S Czym jest ESD ?
  • #24 5372300
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    ESD to po angielsku electrostatic discharge, czyli wyładowanie elektrostatyczne. Mało prawdopodobne żebyś w ten sposób zabił ATmegę, zwłaszcza, że zapewne jej nie wyjmowałeś z podstawki.

    Masz rację, rano na świeżo spróbujesz zaprogramować jeszcze raz i ew. sprawdzić układ.

    Pozdrawiam,
    Dr.Vee
  • #26 5372314
    dawid512
    Poziom 32  
    Dr.Vee napisał:
    Witam,

    czyli wyładowanie elektrostatyczne. Mało prawdopodobne żebyś w ten sposób zabił ATmegę, zwłaszcza, że zapewne jej nie wyjmowałeś z podstawki.



    A co ma do tego czy wyjął czy nie? Jeżeli poszła iskra to nie ważne czy na ścieżkę czy bezpośrednio na nogę atmegi i tak mogła ją uszkodzić.

    Jeżeli dałeś reset to możliwe że fusy ci się przestawiły na 1MHz w co raczej wątpię bo pewnie zrobiłeś zwykły reset.

    Mega się czasem nie grzeje?

    Programatora raczej nie uszkodziłeś...
  • #27 5372319
    Balu
    Poziom 38  
    Cytat:
    Jeżeli dałeś reset to możliwe że fusy ci się przestawiły na 1MHz w co raczej wątpię bo pewnie zrobiłeś zwykły reset.

    Świetna rada...zważywszy, że nie ma kontaktu z uC... zawsze po przełączeniu na wew. oscylator traci się kontakt z uC.
    Poza tym w bascomie AFAIR nie ma przycisku "skasuj fusy" a jest zresetuj chip...
  • #28 5372330
    dawid512
    Poziom 32  
    Cytat:
    Świetna rada...zważywszy, że nie ma kontaktu z uC... zawsze po przełączeniu na wew. oscylator traci się kontakt z uC.


    Jeszce wtedy był... i wcale nie chodziło mi o to że przez to stracił kontakt z uc.
  • #29 5372782
    Hubold
    Poziom 11  
    Witam!


    Czyli co radzicie zrobić ? Skonstruować zewnętrzny generator 1MHz (jeżeli tak to się nazywa)? Mega się nie grzeje . I po podłączeniu programatora do układu , nie dotykałem go w żaden sposób itp. Układ leży na podłodze na gąbce tapicerskiej.



    Pozdrawiam i dziękuję za pomoc
    Michał
REKLAMA