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

Jak podłączyć ATTINY2313 do komputera do programowania RC5?

07 Lis 2006 11:29 39320 61
Najlepsze odpowiedzi

Jak podłączyć ATTiny2313 do komputera, żeby móc go programować?

Do programowania ATTiny2313 podłącz go przez prosty programator SPI, najlepiej w układzie STK200/STK300, zamiast robić bezpośrednie połączenie z portem komputera [#3231338][#3233674] Do takiego programatora możesz użyć programu PonyProg, który jest polecany do początkujących [#3231338] Wczytujesz do niego skompilowany plik, zwykle `.hex`, a potem wybierasz „Write to device FLASH”, bo procesor nie przyjmuje listingu źródłowego [#3231338][#3229936] Jeśli chcesz gotowe rozwiązanie, w wątku podano też link do opisu i gotowy zestaw programatora do kupienia [#3197508] Warto użyć STK200/300, bo odseparowuje port LPT komputera od układu i zmniejsza ryzyko uszkodzenia portu [#3233674]
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA
  • #1 3197314
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #2 3197460
    elektor18
    Poziom 18  
    Posty: 351
    Pomógł: 14
    Ocena: 18
    Zrób sobie programator SPI.Poszukaj na necie, a jak nie znajdziesz to ja Ci wyśle na maila.Tylko napisz do mnie jesli nie znajdziesz.Obecnie nie jestem w domu.Odpisze jak wróce.Najwcześniej jutro wieczorem!Pozdro!
  • #4 3229896
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #5 3229936
    wojtkow
    Poziom 14  
    Posty: 80
    Pomógł: 9
    Powiedz że żartujesz, proszę... A jak niby procesor ma zrozumieć listing ??
    Oczywiście że trzeba wysłać postać skompilowaną, może to być np. plik .hex
  • #6 3229944
    Skubik
    Poziom 15  
    Posty: 106
    Pomógł: 12
    Ocena: 2
    Oczywiście ze HEX lub BIN w zaleznoci co programator obsługuje
  • #7 3230553
    Konto nie istnieje
    Konto nie istnieje  
  • #8 3231280
    farmazon3000
    Poziom 15  
    Posty: 259
    Pomógł: 3
    Ocena: 26
    jeste pewny ze tym zaprogramujesz attiny?

    wiem z ajiej to ksiazki jest bo tez ja przerabialem i to jest uklad do innego procka

    (ale ja sie nie znami i tylko sygnalizuję taką możliwość)
  • Pomocny post
    #9 3231338
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    .... ooo ja ... ale kombinacji - przecież już kolega kaczepa podał ci link na elektrodzie z dokładnym opisem co i jak...

    Jak podłączyć ATTINY2313 do komputera do programowania RC5?

    tu masz jeszcze raz schemat programatora STK200 - zrób go sobie sam a jak nie chcesz kombinować to kup gotowca - ok 15zł na allegro i po bólu. A jeśli jesteś początkujący to plecam do programowania tym programatorem - program PonyProg www.lancos.com (tam go zassasz)

    w nim masz opcję "wczytaj plik" domyślnie własnie HEX, po wczytaniu klikasz klawisz "write to device FLASH" i już - proste? ;)

    czy czegoś jeszcze nie wiesz? ;)
  • #10 3233355
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #11 3233653
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    "Write to device" - zapisuje i pamięć programu i zawartość pamięci EEPROM

    "Write program memory "FLASH" - zapisuje jak sama nazwa wskazuje tylko pamięć flash tam gdzie jest twój program ;)

    "Write data memory EEPROM" - zapisuje tylko zawartość pamięci EEPROM

    - podobnie jest z odczytywaniem.

    z tym , że chyba w Pony jest mały błąd, trzeba o tym pamiętać - przynajmniej tak mi się zachowuje jak programuję ATTiny2313, (na początku myślałem że sam coś źle robię) otóż - ta druga opcja która "niby" nie zapisuje pamięci EEPROM to wprawdzie nie wpisuje tego co masz zdeklarowane w ESEG ale za to - KASUJE JĄ przy programowaniu pamięci programu - kurczę długo z tym walczyłem żeby do tego dojść - bo miałem dziwne efekty jak obsługiwałem programowo w uC tę pamięć. Tzn coś sobie zapisywałem i po odczycie było a później jakoś znikało .... a przyjmowałem jako pewnik, że nie kasuje jej Pony przy 2giej opcji... aż na końcu to sprawdziłem i wszedł mały będziorek ;)
  • REKLAMA
  • #12 3233674
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Działa i działać będzie dopuki nie uwalisz portu LPT. Nawet najlepszym przytrafiają się pomyłki w podłączeniach. Zatem nie oszczędzaj kilku złotych i zrób sobie (kup) programator STK200/300, który odseparuje nieco LPT na twojej płycie głównej od programowanego ukladu.
  • #13 3233795
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    kolega M. S. ma 100% rację - też polecam ci zrobić sobie lub kupić programator tylu chociażby STK200 ...

    ... ja sam programowałem już trochę i róznych procków i niestety zdażyło mi się RAZ podłączyć odwrotnie ;) ... poleciał procek ( ale to kilka zł ) a z portem LPT na szczęście wszystko w porządku i programator STK200 też wytrzymał. A gdyby poleciał LPT - a teraz wykle jest zawsze taki 1 port i to na płycie głównej, to trzeba by się było bawić w szukanie i dokupowanie karty rozszerzeń z LPTkami - i zapewne wyszło by to drożej niż właśnie zrobienie czy kupienie STK200 - więc przemyśl to ;)

    Poza tym masz większą wygodę - JEDEN kabel od LPT a nie jeszcze coś się plącze do GamePortu.
  • #14 3233873
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    co do programatorów na LPT to nie mówie ze nieidze uszkodzić LPT ale juz kilka razy podłączyłem go na odwrót i nic złego sienie stało

    na płycie głównej są rezystorki ograniczjace prąd i w programatorze też.

    wszyscy tylo piszą że idze spalić LPT a czy ktoś juz to zrobił ????
    tak pytam z ciekawosci (niepytam o podanie na LPT 12V lub wyżej tylko o złe podpięcie pinów do uP)
  • #15 3235753
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    ... kolego hunterhouse chyba nie za bardzo widziałeś kiedykolwiek schemat płyty głównej jakiejkolwiek ;) wejścia i wyjścia danych są wg ciebie wyprowadzone na zewnątrz przez jakieś rezystorki? ... hmm a jakie? Napewno nie mylisz się, że widzisz obok portu LPT na płycie jakieś rezystorki - ale jest ich mnóstwo na płycie i nie zawsze oznacza to, że jeśli są obok LPT to są do LPT ;) (mogą to być też rezystorki podciągające do plusa ale nie ograniczające jakiś prąd) ... Wyjście danych z LPT to przeważnie wyjście ze scalaka. Dawniej były to na wyjściu jakieś buforki typu 74xx (i one miały możliwość obciążenia nawet większym prądem) ... teraz naczęściej wyjścia i wejścia portu są w jednej większej specjalizowanej kostce - która ma o wiele mniejsze prądy wyjściowe niż TTLe. I dlatego tak "wszyscy" jak zauważyłeś "tylko piszą że idzie(można) spalić LPT"... tak wielu jest takich którzy palą - i to wcale nie amatorów, czasem i doświadczony elektronik się pomyli - to rzecz ludzka... ale po to właśnie robi się proste układy zabezpieczające. Więc jeśli piszesz kolego, że podłączyłeś coś na odwrót - to co masz na myśli??? spróbuj to sobie skonkretyzować i podłącz np jedno czy kilka wyjść LPT na których jest akurat stan wysoki - do MASY i poczekaj chwileczkę ;) .... zapewniam cię, że poczujesz po niedługim czasie lekki swąd i uwierzysz, że "idzie spalić" ;)... być może gdy akurat podłączałeś jak mówisz odwrotnie przypadkowo nie trafiło wyjście na wyjście z odwrotnym stanem czy zasilanie na wyjście w stanie niskim lub odwrotnie. To jest tylko elektronika - a nie ruletka "idzie czy nie idzie" ;)

    pozdrówka
  • #17 3243542
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    Witam,

    oczywiście, że można - ja prawie do każdego AVRka daję 33pF albo coś co mam pod ręką 22pF lub 27pF - to obojętne. Jeszcze się nie spotkałem, żeby nie działało przy takich pojemnościach. To nie jest aż taka krytyczna wartość.

    hmmm a co do schematu to może zainteresuje cię o wiele prostsze rozwiązanie??? jak to:

    http://grzesiek21.republika.pl/porty_pc_zastosowania.htm

    ja właśnie parę dni temu sam napisałem sobie programik w Delphi do obsługi tego czujnika i odbieram kody pilotów w RC5 , SIRC(Sony) i SPACE(JVC) ;) (chociaż procedury jeszcze nie są zoptymalizowane pod kątem czasów i nieraz wpada błędny kodzik - ale narazie nie mam potrzeby zastosowania tego więc nie walczyłem z tym dalej)

    poza tym (jeśli już używamy uC do tego) to lepiej chyba użyć zwykłego MAXa232 aby dopasować sygnały do RSa zamiast tego wzmacniacza bo przy okazji w łatwy sposób możesz komunikować się w 2 strony z prockiem jak już to robisz a wtedy możesz pokusić się o coś więcej w programie ;)

    jednak zrobienie odbiornika na zewnątrz PC na procku to fajny pomysł bo lepiej mozna się własnie dopasować jesli chodzi o czasy do różnych standardów przesyłania. Właśnie coś takiego też zrobiłem i działa bezbolesnie - dodaję tylko jeszcze powoli obsługę innych standardów niż te które wymieniłem powyżej. A robię to na 8nóżkowym ATTiny15 :) żeby mniej mniejsca stracić. Kontakt u mnie jest własnie z PC przez RS w 2 strony i przez MAX232

    no chyba, że ci tylko zależy żeby szybko zrobić ten gotowy układzik i wgrać program już gotowy w HEXie bo sam jeszcze nie programujesz - to rozumiem ;)

    pozdrówka
  • #18 3243711
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #19 3243761
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    no tak - ale ważne pytanie! - sam sobie piszesz program do uC i na PCta???

    bo jeśli nie - to albo skorzystaj z tego gotowca który pokazałeś na początku ponieważ ktoś już dla niego zrobił soft i jak coś pozmieniasz to może się potem okazać, że gdzieś będą jakieś błędy. (chociaż ja też już się naciąłem kilka razy na takie gotowce z netu a potem okazywało się że jesli chodzi o prawidłowe działanie to bywa różne).

    Z drugiej strony ten schemat który ja ci podałem działa na 100% bo sam to oprogramowywałem że tak powiem ;) ale z tego co gościu pisze to działa on też z różnymi programami jak grider chyba czy coś takiego - nie wiem dokładnie bo nigdy nie używałem takich gotowców. A poza tym ten drugi - przeze mnie zaproponowany link ze schematem - nie sądzisz że jest o wiele prostszy i szybszy do wykonania jesli chcesz szybko uzyskać gotowy efekt a nie sam się bawić w programowanie??? ;)

    natomiast jeśli sam piszesz program do uC oraz sam piszesz program obsługi na komputer PC to polecam jak mówiłem nieco zmodyfikować ten pierwszy pomysł dzięki czemu będziesz miał możliwość nabrania większego doświadczenia z programowaniem uC itp ;)

    pozdrawiam
  • REKLAMA
  • #20 3254089
    Konto nie istnieje
    Konto nie istnieje  
  • #21 3254126
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    rozumiem, że złożyłeś ten schemat który na początku podałeś w linku tak? z tym wzmacniaczem operacyjnym dopasowującym sygnał do RS232??? jeśli tak - to weź pod uwagę jedną rzecz - wprawdzie procesorki AT90S2313 i ATTiny2313 mają identyczne wyprowadzenia i są prawie kompatybilne jeśli chodzi o software - to jednak nie do końca. Niektóre rzeczy się różnią - i może tak się zdarzyć, że program pracujący na AT90S2313 nie będzie pracował na ATTiny2313 i odwrotnie. Skoro robisz gotowca i sam nie piszesz do niego programu to musisz zastosować dokładnie te same elementy - szczególnie w tym przypadku uC AT90S2313.

    pozdrawiam

    Dodano po 3 [minuty]:

    ooo przepraszam, zajrzałem jeszcze raz na tą twoją stronkę ze schematem i zobaczyłem że jest tam kod źródłowy napisany w Bascom'ie. Więc może uda ci się to zapuścić na ATTiny ale musisz ten kod wrzucić do Bascom'a i skompilować go ponownie dla procesora ATTiny2313. Wtedy jest szansa że to ruszy. A ty chyba wziąłeś HEXa i zaprogramowałeś nim ATTiny? czy się mylę?
  • #22 3254273
    Konto nie istnieje
    Konto nie istnieje  
  • #23 3254402
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    ... Jak w Bascom'ie puścisz kompilację dla nowego procka to już będzie zmartwieniem kompilatora, żeby pozamieniać odpowiednie polecenia które były na AT90S2313 na takie które pójdą na ATTiny2313. Gdyby to było źródło w asemblerze to wtedy trzeba by było samemu przeanalizować program i dokonać odpowiednich korekt jeśli błyby takie potrzebne. No chyba że nadal coś nie tak zrobiłeś jeśli chodzi o samo urządzenie ale jak mówię po przekompilowaniu jeśli przejdzie ono poprawnie dla ATTiny będziesz miał ten problem z głowy, że coś może nie działać w programie ;)

    pozdrówka
  • #24 3275162
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #25 3276369
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    wiesz co?.... może być tak (to największy ból), że ten program który masz z tej stronki posiada jednak jakieś błędy, które powodują, że to nie działa. Zakładając, że po 1000ckroć sprawdziłeś hardware i jest ok - to teraz czeka cię żmudna robota - musisz sobie przeanalizować krok po kroku co robi ten program - ew go modyfikować pod drodze tak aby sprawdzać sobie do którego miejsca działa poprawnie.

    pozdrawiam (mówiłem tak to bywa z tymi extra przepisami z netu - jak wspominałem sam się kiedyś tak naciąłem na super konwerter do PCta z RS232 na RS485 - gostek rozpisywał się jak to działa wspaniale - tylko nigdzie nie pisnał ani słówkiem, że nie osiąga większej transmisji niż 9600 a i ta leci często z ogromną ilością błędów. A wszystko jak potem sam to przeanalizowałem i podpytałem tutaj ludzi o niektóre szczegóły, wszystko przez rodzaj transoptorów jakie zastosował. Piszę o tym po to, żebyś zobaczył jak to czasem bywa i nastawił się na to, żeby samemu robic sobie czasem rzeczy od początku do końca. Wydaje ci się, że to zabierze za dużo czasu żeby się tego wszystkiego nauczyć itp a tymczasem zobacz ile czasu stracisz na próbie uruchamiania jakichś niesprawdzonych rozwiązań. To nie jest takie trudne, skoro już sam tyle robisz - tzn hardware, i próbujesz porgramować to warto pójść o kroczek dalej - uda się!!! ;)

    pozdrówka
  • #26 3318336
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #27 3318752
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    port D (czyli jak ty nazywasz piny PD) pełni podobną rolę jak port B. A to czy poszczególne piny portu są wyjściem czy wejściem zależy tylko od ich zaprogramowania odpowiedniego - to taka ogólna uwaga. Natomiast rzeczywiście jest jakiś mega babol ;) co potwierdza tylko moją teorię pisaną w postach wyżej , że tak jest z tymi wspaniałymi rozwiązaniami z netu czaem ;) ...

    ... OK układ IC2 wbrew temu co myślisz jest podłączony dobrze ponieważ jego wejście podłączone jest do portu PD2(TxD) czyli wyjścia USART (RS232 w tym przypadku).
    Odbiornik TFMS też jest dobrze przylutowany.
    Natomiast zastanawiasz się dlaczego dioda nie mryga ;) ? przecież jej mryganie nie odbywa się jakoś automatycznie poza programem. Trzeba to zjawisko zaprogramować i przeanalizować tę część programu która ew za to odpowiada. I tu własnie wydaje się, że leży pierwszy problem poważny z tym projektem. Bo rzeczywiście jak sam zauważyłeś występują tam polecenia takie jak "Set Portb.7" ale też "If Pinb.7 = 0" ..... wynikałoby z tego, że ta własnie dioda LED powinna być podłączona do pinu19 uC czyli PB7 (zresztą zobacz sam w listingu całego programu jakie niedbalstwo - raz ktoś tam używa Pinb.0 a innym razem Pinb.7 ... albo można wszędzie w programie zmienić polecenia "Set Portb.7" na "Set Portb.0" oraz "Pinb.7" na "Pinb.0" - wtedy zobaczysz czy to jest tylko ten problem z całym układem. Bo przecież wynika z twojego opisu, że jeszcze powinien układ wysyłać odebrany kod RC5 na łącze RS232 (a działa ci terminal? tzn odbierasz coś na terminalu w PCcie???)

    ... więcej się nie wypowiem na temat bascoma bo nie robię praktycznie nic w tym języku. Z opisów tylko tu ludzi na elektrodzie to wielu się uskarża, że bascomowe GetRC5 jest bardzo zawodne.

    pozdrawiam
  • #28 3318824
    Konto nie istnieje
    Konto nie istnieje  
  • #29 3318841
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    proponuję ci w celu sprawdzenia komunikacji z PC narazie zamiast testować griderem (bo może też tu można popełnić jakies błędy przy instalacji - nie znam tego softu) to podłącz się do tego swojego urządzenia zwykłym terminalem z Windy albo jakimś innym dowolnym prostym programem terminalowym zassanym z netu. Ustaw parametry terminala na 9600 itp i poprostu zobacz czy odbierane są jakieś znaki. Ten układ i program powinien tak działać, że jak wciskasz klawisz pilota i zostanie prawidłowo zdekodowany sygnał to jest on następnie automatycznie wysyłany na RS232 czyli wpadnie to do terminala... a jak w terminalu nic się nie pojawi to będziesz musiał próbować rozwiązać i ten dodatkowy problem. Jeśli natomiast będą się pokazywały dane w terminalu to z kolei będziesz wiedział, że musisz sobie z griderem jakoś poradzić czy go dobrze skonfigurować...

    pozdr
  • #30 3319031
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

✨ Dyskusja dotyczy podłączenia mikrokontrolera ATTINY2313 do komputera w celu programowania i realizacji czytnika kodów RC5 z pilota IR. Poruszono kwestie budowy programatora SPI, najczęściej opartego na porcie LPT, z zaleceniem użycia programatora STK200/300 dla ochrony portu LPT i wygody programowania. Wskazano na konieczność użycia skompilowanego pliku HEX, a nie listingów źródłowych, oraz na poprawne ustawienie fusebitów i podłączenie kwarcu do mikrokontrolera. Omówiono problemy kompatybilności między AT90S2313 a ATTINY2313, zwłaszcza konieczność rekompilacji kodu w Bascomie dla ATTINY2313. Podkreślono znaczenie prawidłowego skonfigurowania portów mikrokontrolera (wejścia/wyjścia) oraz poprawnej obsługi sygnałów IR i transmisji RS232, w tym stosowania wzmacniacza operacyjnego lub układu MAX232 do dopasowania poziomów sygnału. Zasugerowano testowanie komunikacji za pomocą terminala szeregowego (np. SerialWatcher) zamiast bezpośrednio z oprogramowaniem Girder, aby zweryfikować odbiór danych. Wskazano na możliwość stosowania kondensatorów o pojemnościach 22pF lub 33pF zamiast 27pF przy kwarcu. W dyskusji pojawiły się także przykładowe fragmenty kodu w Bascomie do obsługi protokołu RC5 oraz uwagi dotyczące zapisu i odczytu pamięci EEPROM. Poruszono również temat uszkodzeń nóżek mikrokontrolera i modyfikacji schematów. Na koniec zaproponowano alternatywne, prostsze rozwiązania do odbioru sygnałów IR oraz wskazano na dostępność gotowych programatorów i schematów w internecie, w tym programatora opartego na 4 rezystorach podłączonych do portu LPT.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA