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

[Rozwiązano] AtMega16a nie reaguje po zmianie prędkości zegara - jak odblokować?

Press 04 Kwi 2018 21:07 3972 6
REKLAMA
  • #1 17149271
    Press
    Poziom 24  
    Witam

    Podczas próby programowania AtMega16a programatorem MK II pojawia mi się coś takiego:
    AtMega16a nie reaguje po zmianie prędkości zegara - jak odblokować?
    Od razu uprzedzam pytania i odpowiadam, że nie grzebałem w ustawieniach FUSEBIT'ów.
    Sytuacja posypała się w czasie eksperymentów z prędkością programowania.
    Wcześniej uP programował się prawidłowo. Kiedy zszedłem z zegarem poniżej 1000 wysypało się i to trwale.
    Programator sprawny, bo inne uP programuje.
    Czy jest jakiś sposób/pomysł na reanimację uP bez budowy/kupowania programatora wysokonapięciowego?
  • REKLAMA
  • Pomocny post
    #2 17149541
    tmf
    VIP Zasłużony dla elektroda
    Nie jestem pewien, czy to procesor jest zablokowany, czy raczej problem z podłączeniem ISP. Dla zablokowanego procesora odczyt sygnatury zwracza raczej 0xffff, a nie tak jak u ciebie 00006. Reanimować możesz na dwa sposoby (o ile to zablokowany MCU) - pierwszy to podłączyć zegar, np. 1-8 MHz do wejścia XTAL MCU. Przebieg można wygenerować np. programowo przy pomocy innego procesora. Drugi sposób to podłączyć programator JTAG (o ile wcześniej sobie nie wyłączyłeś tego interfejsu). JTAG nie potrzebuje działającego zegara procesora, bo sam sobie go generuje i powinno dać się przeprogramować układ.
    Na przyszłość pamiętaj, że częstotliwość programowania musi być co najmniej 4-krotnie mniejsza niż taktowanie MCU (w trybie ISP). Wynika z tego, że może być nawet bardzo, bardzo mała i nie powinno to mieć wpływu na programowanie. Gorzej jest jeśli sam MCU jest taktowany wolno (np. z rezonatora zegarkowego), wtedy trzeba zwalniać programowanie. BTW, skoro masz ISP MkII to dlaczego do programowania nie używasz Atmel Studio?
  • REKLAMA
  • #3 17151141
    Press
    Poziom 24  
    Dziękuje Koledze za podpowiedź. Jak się człowiek wkurzy to najtrudniej wymyślić najprostsze ;)

    Pomogło oczywiście podłączenie zewnętrznego sygnału taktującego.
    Poprzestawiały sie FUSY odnośnie BOD na 4V, a uP zasilony z 3V3.
    Oraz taktowanie przestawiło się na zewnętrzny RC zamiast na zewnętrzny rezonator kwarcowy.

    Cytat:
    Na przyszłość pamiętaj, że częstotliwość programowania musi być co najmniej 4-krotnie mniejsza niż taktowanie MCU (w trybie ISP). Wynika z tego, że może być nawet bardzo, bardzo mała i nie powinno to mieć wpływu na programowanie. Gorzej jest jeśli sam MCU jest taktowany wolno (np. z rezonatora zegarkowego), wtedy trzeba zwalniać programowanie.


    Tak. O tym wiem i pamiętam. Tylko, że problem właśnie pojawił się gdy robiłem eksperymenty z jak najniższa szybkością programowania. I to właśnie mnie zaskoczyło, bo wyszedłem z podobnego założenia, że w dół może być dowolnie wolno.

    Cytat:
    BTW, skoro masz ISP MkII to dlaczego do programowania nie używasz Atmel Studio?


    A no bo no... ;)
    Ja z tych leniwych "dzieci", którym nie po drodze z grubą książką do C i translatorem z angielskiego ;)
    Zaczęło się od Basica w Commodore C64. Potem liznęło Turbo Pascala i Delphi.
    Po tym wszystkim C to język "bardzo obcy" więc został Bascom i jego narzędzia zintegrowane.
  • REKLAMA
  • Pomocny post
    #4 17151155
    tmf
    VIP Zasłużony dla elektroda
    Press napisał:
    A no bo no... ;)
    Ja z tych leniwych "dzieci", którym nie po drodze z grubą książką do C i translatorem z angielskiego ;)
    Zaczęło się od Basica w Commodore C64. Potem liznęło Turbo Pascala i Delphi.
    Po tym wszystkim C to język "bardzo obcy" więc został Bascom i jego narzędzia zintegrowane.

    Widzę, że kolega przeszdł podobną drogę. Też po Turbo Pascalu wiele, wiele lat temu, kiedy odpaliłem po raz pierwszy Borland C, to czułem pewne zagubienie. Ale przeszło po kilku dniach i do Pascala już nie wróciłem.
  • REKLAMA
  • #5 17151171
    Konto nie istnieje
    Konto nie istnieje  
  • #6 17151251
    grko
    Poziom 33  
    nowyARM napisał:

    Należy wiedzieć, ze trzy ostatnie pozycje to C.


    No nie za bardzo się to zgadza, bo:
    1. Arduino to IDE z bibliotekami napisanymi w C++.
    2. HAL to biblioteka dla rodziny procesorów STM32xx napisana w C.
    3. C to język programowania.

    Pomieszane jest środowisko z bibliotekami oraz językami programowania. To trochę jak porównywanie jabłek z gruszkami i bananami.
  • #7 17151326
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA