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 działa programowanie ISP ATmega16 bez zasilania z programatora?

fliper_katrill 03 Mar 2009 13:07 2639 9
REKLAMA
  • #1 6230077
    fliper_katrill
    Poziom 20  
    Posty: 590
    Pomógł: 15
    Ocena: 28
    Absolutnie nie pytam o połączenia pinów i sposób programowania z wykorzystaniem software'u. Pytanie brzmi: Podłączam przewody od programatora na wyłączonym napięciu zasilania zmontowanego układu(nie podłączam gnd i vcc z programatora) potem"klik" włączam urządzenie właściwe, co robi moje urządzenie, nasłuchuje czy wykonuje program który już jest w procku? Czy po podłączeniu pinów od razu włączam urządzenie ( i nic nie zadziała z modułów do niego podłączonych np. nie mrugnie żarówka podłączona, LED , silnik, cokolwiek)? Skąd procek wie że ma się programować a nie wykonać programu z zawartości pamięci procka? (pewnie wynika to z datasheetu)
  • REKLAMA
  • Pomocny post
    #2 6230095
    _Robak_
    Poziom 33  
    Posty: 2208
    Pomógł: 231
    Ocena: 29
    Tak wszystko jest w datasheecie ;) Ale generalnie linia reset sluzy do wprowadzenia procka w stan programowania.
  • REKLAMA
  • Pomocny post
    #3 6236379
    Konto nie istnieje
    Poziom 1  
  • #4 6256682
    fliper_katrill
    Poziom 20  
    Posty: 590
    Pomógł: 15
    Ocena: 28
    czyli można powiedzieć że należy podpinać napięcia z programatora do układu nie podłączając go do własnego zasilania? a co jeśli piny programujące są wykorzystane do sterowania urządzeniami zewnętrznymi (przykładowo buzzer, ledy)? pewnie to będzie piszczeć i błyskać..... dochodzę do wniosku że radzicie mi najlepiej podłączyć sam uC pod programator po uprzednim wyciągnięciu go z układu i podłączeniu rezonatora z kondensatorkami :) bo tak będzie bezbłędnie i najprościej, czy tak?
  • #5 6257469
    _Robak_
    Poziom 33  
    Posty: 2208
    Pomógł: 231
    Ocena: 29
    Nie wiem po co chcesz wyciagac procka skoro sama nazwa ISP mowi, In System Programming
  • REKLAMA
  • #6 6257542
    fliper_katrill
    Poziom 20  
    Posty: 590
    Pomógł: 15
    Ocena: 28
    wnioskuję z wypowiedzi że system ten ma parę ograniczeń i szczerze mówiąc mi to jest mi obojętne jakim sposobem zaprogramuję , mogę wyciągać byleby poprawnie działało, bo jak narazie w moim przypadku mam więcej przygód z ISP niż z programowaniem "standardowym" :)
  • #7 6261063
    Konto nie istnieje
    Poziom 1  
  • Pomocny post
    #8 6261131
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    Na samym początku napisałeś, że nie podłączasz GND i VCC z programatora. GND MUSISZ podłączyć bezwzględnie (wszystkie sygnały są przecież względem tej masy, jeżeli jej nie podłączysz, to żadnym cudem działać nie będzie). A VCC to już zależy od programatora. Niektóre programatory zasilają się z układu, niektóre potrafią zasilać układ. Sam musisz się zobaczyć jak jestw twoim przypadku, ale pamiętaj, że zarówno układ jak i programator MUSZĄ być zasilane.

    Dodano po 1 [minuty]:

    Aha, sekwencja wejścia w tryb programowania jest opisana w datasheecie. Generalnie musi być podany RESET, a po nim odpowiedni stan pinów programujących, czy od razu "wklokowany" jakiś bajt, nie pamiętam.
  • Pomocny post
    #9 6261821
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    fliper_katrill napisał:
    czyli można powiedzieć że należy podpinać napięcia z programatora do układu nie podłączając go do własnego zasilania? a co jeśli piny programujące są wykorzystane do sterowania urządzeniami zewnętrznymi (przykładowo buzzer, ledy)? pewnie to będzie piszczeć i błyskać..... dochodzę do wniosku że radzicie mi najlepiej podłączyć sam uC pod programator po uprzednim wyciągnięciu go z układu i podłączeniu rezonatora z kondensatorkami :) bo tak będzie bezbłędnie i najprościej, czy tak?

    Jeśli programujesz po ISP i używasz programatora zgodnego z STK200 musisz podłaczyć i masę i zasilanie pod swojego ATMega16. Jak kolega wcześniej pisał pozostawienie programatora podpiętego do układu może powodowac jego nieprawidłowe działanie. Z mojej praktyki wynika że napewno układ się wiesza kiedy wyłacza się komputer z którego programujesz Atmega i to wszystko. Czasem może byc zakłócona praca SPI albo LCD jeśli jest podpięty pod PORTB. Można się przed tym zabezpieczyć kiedy steruje się pracą peryferii przez jakiś port trójstanowy który jest załaczany poziomem HIGH a wyłaczany LOW wówczas podczas programowania wszystko co jest podpięte do procka zostaje odłaczone od niego z wyjątkiem programatora - sterowanie jest wtedy podpiete pod linię RESET. Albo też MISO,MOSI,SCK puszczać do peryferi przez rezystor o wartości ok 1-2 k. Zakłócenia dotyczą głownie odczytu danyz z procesora.
  • REKLAMA
  • #10 6266176
    fliper_katrill
    Poziom 20  
    Posty: 590
    Pomógł: 15
    Ocena: 28
    Dziękuję wszystkim za udział w dyskusji, poddałem się , najważniejszą dla mnie była możliwość programowania. Złożyłem osobno podstawkę, trudno trzeba przedkładać, ale przynajmniej ten etap projektowania mam z głowy. Dla Panów po 3 pkt :)

Podsumowanie tematu

✨ Programowanie ISP mikrokontrolera ATmega16 wymaga podłączenia linii RESET, która wprowadza procesor w tryb programowania, zgodnie z opisem w datasheet. Podczas programowania zwykle podaje się zasilanie z programatora oraz łączy masę (GND), co jest niezbędne do prawidłowej komunikacji. Niepodłączenie GND uniemożliwia działanie sygnałów programujących. Zasilanie VCC może pochodzić z programatora lub układu, w zależności od typu programatora. Podłączanie programatora do układu z aktywnym zasilaniem może powodować błędy w pracy procesora i peryferiów, zwłaszcza gdy piny programujące są jednocześnie wykorzystywane do sterowania urządzeniami zewnętrznymi (np. LED, buzzer). W takich przypadkach zaleca się odłączenie programatora po zakończeniu programowania lub stosowanie dodatkowych elementów zabezpieczających, jak rezystory szeregowe na liniach MISO, MOSI, SCK lub sterowanie peryferiami przez porty trójstanowe. Najprostsze i bezbłędne programowanie uzyskuje się przez wyjęcie mikrokontrolera z układu i podłączenie go bezpośrednio do programatora wraz z rezonatorem i kondensatorami. ISP (In-System Programming) umożliwia programowanie w układzie, ale ma ograniczenia wynikające z współdzielenia linii programujących z funkcjami I/O.
Wygenerowane przez model językowy.
REKLAMA