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

Sprawdzenie kodu BASCOM-AVR dla LED na AT90S2313 - czy działa?

Vader10 23 Lis 2006 00:15 2736 21
REKLAMA
  • #1 3253435
    Vader10
    Poziom 11  
    Posty: 16
    Witam. od niedawna zacząłem interesować się mikrokontrolerami, i wpadłem na pomysł aby podlaczyć diody LED pod układ AT90S2313. Schemat podłączenia :

    Sprawdzenie kodu BASCOM-AVR dla LED na AT90S2313 - czy działa?

    W BASCOM-AVR napisałem progs który będzie sterował tymi diodami.
    https://www.elektroda.pl/rtvforum/download.php?id=211559
    nie wiem czy dobrze go napisałem , wiec prosze o sprawdzenie go, czy nie przeoczyłem jakiejś instrukcji, oraz czy schemat podłączenia jest dobry i czy wogole ten pomysł zadziała??

    Pozdrawiam.
  • REKLAMA
  • #2 3253490
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    witam,

    co do schematu to polecałbym ci podłączyć te diody odwrotnie tzn Katoda w stronę portu a Anoda do plusa zasilania - tak będzie lepiej dla procka. Wtedy po włączeniu układu diody będą zgaszone a ty możesz je programowo zapalać poprzez wystawienie stanu 0 na odpowiedni port lub gasić podając stan 1 ;)

    dobierz tylko odpowiednio rezystory, żeby nie "zabić" procka i wszystko będzie bardzo ładnie działało. Co do baskoma to ci nie podpowiem bo programuję tylko w asemblerze ale to powinno być w Baskomie baaardzo proste - poczytaj gdzieś troszkę nt baskoma i odrazu coś takiego zrobisz bez bólu ;)

    pozdrówka
  • #3 3256421
    Vader10
    Poziom 11  
    Posty: 16
    mirekk36 napisał:

    dobierz tylko odpowiednio rezystory, żeby nie "zabić" procka i wszystko będzie bardzo ładnie działało.

    Do diód dobiore, ale czy pod układ też trzeba? zasile go 5 V i najwyżej wstawie stabilizator. chyba że się myle. :)
  • Pomocny post
    #4 3256488
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    nie najwyżej - tylko koniecznie stabilizator 5V chyba, że do celów testowych zasilanie podajesz mu wprost z zasilacza komputerowego - to wtedy nie potrzeba stabilizatora. Ale nie rozumiem twojego pytania "czy pod układ też trzeba" - co trzeba - rezystor? skądże ? ;) czyste zasilanko ;)
  • REKLAMA
  • Pomocny post
    #5 3256520
    kaczepa
    Poziom 20  
    Posty: 238
    Pomógł: 32
    Ocena: 5
    Do zasilania uP stosujesz 5V bez żadnego opornika.
    Te 5V uzyskujesz stosując stabilizator np 7805.Ale do led-ów zastosuj oporniki tak jak doradził mirekk36.
    Pozdrawiam
  • #6 3256636
    Vader10
    Poziom 11  
    Posty: 16
    Witam, pod diody dam rezystory bo jak sie nie myle z układu będzie przebiegać 5V , a dioda ma średnio 1,7 V wiec tam wstawie. Testowo zasile przez komputerowy zasilacz, ale ogolnie to planuje podlączyć to pod 4 bateryjki 1,5 V co w sumie daje 6 v, wiec o jakiej rezystancji wstawić opornik pod układ?, bo wzór mi wyleciał z głowy :D
    Pozdrawiam.
  • #7 3256882
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    kolego - jak to mówisz "pod układ uC" nie wstawia się żadnego rezystora - zapamiętaj ;) nigdy - i nie ma żadnego wzoru wg którego można taki rezystor obliczać. Procek musi mieć podane czyste zasilanie. Jeśli podłączysz te baterujki i będziesz miał 6V - to możesz spokojnie podać to do procka. Ale żebyś wiedział na przyszłość o co tu chodzi to chcąc zastosować jakikolwiek procesor zajrzyj sobie do noty aplikacyjnej PDF. Tam jest czarno na białym napisane w jakim zakresie napięć dany procesor może pracować. Akurat ten o którym mówisz może pracować przy maksymalnym napięciu 6V. A minimalne zależy od tego jaki konkretnie masz model procka - to zależy przeważnie od jednej z literek na końcu w jego oznaczeniu - ale jak mówię - naucz się zaglądać do not. Polecam ci nauczyć się na pamięć stonki: www.datasheetarchive.com tam wpisujesz nazwę elementu i możesz sobie pobrać odpowiedniego PDFa i doczytać ok? ;)

    pozdrawiam i miłej zabawy z prockiem ;)
  • #8 3285944
    Vader10
    Poziom 11  
    Posty: 16
    witam, to może dam jeszcze bardziej wystrzalowe pytanie : Czy oprócz podłaczenia GND (-) i Vcc (+) musze coś jeszcze podłączać? oczywiscie oprócz rezystorków i diód. czy RESET zostawić w spokoju?Pozdrawiam.
    P.S sprawa sie skomplikowała i zamiast programowania AT90S2313 zaprogramuje ATtiny2313, ale wyczytałem (dziex za pdfki :) ) że też bedzie wsyztsko działać jak należy. zmienie napiecie z 6V na 4,5V bo tiny pracuje max na 5,5 V :D:D:D
  • Pomocny post
    #9 3286361
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    no proszę - warto czytać PDFy ;) ... możesz spokojnie zamieniać te układy - to nawet lepiej bo AT90S2313 jest już nie dość że stary to jeszcze sporo droższy od ATTiny2313 ;) ... RESET zawsze podłączaj przez rezystor np 4,7K do VCC, żeby uniknąć niespodzianek i czasem przykrego resetowania układu. Żeby też cały układ działał stabilnie to zaprogramuj też sobie wszystkie nieużywane bity portów jako wyjścia z pullup'em czyli z podciągnięciem do 1nki ;) i wszystko poza tym tak jak opisałeś powinno działać ;)

    pozdrówka
  • #10 3286538
    Vader10
    Poziom 11  
    Posty: 16
    Dzieki za pomoc mirekk36 i kaczepa. juz chyba to moje (oby) ostatnie pytanie : Jak i pod co podłączyc stabilizator L7805 bo pierwszy raz mam z tym do czynienia :). nieużywane piny już wcześniej podbiłem do jedynki, a RESET podłączącze tak jak napisałeś mirekk36. Pozdrawiam
  • REKLAMA
  • #11 3286704
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    ... na szczęście stabilizator 7805 to bardzo "prosty układ" ;) ma 3 nóżki. Wejście - wyjście i GND. Na wejściu powinno pojawić się napięcie wyższe od napięcia wyjściowego o ponad 2V żeby układ zadziałał tak wogóle. Ale też nie powinno to wejściowe napięcie być zbyt duże bo układ będzie się grzał ;) .... ja np stosuję takie troszkę za duże napięcie bo 12-13V i mam takie właśnie grzanie się układu (ale to nie jest jeszcze niebezpieczne). Dobrze by było też abyś na wejściu i wyjściu układu włączył po np jednym kondensatorze elektrolitycznym - powiedzmy 100uF (ja daję jeszcze oprócz nich prawie wszędzie zawsze kondensatorki po 100nF - czyli po dwa z każdej strony) - chyba że twoje napięcie wejściowej jest z akumulatora to wtedy to 100n są praktycznie zbędne i ten na wejściu elektrolityczny też ;)......

    ... ale na początku wspominałeś coś o kilku bateryjkach 1,5V ? - jeśli masz 3 takie baterie czyli razem 4,5V to nie potrzebny ci żaden stabilizator ;) (same baterie zapewniają stabilne napięcie)....

    ... jeśli natomiast zastosujesz jakiś zasilacz uniwersalny (można takie użyć od jakichś innych urządzeń czy też kupić) , który ma 9 do 12V na wyjściu to wtedy daj po drodze do uC opisywany wyżej stabilizator 7805...

    .... natomiast gdybyś chciał zasilać układ z 5V, które możesz sobie wyprowadzić z komputera PC jeśli go masz pod ręką - to również żadnego stabilizatora nie potrzebujesz ;)

    .... no to chyba wyczerpująco odpowiedziałem ;)

    pozdrówka
  • REKLAMA
  • #12 3286940
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 159
    >>> Vader10
    Wartosci początkowe rejestrów portu są zerowe więc lepiej zastosuj schemat jaki pokazałes.
    Rezystory daj 220 omów na dobry początek.
    Pozdr. N.
  • #13 3302041
    Vader10
    Poziom 11  
    Posty: 16
    witam ponownie. mirekk36 dzieki za wystarczającą odpowiedź, będe używał bateryjek albo podlacze przez molex do kompa, ale przynajmniej mam tutka na przyszłość :).
    Na jednym z tematów znalazłem ciekawy link, jest tam opis jak zrobic prosty programator.
    http://www.patron.net.pl/artykuly/AVR_tutorial.htm
    kolejne skromne pytanie : czy da rade takie coś zrobić pod moje atTiny?
    ustawilbym w moim procku SCK na 19 pin, Reset na 1, MOSI na 17, MISO na 18, GND na 10 i Vcc na 20 [pin]. tak ogólnie to sam sobie moge na to pytane odpowiedzieć, ale wole być pewny czy przez ten sposób nie zjaram procka. Pozdrawiam. sorki oczywiscie za moje lamerstwo. Respect for all. :)
  • #14 3302103
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    ... spokojnie - pytać zawsze warto ;) ... jest to oczywiście najprostsza z możliwych wersja programatora ;) ... stronkę znam - fajna ;) ... jednak na przyszłość polecałbym ci albo sobie zrobić samemu albo kupić gotowy(na allegro chyba 15zł) też b.prosty programatorek typu STK200. A dlaczego? ... bo dzięki temu najprostszemu programatorowi można przypadkiem niechcąco zniszczyć sobie port LPT w kompie ;) ... zdarza się to nie tylko początkującym ale i zaawansowanym ;) .... poprostu łatwo czasem coś przeoczyć przy podłaczaniu a w przypadku najprostszego programatorka o jakim mówisz ;) port LPT nie ma żadnego zabezpieczenia... Więc jeśli wiesz, że jesteś nieomylny zawsze to go stosuj - przecież go nie trzeba robić nawet ani ustawiać żadnych sgnałów na procku ... one tam już są - trzeba je tylko doprowadzić kabelkami do portu ;) (zobacz sobie w dokumentacji procka - niektóre piny (a w zasadzie prawie wszystkie w AVRach) mają alternatywne oznaczenia ;) i zawsze są takie sygnały jak RESET, SCK, MISO i MOSI - tylko na róznych nóżkach w różnych prockach. .... Ja np pomimo to, że też zawsze w celach poznawczych lubię sam sobie wszystko zrobić to jednak jak zaczynałem kupiłem sobie ten własnie STK200 z allegro i przynajmniej przy pierwszym uruchamianiu procesorów wiedziałem że co jak co ale programator mam dobry (czyli jedno ogniwo mniej do sprawdzania, dzięki czemu mogłem szybciej się skoncentrować na samych aspektach na spokojnie - programowania itp)

    ... wybierz więc sobie teraz sam drogę ... znasz już różne za i przeciw ;)

    pozdrówka
  • #15 3302216
    Vader10
    Poziom 11  
    Posty: 16
    witam. jest oczywiscie na tzw. aukcjach internetowych (bez reklamy :D) programator STK za 16 zł, ale skoro do tego potrzebuje tylko wtykę LPT to co szkodzi zaryzykować, mało kto używa LPT jako wyjście dla sprzętu komputerowego, wiec jak przypadkiem go przesile to żadna tragedia sie nie stanie myśle :) a lutownicą władać umiem, więc troche precyzji i sprubuje. dla pewności zamiast lutować beapośrednio pod procka (moze się od samego lutowania przegrzać) wstawie go w podstawkę 20pin . więc czysto teoretycznie wszytsko powinno działać. ciekawe jak to bedzie wyglądało w praktyce. :) Pozdrawiam.
  • #16 3302299
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    będzie wygladało dobrze ;) - od lutowania procek się nie przegrzeje, chyba że masz jakąś mega wielką lutownicę o dużej mocy ;) ... ale zawsze warto sobie zrobić złącze ISP na płytce.
    Co do tego portu LPT to fajnie napisałeś - "mało kto używa LPT" - no a pomyślałeś, że już jak go nie daj Boże jednak upalisz to co wtedy? ;) koszty załatwiania drugiego będą znacznie większe niż nawet zrobienie samemu STK200 (tam jest tylko 1 scalak - bufor) i port jest dobrze chroniony ;) ... ale ok powodzenia - taki na kabelkach też będzie działał ;)
  • #17 3302352
    Vader10
    Poziom 11  
    Posty: 16
    Cytat:
    no a pomyślałeś, że już jak go nie daj Boże jednak upalisz to co wtedy
    zapomniałem napisać, ze zrobie to na drugim kompie :) on jest wlaściwie moim testowym sprzetem do wszytskiego, tyle ze połowy rzeczy juz w nim nie ma:D. ale poradze sobie ;) co do lutownicy to dobrze zgadłeś, bo jest ona aż za mocna jak na takie proste lutowania, wiec dla pewnosci posluże sie moim poprzednim pomysłem :D. Pozdrawiam i dzieki za pomoc, zobacze co z tego wszystkiego wyniknie.
  • #18 3334710
    Vader10
    Poziom 11  
    Posty: 16
    Witam, chyba lepiej zainwestuje w programator STK bo podlączyłem wszystko jak trzeba, zassałem WinAVR i o to log z programu :

    Cytat:
    C:\WinAVR\bin>avrdude -p t2313 -c bsd -F -U flash:w:led.hex

    avrdude: AVR device not responding
    avrdude: initialization failed, rc=-1
    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.01s

    avrdude: Device signature = 0xffffff
    avrdude: Yikes! Invalid device signature.
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

    To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: AVR device not responding
    avrdude: reading input file "led.hex"
    avrdude: input file led.hex auto detected as Intel Hex
    avrdude: writing flash (1202 bytes):

    Writing | ################################################## | 100% 0.61s

    avrdude: 1202 bytes of flash written
    avrdude: verifying flash memory against led.hex:
    avrdude: load data flash data from input file led.hex:
    avrdude: input file led.hex auto detected as Intel Hex
    avrdude: input file led.hex contains 1202 bytes
    avrdude: reading on-chip flash data:

    Reading | ################################################## | 100% 0.42s

    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
    0x12 != 0xff
    avrdude: verification error; content mismatch

    avrdude done. Thank you.




    wydaje mi sie , że coś komputer nie wykrywa mojego mikrokontrolerka.
    chyba że coś przeoczyłem?
    Pozdrawiam.
  • #20 3338737
    matgaw
    Poziom 15  
    Posty: 198
    Pomógł: 4
    Ocena: 3
    Nie wykrywa. Spróbuj zmienić typ programatora w avrdude (na bascom np.) i zaprogramować ponownie. Upewnij się, że wszystko jest dobrze podłączone, masz zasilanie na procku itp.
  • #21 4658822
    lukisio
    Poziom 12  
    Posty: 68
    mirekk36 napisał:

    co do schematu to polecałbym ci podłączyć te diody odwrotnie tzn Katoda w stronę portu a Anoda do plusa zasilania - tak będzie lepiej dla procka. Wtedy po włączeniu układu diody będą zgaszone a ty możesz je programowo zapalać poprzez wystawienie stanu 0 na odpowiedni port lub gasić podając stan 1 ;)


    Ja tak wlasnie zrobilem.. i co? i mam problem z napisaniem programu. O ile przy plusie z kontrolera i GND z zasilania wszystko hula jak należy, tak w sytuacji odwrotnej klapa. Oczywiście przelutowałem diodki w drugą stronę.
    Oto kod jakim probuje to uruchomic:

    
    $regfile = "m8def.dat"
    Config Portc.1 = Output
    
    Do
    Portc.1 = 0
    Wait 1
    Portc.1 = 1
    Loop
    End
    


    Ponadto czy ktoś mógłby mi wytłumaczyć czym różni się "port" od "pin"?? Na AVR przesiadłem się niedawno. Jakoś pod 8051 było to trochę bardziej czytelne i przejrzyste :)
  • #22 4660375
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 52
    Nie dawno też przerabiałem temat z programatorem na usb kupionym na allegro i oto co zrób:
    1: zainstaluj pakiet Net Framework >2.0.50727
    2: zainstaluj AVR studio V4.13
    3:zainstaluj avrdude-Gui V1.0.4
    W avrstudio jest odpowiednia wersja programu stk500 wiec podaj sciezkie dostępu w programach avrdude do programu stk500 lub w bascomie też podaj ściezkie dostępu do stk500
    ważne abyś zainstalował pakiet Net Framework
    Ja ze dwa tygodnie sie bujałem z uruchomieniem programatora aż w końcu sie udało

