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.

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

Hubold 23 Lip 2008 14:25 7304 50
  • #1 23 Lip 2008 14:25
    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ć ?

    Code:
    $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ć ?

    0 29
  • #2 23 Lip 2008 14:28
    Balu
    Poziom 38  

    Ty chyba żartujesz!
    Słyszałeś o czymś takim jak schemat?

    (Zważywszy. że nawet nie napisałeś gdzie to lcd ma złącze... gratuluję.)

    0
  • #3 23 Lip 2008 16:07
    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ł

    0
  • #4 23 Lip 2008 16:14
    snow
    Poziom 28  

    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.

    0
  • #5 23 Lip 2008 16:59
    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.

    0
  • #6 23 Lip 2008 18:21
    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ć.

    0
  • #7 23 Lip 2008 19:07
    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

    0
  • #8 23 Lip 2008 19:20
    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 ?

    0
  • Pomocny post
    #9 23 Lip 2008 19:47
    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

    0
  • #10 23 Lip 2008 20:13
    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ł

    0
  • #11 23 Lip 2008 20:42
    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...

    0
  • #12 23 Lip 2008 21:14
    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.

    0
  • #13 23 Lip 2008 21:16
    Balu
    Poziom 38  

    Moje zdanie? Mylisz się.
    Ta wtyczka jest inaczej numerowana - upewnij się, przedzwoń połączenia od nóżki uC do pinu na LCD.

    0
  • #14 23 Lip 2008 21:37
    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:

    Code:


      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

    0
  • #15 23 Lip 2008 22:39
    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

    0
  • #16 23 Lip 2008 22:42
    Balu
    Poziom 38  

    Tak zresetowałeś układ. (Zgodnie z nazwą).

    Nie działa, bo podczas przelutowywania dwóch kabelków od lcd spierdzieliłeś coś innego. Proste;]

    0
  • #17 23 Lip 2008 22:59
    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".

    0
  • #18 23 Lip 2008 23:42
    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

    0
  • #19 24 Lip 2008 00:10
    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.

    0
  • #20 24 Lip 2008 00:24
    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:)

    0
  • #21 24 Lip 2008 00:26
    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.

    0
  • #22 24 Lip 2008 00:28
    Balu
    Poziom 38  

    Nie, albo coś spraprałeś lutując, albo... uwaliłeś ESD...

    0
  • #23 24 Lip 2008 00:40
    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 ?

    0
  • #24 24 Lip 2008 00:44
    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

    0
  • #25 24 Lip 2008 00:50
    Balu
    Poziom 38  

    Nie trzeba wyjmować, żeby zabić...
    Ehh...

    0
  • #26 24 Lip 2008 00:58
    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ś...

    0
  • #27 24 Lip 2008 01:01
    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...

    0
  • #28 24 Lip 2008 01:11
    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.

    0
  • #29 24 Lip 2008 10:04
    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ł

    0
  • #30 24 Lip 2008 11:40
    Balu
    Poziom 38  

    No spróbuj nic Ci nie szkodzi...

    @dawid512

    Cytat:

    Jeszce wtedy był... i wcale nie chodziło mi o to że przez to stracił kontakt z uc.

    Moja wypowiedźź była ironią.

    0