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

Programowanie ISP w ATtiny13 przy oscylatorze 128kHz ?

al555 02 Lip 2005 11:47 9404 23
REKLAMA
  • #1 1623103
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    Witam,

    ktoś może programował przez ISP taki układ przy ustawionym oscylatorze na 128kHz.

    Orginalnie jest oscylator ustawiony na 9,6MHz, czy jak przestawie na 128kHz to potem będę mógł jeszcze coś zaprogramować (STK200) czy już nie ?

    Jakim programem programujecie ? (PonyProg, DybkowskiSoft, inne ?? )

    Pozdrawiam...
  • REKLAMA
  • Pomocny post
    #2 1623440
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Myślę, że z ISPprogiem nie powinno być problemu, wnioskując z załączonego obrazka (wykonany przeze mnie zrzut ekranowy programu). Częstotliwość można wpisać ręcznie. Oczywiście nie sprawdzałem (nie stosowałem jeszcze ATtiny13), więc nie mogę potwierdzić na 100%. Najprościej zapytać autora programu przez e-mail.
    Załączniki:
    • Programowanie ISP w ATtiny13 przy oscylatorze 128kHz ? ISPprog-LowOsc.png (6.4 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #3 1623653
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    Widziałem to 200k w tym programie ale to troche więcej niż 128k ;-)
    chyba jednak spróbuje, mam dwie takie kostki....
  • #4 1624439
    Machoni
    Poziom 13  
    Posty: 55
    Pomógł: 1
    Ocena: 1
    al555 napisał:
    Widziałem to 200k w tym programie ale to troche więcej niż 128k ;-)
    chyba jednak spróbuje, mam dwie takie kostki....


    Skoro widziales to 200k to pewnie widziales tez to 32k powyzej ;p
  • Pomocny post
    #5 1624500
    Gosuto Inu
    Poziom 11  
    Posty: 65
    Pomógł: 1
    ja sie pytalem i podobno na kazdej mniejszej od kwarcu powinno dzialac i mozna recznie wstukac Hz
  • REKLAMA
  • #6 1624836
    al555
    Poziom 20  
    Posty: 485
    Pomógł: 32
    Ocena: 8
    Chciałem zdać raport z prac :

    - udało mi się zablokować Attiny po ustawieniu CKSEL =11 ( checkboxy zaznaczone w programie Dybkowskiego)

    Do momentu zmiany ustawień, programowałem programem w ImageCraft ICC oraz programem Dybkowskiego. Zmieniałem bity CKSEL z b10 na b01 ( zmiana z 9.6MHz na 4.8MHz) oraz CKDIV8 - wszystko było w porządku.
    Układ mrugał sobie diodką (ok. 5Hz przy 9.6MHz oraz CKDIV8 zaprogramowanym) a po ustawieniu 128kHz całkiem zamilkł !
    W programi Dybkowskiego podczas prób odczytu sygnatury pojawiają się różne wartości sygnatury, ale żadna nie jest zgodna !
    Skoro ustawiłem 128kHz a CKDIV jest ustawiony w tym układzie, to 128kHz/8=16kHz. W programie można ustawić najmniej 32kHz a wszystkie wartości wpisywane ręcznie w tym polu są ignoworowane ( jestem prawie pewien tego ) stąd by wynikało że program jest za szybki !
    Ale to i tak nie daje odpowiedzi dlaczego układ nie staruje...

    Próbowałem następującej akcji reanimacyjnej
    - dodałem zewnętrzny generator do wejścia CLKI - nie pomogło
    - zwiększyłem napięcie zasilania z 3V na 5V - nie pomogło!
    - zmniejszałem wartości częstotliwości w programie Dybkowskiego do 1Hz - nie pomogło
    - kląłem, rzucałem płytką, krzyczałem - nie pomogło
    - zmieniłem na innny ( nowy ) egzemplarz - POMOGŁO !!

    Czytałem na AVRFreaks że można to usunąć w STK500 ustawiając jakąś opcję niskiej częstotliwości programowania ew. za pomocą HighVoltageISP ( jak się wkurze to podłącze zabwkę pod HV 220VAC - zobaczymy do jakiego stanu się zresetuje układ ... )

    A na powaznie - rozumiem że układ mógł nie chcieć się zaprogramować, ale dlaczego nie działa program. Jedna dioda powinna się zapalić zaraz po uruchomieniu a druga mrugać ...
    Ktoś ma jakiś pomysł, komuś udało się odpalić zabawkę na 128kHz ?? ...
  • #7 1624867
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Jeżeli nie zmieniałeś programu, to powinna dioda migać co 15s. Spróbuj go zresetować po włączeniu(Reset do GND), być może na tym oscylatorze długo wstaje.
    HiV polega na podłączeniu 12V pod RESET, programator do tego zbudował kolega crazy_phisic tutaj :
    https://www.elektroda.pl/rtvforum/topic72511.html#1444874
    warto też przejrzeć :
    https://www.elektroda.pl/rtvforum/topic309167.html
  • #8 4951102
    Gigantor
    Poziom 19  
    Posty: 388
    Pomógł: 1
    Ocena: 1085
    Nie udało mi się za pomocą ISPProga zaprogramować AtTiny13 na 128kHz, ale za to odblokowałem go. Trochę po czasie, ale oto przepis:

    - odpalamy ISPProga, ustawiamy f=32,768kHz,
    - zczytujemy błędną sygnaturę (ale różną od FF FF FF),
    - zczytujemy błędną sygnaturę (ale różną od FF FF FF),
    - zczytujemy błędną sygnaturę (ale różną od FF FF FF),
    - zczytujemy błędną sygnaturę (ale różną od FF FF FF),
    - ....
    - po kilkunastu/kilkudziesięciu próbach zczytamy poprawną,
    - próbujemy ustawić fusy, zapewne się nie uda,
    - zczytujemy błędną sygnaturę (ale różną od FF FF FF),
    - po kilkunastu/kilkudziesięciu próbach zczytamy poprawną,
    - próbujemy ustawić fusy, zapewne się nie uda,
    - zczytujemy błędną sygnaturę (ale różną od FF FF FF),
    -...
    - po pewnym czasie udaje się ustawić fusy,
    - przestawiamy proca na 9,6Mhz i śmigamy.

    Generalnie chodzi, by cykl:
    - sygnatura,
    - fusy.
    powtarzać do upadłego. Po setkach błędów w transmisji da rade.

    Cały cykl zajmuje ok 15min, zakończyłem go powodzeniem conajmniej 3x.


    edit

    Jeśli jeszcze to kogoś obchodzi...
    Wina leżała po stronie programatora (3 rezystory na LPT). Po zamianie na STK200 proc bez problemu da się programować pod ISPprogiem.
  • #9 5819070
    skynet_2
    Poziom 26  
    Posty: 1008
    Pomógł: 74
    Ocena: 9
    dzięki Gigantor za metodę ;) bo już miałem lecieć po drugiego attiny :D
    Zauważyłem że jak odczytamy sygnaturę i wykonamy ERASE to dużo łatwiej odczytać ponownie sygnaturę, dodatkowo zmieniłem z 32768 na 32000 czyli 1/4 prędkości i działało co 3 raz, 2 minuty i attiny znowu działa. Co ja bym zrobił bez tego forum :).

    Pozdrawiam
  • #10 6420259
    seba_x
    Poziom 31  
    Posty: 2071
    Pomógł: 29
    Ocena: 112
    no to ja jeszcze odświeżę , ustawiłem atmega48 na 128khz :

    Programowanie ISP w ATtiny13 przy oscylatorze 128kHz ?

    no i przestała się odzywać , ISP programer przy 32 768hz odczytuje błędne sygnatury ale czasami wykrywa uP jako : AT90S4433 , próbuję zmienić CKSEL0 ale nic to nie daje , wydaje mi się że zmienianie fusebitów po takim wykryciu raczej jest bez sensu .
    co mogę w takiej sytuacji jeszcze zrobić ?

    edit:
    -------------------------------------

    pomogło zmniejszenie napięcia zasilania z 5V na 3.5V , po kilku próbach przeprogramowałem fusy .

    po zmianie na [CKDIV8=1] uP działa bez problemu na 128kHz
  • #11 6420325
    Klima
    Poziom 31  
    Posty: 1535
    Pomógł: 112
    Ocena: 180
    W takich razach trzeba użyć np. AVRdude z STK200 (programator na LPT) i ustawić duży delay w opcjach avrdude. Zmiana fusów trwa wtedy kilkanaście sekund, ale działa.
  • REKLAMA
  • #12 8062067
    admirators
    Poziom 18  
    Posty: 486
    Pomógł: 13
    Ocena: 59
    Witam
    Ok. sposób faktycznie działa. Ale co dalej wchodzę w ustawienia fuse bitów i jak je ustawić aby otrzymać 9,6Mhz?
    Ukazuje mi się taki ekran jak w załączniku.

    Programowanie ISP w ATtiny13 przy oscylatorze 128kHz ?
  • #14 8065476
    admirators
    Poziom 18  
    Posty: 486
    Pomógł: 13
    Ocena: 59
    Ustawiam lfuse 0x6A hfuse:0x1f, następnie Program, mignie dioda na stk200 po chwili z powrotem ukazuje się ekran z załącznika w poprzednim poście (fuse bity nie zostały zmienione).
    Czy po poprawnym zaprogramowaniu fusebitów w isp programmer, tabelka powinna pokazywać zaprogramowane fusebity.
    Czy powinienem obniżyć zasilanie ATtiny13 do 2.5V przy programowaniu?
    Pozdrawiam
  • #15 8065690
    seba_x
    Poziom 31  
    Posty: 2071
    Pomógł: 29
    Ocena: 112
    Tak spróbuj , mi zmniejszenie zasilania pomogło odblokować kilka procków .
  • #16 8085545
    admirators
    Poziom 18  
    Posty: 486
    Pomógł: 13
    Ocena: 59
    seba_x napisał:
    Tak spróbuj , mi zmniejszenie zasilania pomogło odblokować kilka procków .


    Niestety nawet po obniżeniu napięcia nie mogę odblokować tego procka programatorem stk200.
  • #17 8086233
    kazkowicz
    Poziom 14  
    Posty: 105
    Pomógł: 5
    Ocena: 5
    Ostatnio uratowałem ATTINY13 z zegarem 128kHz dzielonym przez 8 (dzielenie włączyłem przypadkiem). Zasilanie ok. 3V, ISPProg na 32kHz, interfejs AVRISP na 74HC125. PonyProg już nie dawał rady - opcja ULTRASLOW nie działa. VERYSLOW dawało radę na 128kHz.
  • #18 8086667
    skynet_2
    Poziom 26  
    Posty: 1008
    Pomógł: 74
    Ocena: 9
    Wystarczy pominąć sprawdzanie sygnatury i wpisywać nowe fusy do skutku, przy 128KHz/8 weszło chyba za 12 razem.
  • #19 8089213
    admirators
    Poziom 18  
    Posty: 486
    Pomógł: 13
    Ocena: 59
    skynet_2 napisał:
    Wystarczy pominąć sprawdzanie sygnatury i wpisywać nowe fusy do skutku, przy 128KHz/8 weszło chyba za 12 razem.


    Weszło Pony progiem, czy ISPProgamer'em.
    W jaki sposób objawia się to, że fusy zostają ustawione w w/w programach.
    Pozdrawiam
  • #20 8089331
    skynet_2
    Poziom 26  
    Posty: 1008
    Pomógł: 74
    Ocena: 9
    admirators napisał:
    Weszło Pony progiem, czy ISPProgamer'em.
    W jaki sposób objawia się to, że fusy zostają ustawione w w/w programach.

    Wtedy ISPProgamer'em ale to nie ma większego znaczenia, ostatnio również AVRDude'm.
    Wpisujesz nowe fusy, do momentu odczytania poprawnej sygnatury 2 razy z rzędu, jeżeli odczytasz poprawną to odczytujesz fusy, jeżeli są takie jak wpisywałeś to uC odblokowany, ponieważ to jest dosyć męczące napisałem skrypt w pythonie który to załatwiał, jak go znajdę to udostępnię.
  • #21 8128662
    kazkowicz
    Poziom 14  
    Posty: 105
    Pomógł: 5
    Ocena: 5
    skynet_2 napisał:
    Wystarczy pominąć sprawdzanie sygnatury i wpisywać nowe fusy do skutku, przy 128KHz/8 weszło chyba za 12 razem.


    Może to kwestia przypadku, ale u mnie (128kHz/8 na3V/74HC125/ISPPROG) weszło za pierwszym razem bez pomijania sprawdzania sygnatury.
  • #22 8298980
    Morphix
    Poziom 10  
    Posty: 34
    Ocena: 2
    Witam.Zmieniłem częstotliwość mojego AtTiny13 z 9,6MHz na 128kHz ale nie dawałem żadnego dzielenia na 8.Fusy to: LOW 0x6A high:0xFF.I nie mogę teraz odczytać sygnatury, a próbowałem już około 100 razy.Dodam, że używam programatora UsbAsp i programu AVRdude.Wie ktoś czy dam radę przywrócić poprzednie bity z tym sprzętem? Bo nie wiem czy warto próbować.
  • #23 8299988
    skynet_2
    Poziom 26  
    Posty: 1008
    Pomógł: 74
    Ocena: 9
    Morphix skoro to USBasp, to spróbuj użyć zworki, która zmniejsza częstotliwości programowania.
  • #24 8300944
    Morphix
    Poziom 10  
    Posty: 34
    Ocena: 2
    Niestety zworkę miałem cały czas założoną.Bez niej nawet nie czyta sygnatury.

