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 wyłączyć Jtag'i w atmedze16 - USBasp - AVRdude?

Philut 04 Mar 2010 23:17 1952 6
REKLAMA
  • #1 7785153
    Philut
    Poziom 11  
    Witam!

    Mam od dłuższego czasu problem z wyłączeniem jtagów (piny PC2-PC5) w atmega16. Chce te piny używać jako zwykłe porty I/O. Używam programatora USBasp i korzystam z AVRdude przy zmianach jtag'ów (co mi się nie udaje). Do wgrywania programów korzystam z WinAVR i to chodzi bezbłędnie. Dowiedziałem się już że fabrycznie procek jest ustawiony tak: HFuse=0x99 a LFuse=0xE1. A Należy zmienić HFuse na 0xD9. Dodam w załączniku screnshota, żeby jakiś majster mi powiedział co tu nie gra:
    Jak wyłączyć Jtag'i w atmedze16 - USBasp - AVRdude?

    Czy mam coś źle zaznaczone czy wpisane? Bardzo proszę o pomoc!
  • REKLAMA
  • #2 7785484
    AVRowiec
    Poziom 18  
    Bit 6 highFuse ma być 1

    Dodano po 1 [minuty]:

    patrz datasheet str 260
  • REKLAMA
  • #3 7786330
    Philut
    Poziom 11  
    AVRowiec napisał:
    Bit 6 highFuse ma być 1


    Tak jest. Fabrycznie jest ustawiony na 0x99 - czyli 10011001
    chce wyłączyć jtag, czyli 6. bit zamienić na 1 - będzie 11011001 - 0xD9 i nie działa!

    Czy ja to w ogóle dobrze robię, że za pomocą AVRdude chce zmienić ustawienia procka, a potem - jak już będzie ustawiony chce wgrać program za pomocą Programmers Notepad [WinAVR]? Bo może tu tkwi mój błąd, że powinno się tylko z jednego programu korzystać?
  • REKLAMA
  • #4 7786674
    AVRowiec
    Poziom 18  
    Dobrze myślisz.
    PN(WinAVR) -> Make all a potem Program (i tu rusza do akcji avrdude)

    0xD9 jest ok.
    Napewno masz odpowiednio ustawione DDRy i PORT?

    Pokaż linijke avrduda ustawiającą fusy. Powinieneś mieć tam coś takiego:

    -U hfuse:w:0xD9:m


    BTW. ja nie używam do tego żadnego programu. Robie to z wiersza poleceń.
  • #5 7787050
    Philut
    Poziom 11  
    Porty mam na pewno dobrze ustawione, bo wgrywam na razie taki prymitywny program testujący, włączający po kolei diody i działają tylko te, które są sterowane z PC0 i PC1. Kolejne cztery (PC2-PC5) się nie świecą.
    Cytat:
    Pokaż linijke avrduda ustawiającą fusy. Powinieneś mieć tam coś takiego:

    Kod:
    -U hfuse:w:0xD9:m


    Nie rozumiem, takiej linijki nie widzę. Dałem screena, tak mam wszystko ustawione i taki komunikat mi się wyświetla. "AVRowiec" sprawdź proszę czy dobrze mam wszystko wpisane/zaznaczone.
    Pozdro!

    PS: Dobra już widzę, wyświetla mi się coś takiego:
    -U hfuse:w:D9 -e

    a kiedy zaznaczam VERIFY przy EEPROMie to wychodzi taki komunikat:
    reading input file "D9"
    error opening D9 auto detected as invalid format
    can't open input file D9: No such file or directory
    write to file 'D9' failed

    Dodano po 26 [minuty]:

    Jooooo! W końcu się udało! :D
    Kombinowałem przy tej "Command Line" i zmieniłem końcowe wartości na takie jak Ty mi podałeś i zaznaczyłem ptaszki write przy -LowFuse i hfuse i zadziałało. Mega wielkie dzięki AVRowiec! Pozdro!
  • #6 7787222
    AVRowiec
    Poziom 18  
    :)
    dlatego właśnie nie korzystam z tych graficznych nakładek na avrdude...
    Chyba mirekk36 napisał dobry program do takich zadań - z tego co patrzyłem jego program jak byk pokazywał wyjściową linijkę.
    tu jest link:
    https://www.elektroda.pl/rtvforum/topic1354542.html
  • REKLAMA
  • #7 7788458
    Philut
    Poziom 11  
    Ja już ten program tez miałem ściągnięty, ale chyba trzeba było dokupić jakieś rozszerzenie, żeby działał na atmedze16...
REKLAMA