Podsumowanie tematu

✨ Dyskusja dotyczy sprawdzenia poprawności schematu i kodu w BASCOM-AVR do sterowania diodami LED podłączonymi do mikrokontrolera AT90S2313 oraz późniejszej zamiany na ATtiny2313. Zalecane jest podłączenie diod LED katodą do portu mikrokontrolera i anodą do plusa zasilania, co umożliwia sterowanie diodami przez ustawianie stanu niskiego na porcie. Konieczne jest stosowanie rezystorów ograniczających prąd przy diodach, typowo około 220 Ω. Mikrokontroler powinien być zasilany stabilizowanym napięciem 5 V, np. z użyciem stabilizatora L7805, który wymaga kondensatorów filtrujących na wejściu i wyjściu. Nie stosuje się rezystorów w linii zasilania mikrokontrolera. Reset mikrokontrolera należy podłączyć przez rezystor podciągający (np. 4,7 kΩ) do VCC, aby zapobiec niekontrolowanym resetom. Wskazane jest programowanie nieużywanych pinów jako wyjścia z podciągnięciem do stanu wysokiego. W kwestii programowania, dyskutowano o prostych programatorach ISP, w tym samodzielnej budowie oraz zakupie gotowego programatora STK200, z uwzględnieniem ryzyka uszkodzenia portu LPT komputera przy najprostszych konstrukcjach. Problemy z wykrywaniem mikrokontrolera przez komputer mogą wynikać z nieprawidłowego ustawienia programatora w oprogramowaniu (np. avrdude) lub złych połączeń. Zalecane jest użycie programów takich jak PonyProg oraz instalacja odpowiednich sterowników i środowisk (np. AVR Studio, .NET Framework). W kodzie BASCOM-AVR i przykładach podkreślono różnicę między portem a pinem oraz konieczność poprawnego konfigurowania rejestrów portów.
Wygenerowane przez model językowy.
REKLAMA