Podsumowanie tematu

✨ Dyskusja dotyczy programowania mikrokontrolera ATtiny13 przez interfejs ISP przy ustawionym niskim oscylatorze 128 kHz. Użytkownicy potwierdzają, że programowanie jest możliwe, choć wymaga cierpliwości i odpowiednich ustawień, zwłaszcza przy dzielniku częstotliwości CKDIV8. Programy takie jak ISPProg, PonyProg, AVRdude oraz DybkowskiSoft są wykorzystywane do programowania, przy czym niektóre z nich pozwalają ręcznie ustawić częstotliwość taktowania programowania (np. 32 kHz lub 32,768 kHz). W przypadku problemów z odczytem sygnatury i programowaniem fuse bitów przy niskiej częstotliwości, zaleca się powtarzanie operacji wielokrotnie, stosowanie niższego napięcia zasilania (około 3 V), użycie zewnętrznego bufora (np. 74HC125) oraz opóźnień w programatorze (np. opcja VERYSLOW w PonyProg lub ustawienia delay w AVRdude). Metoda polegająca na wielokrotnym odczycie sygnatury i zapisie fuse bitów do skutku pozwala na odblokowanie układu. Wskazano również narzędzia do kalkulacji fuse bitów, takie jak fusecalc. Problemy z programowaniem przy 128 kHz wynikają z ograniczeń prędkości programatora i wymuszają stosowanie wolniejszych trybów i dodatkowych zabiegów sprzętowych i programowych.
Wygenerowane przez model językowy.
REKLAMA