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

Czy piny programowania ATmega 8 mogą działać jako zwykłe porty I/O?

Tanaka_san 15 Mar 2006 08:10 1500 13
  • #1 2415942
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    wiem ze to trywialne ale zbudowalem robota i niewiem czy wyprowadzenia do programowania mozna uzywac tez jako normalnych portow, tzn w momnecie programowania uklad wystawia reset i odbywa sie programnowanie jezeli jednak resetu niema to czy te wyprowadzenia moga dzialac jako normalne porty do momentu kolejnego reseta?? prosze o odpowiedz
  • #2 2416063
    myrcioch
    Poziom 18  
    Posty: 150
    Pomógł: 30
    Ocena: 5
    Tak, ale trzeba pamiętać o tym, żeby sposób, w jaki użyjesz tych wyjść nie zablokował Ci możliwości zaprogramowania.
  • #3 2416072
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    Reseta nie możesz używać jako portu I/O , tylko jako reset (jakprzestawisz fusebity od reseta to już nie zaprogramujesz procka przez ISP).

    Co do innych wyjść ISP to możesz je używać, tylko najlepiej na czas programowania odseparuj je od układu/ISP (jakaś zworka), bo inaczej procesor może się nie programować
  • #4 2416487
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    hmm odpowiedz jest tylko czesciowa, pozlusze sie wiec obrazem:

    do portow programowania mam podlaczone diody led ktore sa zalaczane pod wplywem programu, reset jest resetem i tam niema nic podlaczone (tzn sam czysty reset), w momencie gdy reset niejest wlaczony to diody sa sterowane przez porty programowania, w momencie jak pojawaia sie reset wymuszony przez programator uklad przechodzi automatycznie w tryb programowania i wyjscia sterujace didoami automatycznie staja sie wyprowadzeniami porgramataora. Czy to sie zgadza?
  • #5 2416620
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    Tak, od strony uC tak.
    Natomiast od strony programatora sygnał rozchodzi się pomiędzy uC a diody.. jeżeli za mały sygnał pójdzie na uC to może się okazać, że zamiast programowania się uC będą Tobie świecić diody =)

    PS.Jezeli w układzie wyprowadzasz wyjście USART, to może zastanów się nad bootloaderem, który umożliwi Tobie programowanie uC poprzez port COM w komputerze i pozbycie się problemów z ISP (procesor programujesz przez ISP tylko raz - żeby wgrać program bootloadera, potem programujesz go poprzez COMa).
  • #6 2416714
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    przyznam ze niejestem geniuszem chce wiedziec co i jak bo programuje robota a pyrzyda mi sie dodatkowe wyprowadzenia dlatego mojhe pytanie;/ czyli moze wystapic problem ze zaprogramuje robota na swiecenie diod i on juz zawsze bedzie swiecil i juz nigdy niebedize go mozna zaprogramowac?
  • #7 2416761
    Genario
    Poziom 11  
    Posty: 73
    Ocena: 4
    Podlacze sie do tematu bo tez mam pytanie zwiazane z resetem.
    Powiedzmy ze zbudowalem uklad ktory zaswieca diode co minute (glupi, wiem, ale to tylko przyklad i nie o to teraz chodzi :) ).
    Czy jest mozliwosc ze cos sie z ukladem stanie po jakims czasie i zajdzie np. koniecznosc zresetowania mikrokontrolera? W zwiazku z tym - jak to zrobic? Dolozyc przycisk w ukladzie podlaczony do portu z resetem?
  • #8 2416834
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    Genario:poczytaj na temat watchdog, brownout itp. , większość mikrokontrolerów potrafi samodzielnie wyjść z takich stanów, o ile go odpowiednio zaprogramujesz

    Tanaka:NIE, program na mikrokontrolerze nie ma nic do programowania ISP. Jedyny sposób "wyłączenia" ISP to:

    -złe ustawienie fusebitów (np zmienienie reseta na port I/O co uniemożliwia programowanie poprzez ISP)

    -doprowadzenie do portów wykorzystywanych przez ISP jakiegoś sygnału, który będzie zakłócał proces programowania (dlatego najpewniej jest między urządzenia podpięte do uC a uC wsadzić zworke, którą na czas programowania wyciągniesz i tym samym odetniesz te urządzenia na czas programowania od portu.
  • #9 2416836
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Jeżeli chcesz resetować układ to podłącz przycisk. Jeżeli chcesz aby w wyniku zakłócenia (zawieszenia się) sam się zresetował użyj watchdog'a.
  • #10 2416916
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    ok ostatnie pytanie: niestosuje zworki ale ma przycisk reset wyprowadzony, w momencie gdy programator niechce dzialac bo zaklucaja go diody wciskam reset recznie i jest ok ?
  • #11 2417097
    MirekCz
    Poziom 35  
    Posty: 2220
    Pomógł: 330
    Ocena: 62
    Ale przecież diody masz na portach miso/mosi/sck a nie reset, więc co ma piernik do wiatraka?

    A reset podłącz do VCC przez rezystor 10k , bo inaczej jak wsadzisz programator ISP to jego reset będzie na stałe przyłączony do VCC (jeżeli nie masz rezystora między VCC a Reset)
  • #12 2417572
    Tanaka_san
    Poziom 14  
    Posty: 146
    Pomógł: 5
    Ocena: 2
    widze ze sie nierozumiemy chodzi mi o sterowanie czyli wykozystanie wyprowadzenia jako wejscie lub wyjscie sterowannie edem to tylko przyklad, pozatym reset mam wyprowadzony jako przycis i jest tez podlaczony pod programator
  • #13 2433920
    cool_spawacz
    Poziom 12  
    Posty: 18
    Pomógł: 1
    Tanaka słuchaj:

    portów od ISP mozna użyć jako I/O pod warunkiem ze zrobisz przepinkę na plycie tzn. jesli chcesz wrzucic program to odpinasz linie od tych diod i przepinasz do złącza ISP...wgrasz program i znow przepinka odpinasz je od złącza ISP i łączysz do tych obwodów z diodami...najwygodniejsze do tego bedą piny ze zworkami.
    Reseta nie da sie tak wykorzystac jako port I/O ale w Twoim wypadku, jesli masz przycisk to i tak z głowy...
  • #14 2435809
    midas78
    Poziom 19  
    Posty: 360
    Pomógł: 12
    Ocena: 12
    U mnie od lat ISP chodzi równolegle z LCD na tych samych pinach. Jedynie podczas programowania na LCD pojawiają się krzaki. Ale to lepiej bo widać, że się programuje...

Podsumowanie tematu

LABEL_AI_GENERATED
Piny programowania ISP mikrokontrolera ATmega8 (MISO, MOSI, SCK) mogą być używane jako zwykłe porty I/O pod warunkiem, że podczas programowania zostaną odseparowane od podłączonych do nich elementów (np. diod LED) za pomocą zworek lub innych rozwiązań, aby nie zakłócać procesu programowania. Reset (pin RESET) nie może być używany jako port I/O, ponieważ pełni funkcję wymuszania restartu układu i jego zmiana fusebitami na port I/O uniemożliwia programowanie przez ISP. W przypadku problemów z programowaniem spowodowanych podłączonymi elementami na liniach ISP, można ręcznie zresetować mikrokontroler przyciskiem podłączonym do pinu RESET, co często rozwiązuje zakłócenia. Dodatkowo zaleca się stosowanie rezystora podciągającego 10kΩ między RESET a VCC, aby zapewnić stabilność sygnału resetu. Warto rozważyć użycie bootloadera i programowanie przez port szeregowy (COM), co eliminuje problemy z ISP. Mikrokontroler posiada także funkcje watchdog i brownout, które umożliwiają automatyczne resetowanie w przypadku zawieszenia lub spadku napięcia. Praktyczne rozwiązania obejmują stosowanie zworek do odłączania elementów od linii ISP podczas programowania oraz podłączanie przycisku resetu dla ręcznego restartu układu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA