Fuse Bity w mikrokontrolerach AVR


9.66667
Ocena: None Średnia: 9.7 (3 głosujących)

Artykuł ten powstał aby w prosty sposób pokazać jak należy ustawiać bity konfiguracyjne w mikrokontrolerach AVR. Nie mam zamiaru opisywać dokładnie każdego bitu ale tylko te które są najbardziej istotne i najczęściej używane. Głownie zajmiemy się konfiguracją źródła sygnału zegarowego i jego dzielnika. Ponieważ konieczność zmiany wartości Fuse Bitow dla większości początkujących stanowi ogromne wyzwanie, opis będę się starał przedstawić jak najprościej. Mam nadzieje że zawarta tutaj wiedza okaże się pomocna i odpowie na szereg potencjalnych pytań.

Ustawienia bitów konfiguracyjnych możemy dokonać w wielu programach, takich jak: BASCOM, PonyProg, ISPProgrammer, AVRDUDE itp. W opisie będę używał zapisu takiego jak w karcie katalogowej, czyli "0" będzie oznaczało bit zaprogramowany a "1" - niezaprogramowany. Zamieszczone przykłady konfiguracji są zrzutami z programu Burn-O-Mat (nakładka na AVRDUDE), zaznaczony "ptaszkiem" bit oznacza ustawienie jego wartości na "0".

1. ATtiny 2313

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATtiny2313 są bity CKSEL3..0 = "0010", SUT1..0 = "10" oraz CKDIV8 = "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8, co daje w efekcie taktowanie 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 20MHz

Gdy chcemy używać zewnętrznego rezonatora kwarcowego to musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "101", dla 3-8MHz powinno być CKSEL3..1 = "110" a dla częstotliwości większych od 8MHz bity CKSEL3..1 mają być ustawione na "111".
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Wewnętrzny oscylator 4/8MHz

Wewnętrzny oscylator o częstotliwości 4MHz uruchamiamy ustawiając bity CKSEL3..0 rowne "0010" lub "0011", dla częstotliwości 8MHz zgodnie z kartą katalogową powinno to być "0100" lub "0101". Czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0 = "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Dzielenie częstotliwości zegara

Za dzielenie częstotliwości zegara przez 8 odpowiada bit CKDIV8, jest on najczęstsza przyczyna problemow z działaniem mikrokontrolera. Dzielenie jest aktywne jeśli CKDIV8 = "0"

Przykłady konfiguracji



2. ATMEGA 8

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATMEGA 8 są bity CKSEL3..0 = "0001" oraz SUT = "10". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i taktowaniem 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 8MHz

W tej wersji ustawień, gdy bit CKOPT= "1" zmniejszony jest pobór prądu przez mikrokontroler ale jednocześnie ograniczona została maksymalna częstotliwośc pracy. Dla zewnętrznego rezonatora kwarcowego musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "110", natomiast dla 3-8MHz powinno być CKSEL3..1 = "111"
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Zewnętrzny Rezonator Kwarcowy 1 - 16MHz

W tej wersji ustawień, gdy bit CKOPT= "0" maksymalna częstotliwośc pracy wynosi 16MHz. Dla zewnętrznego rezonatora kwarcowego musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "110", natomiast dla 3-16MHz powinno być CKSEL3..1 = "111"
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Wewnętrzny oscylator 1- 8MHz

Dla wewnętrznego oscylatora RC musimy przestawić bity CKSEL3..0 w zależności od częstotliwości jaką chcemy uzyskać. Dla 1MHz jest to CKSEL3..0="0001", dla 2MHz należy ustawić CKSEL3..0="0010", dla 4MHz ustawiamy CKSEL3..0="0011", natomiast dla 8MHz wymagana wartość to CKSEL3..0="0100".
W drugim kroku zajmujemy się ustawieniem bitów SUT1..0 które odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu SUT1..0 = "00". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie SUT1..0 = "01". Trzeci natomiast uruchamiamy stawiając SUT1..0 = "10", jest stosowany gdy napięcie zasilające powoli narasta.

Przykłady konfiguracji



3. ATMEGA 16(32)

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATMEGA 16(32) są bity CKSEL3..0 = "0001" oraz SUT = "10". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i taktowaniem 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 8MHz

W tej wersji ustawień, gdy bit CKOPT= "1" zmniejszony jest pobór prądu przez mikrokontroler ale jednocześnie ograniczona została maksymalna częstotliwośc pracy. Dla zewnętrznego rezonatora kwarcowego musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "110", natomiast dla 3-8MHz powinno być CKSEL3..1 = "111"
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Zewnętrzny Rezonator Kwarcowy 1 - 16MHz

W tej wersji ustawień, gdy bit CKOPT= "0" maksymalna częstotliwośc pracy wynosi 16MHz. Dla zewnętrznego rezonatora kwarcowego musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "110", natomiast dla 3-16MHz powinno być CKSEL3..1 = "111"
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Wewnętrzny oscylator 1 - 8MHz

Dla wewnętrznego oscylatora RC musimy przestawić bity CKSEL3..0 w zależności od częstotliwości jaką chcemy uzyskać. Dla 1MHz jest to CKSEL3..0="0001", dla 2MHz należy ustawić CKSEL3..0="0010", dla 4MHz ustawiamy CKSEL3..0="0011", natomiast dla 8MHz wymagana wartość to CKSEL3..0="0100".
W drugim kroku zajmujemy się ustawieniem bitów SUT1..0 które odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu SUT1..0 = "00". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie SUT1..0 = "01". Trzeci natomiast uruchamiamy stawiając SUT1..0 = "10", jest stosowany gdy napięcie zasilające powoli narasta.

Interfejs JTAG

Jeżeli bit JTAGEN="0" (zaprogramowany) wtedy piny PORTC.5 - PORTC.2 stanowią wyjście interfejsu JTAG i są na stałe podciągnięte do +VCC. Nie działaja one wtedy jako zwykłe piny (nie działa konfiguracja w programie ustawiająca je w roli wejść lub wyjść) i będzie to z pewnością przyczyną problemów, gdy właśnie te wyprowadzenia zostaną użyte jako wejścia lub wyjścia projektowanego systemu mikroprocesorowego. Aby wspomniane wyprowadzenia zachowywały się jak pozostała część portu C konieczne jest wyłączenie interfejsu JTAG poprzez ustawienie JTAGEN="1"

Przykłady konfiguracji



4. ATMEGA 162

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATMEGA 162 są bity CKSEL3..0 = "0010", SUT1..0 = "10" oraz CKDIV8 = "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8, co daje w efekcie taktowanie 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 16MHz

Gdy chcemy używać zewnętrznego rezonatora kwarcowego to musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "101", dla 3-8MHz powinno być CKSEL3..1 = "110" a dla częstotliwości większych od 8MHz bity CKSEL3..1 mają być ustawione na "111".
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Wewnętrzny oscylator 8MHz

Wewnętrzny oscylator o częstotliwości 8MHz uruchamiamy ustawiając bity CKSEL3..0 równe "0010". Czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0 = "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Dzielenie częstotliwości zegara

Za dzielenie częstotliwości zegara przez 8 odpowiada bit CKDIV8, jest on najczęstsza przyczyna problemow z działaniem mikrokontrolera. Dzielenie jest aktywne jeśli CKDIV8 = "0"

Interfejs JTAG

Jeżeli bit JTAGEN="0" (zaprogramowany) wtedy piny PORTC.7 - PORTC.4 stanowią wyjście interfejsu JTAG i są na stałe podciągnięte do +VCC. Nie działaja one wtedy jako zwykłe piny (nie działa konfiguracja w programie ustawiająca je w roli wejść lub wyjść) i będzie to z pewnością przyczyną problemów, gdy właśnie te wyprowadzenia zostaną użyte jako wejścia lub wyjścia projektowanego systemu mikroprocesorowego. Aby wspomniane wyprowadzenia zachowywały się jak pozostała część portu C konieczne jest wyłączenie interfejsu JTAG poprzez ustawienie JTAGEN="1"

Przykłady konfiguracji



5. ATTiny 13

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATtiny 13 są bity CKSEL1..0 = "10", SUT1..0 = "10" oraz CKDIV8= "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8.

Wewnętrzny oscylator 4,8/9,6MHz

Wewnętrzny oscylator o częstotliwości 4,8MHz uruchamiamy ustawiając bity CKSEL1..0 ="01" , dla częstotliwości 9,6MHz zgodnie z kartą katalogową powinno to być CKSEL1..0 ="10". Czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0 = "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Wewnętrzny oscylator 128kHz

Wewnętrzny oscylator o częstotliwości 128kHz uruchamiamy ustawiając bity CKSEL1..0 ="11". Czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0 = "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna być rowna "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Przykłady konfiguracji



6. ATtiny 45

Ustawienia fabryczne

Domyślnym (fabrycznym) ustawieniem mikrokontrolera ATtiny45 są bity CKSEL3..0 = "0010", SUT1..0 = "10" oraz CKDIV8 = "0". Oznacza to że fabryczny mikrokontroler, przed zmianą jakichkolwiek "Fusow" pracuje na wewnętrznym oscylatorze RC z najdłuższym czasem startu i dzieleniem częstotliwości przez 8, co daje w efekcie taktowanie 1MHz.

Zewnętrzny Rezonator Kwarcowy 0,9 - 16MHz

Gdy chcemy używać zewnętrznego rezonatora kwarcowego to musimy przestawić bity CKSEL3..1 w zależności od jego częstotliwości. Dla częstotliwości 0,9-3MHz bity CKSEL3..1 powinny mieć wartość "101", dla 3-8MHz powinno być CKSEL3..1 = "110" a dla częstotliwości większych od 8MHz bity CKSEL3..1 mają być ustawione na "111".
W drugim kroku zajmujemy się ustawieniem bitu CKSEL0 i SUT1..0 ktore razem odpowiadają za czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. Najczęściej stosowane są trzy tryby. Pierwszy, wymagany gdy układ BOD jest aktywny uzyskamy dzięki ustawieniu CKSEL0 = "1" i SUT1..0 = "01". Drugi tryb stosowany jest gdy napięcie zasilające szybko narasta, jest realizowany przez ustawienie CKSEL0 = "1" i SUT1..0 = "10". Trzeci natomiast uruchamiamy stawiając CKSEL0 = "1" i SUT1..0 = "11", jest stosowany gdy napięcie zasilające powoli narasta.

Wewnętrzny oscylator 8MHz

Wewnętrzny oscylator o częstotliwości 8MHz uruchamiamy ustawiając bity CKSEL3..0 równe "0010". Czas powrotu mikrokontrolera do normalnej pracy po resecie lub trybie Power-Down itp. ustawiamy bitami SUT1..0. Wartość SUT1..0 = "00" stosujemy gdy aktywny jest układ BOD, dla szybko narastającego napięcia zasilającego wartość SUT1..0 powinna być równa "01" a dla wolno narastającego zasilania SUT1..0 = "10"

Dzielenie częstotliwości zegara

Za dzielenie częstotliwości zegara przez 8 odpowiada bit CKDIV8, jest on najczęstsza przyczyna problemów z działaniem mikrokontrolera. Dzielenie jest aktywne jeśli CKDIV8 = "0"

Przykłady konfiguracji






Portret użytkownika Gliwson

Problem już nie ma

Uwaga jeśli ktoś nastawił fusebity w atmega8 to wystarczy 1 rezystor 4k7 Oma i kondensator 22pF.
i podłączyć według tego schematu, http://www.hth.com/filelibrary/PDFFILES/ATmega8.pdf
który znajduje się na stronie 26.

Portret użytkownika mirley

Re: M8

To normalne bo źle ustawiłeś fusy... miało być na external crystal a nie external rc

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika krychu0505

Generator kwarcowy

MAM TEŻ TAKIE PYTANIE CO DO MOJEGO OSTATNIEGO POSTU JAK PODŁĄCZYĆ TAKI GENERATOR DO MOJEGO PROCKA??

Portret użytkownika mirley

re: generator

karta katalogowa tiny2313 strona 27

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika krychu0505

Schemat

Zrobiłem schemat na szybko. Czy tak jest dobrze??

Portret użytkownika krychu0505

Schemat

dodam zdjęcie bo poprzednio nie dodało

Portret użytkownika mirley

Re: Generator

Dobrze tylko pinu NC lub N/C (no connect) jak sama nazwa wskazuje nigdzie się nie podłacza... linia między XTAL2 procka a N/C w generatorze jest niepotrzebna.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika krychu0505

Fusy na kwarc 10MHz

Szczęśliwie udało mi się odblokować Attinę :D .Spytam jak ustawić fusebity na zewnętrzny kwarc 10MHz w bascomie. Nie chce sam się bawić żebym czegoś znowu nie pogrzebał ;D

Portret użytkownika mirley

Re: Bascom fusy

Wybierz opcję External Crystal High frequency albo coś podobnego. Nie wybieraj external clock. Wyłącz też dzielenie częstotliwości przez 8, bit CKDIV ma byc 1

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika krychu0505

Fusy na kwarc 10MHz

Czy tak jest dobrze:

Portret użytkownika krychu0505

flashrom

usunołem flashrom bo chciałem wgrać na nowo i znowu coś się zablokował ;(

Portret użytkownika mirley

Re: Fusy

Przy fusach wybierz taką opcję żeby SUT=11 i CKSEL=1111 , patrz nawias na końcu linijki.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika krychu0505

tak ustawiłem w mk avr ale

tak ustawiłem w mk avr ale potem usunąłem flashrom i znowu nie mogę się połączyć

Portret użytkownika gavron04

Attiny2313 ustawienie na zewn. kwarcu 20mhz

Witam. Jako, że sobie nie radzę z tymi fusami, mógłby mi ktoś pomóc/wyjaśnić jak ustawić 20mhz ? (mam attiny2313-20pu). Gdyby ktoś potrzebował schemat czy coś to proszę klik.

Pozdrawiam

Portret użytkownika mirley

Re : Fusy tiny2313

Wyżej jest taki przykłąd z burn-o-mata

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gavron04

Ok. Znalazłem w .txt w

Ok. Znalazłem w .txt w folderze z softem do płytki i były tam takie FF 09 FF

Portret użytkownika andrzej19903

Witam mam problem z

Witam mam problem z przestawieniem ATmegi8 na zewnętrzny kwarc 8MHz. Mianowicie przestawiłem fuse bity w programie burn-o-mata tak jak u Pana w zdjęciu załączonym do Pana artykułu i spowodowało mi to jakieś dziwne zablokowanie uC. Dziwne ponieważ przez jakiś czas układ działał na zewnętrznym kwarcu mogłem wgrywać programy i tak dalej, po odłączeniu kwarcu układ przestawał pracować, a po podłączeniu zaczynał działał poprawnie. Lecz następnego dnia już nie mogłem nic wgrać do tej atmegi a nic już później więcej nie przestawiałem w fuse bitach. No więc wziąłem następny uC i tym razem przestawiłem fuse bity przy użyciu tego samego programu lecz skorzystałem z zakładki opcje oscylatora i też chciałem przestawić na zewnętrzny kwarc 8MHz i niestety jakimś cudem zablokowało mi to uC w sumie zablokowanych tak mam aż 4 atmegi8. Chciałem za pytać co z tym zrobić jak to odblokować żeby przywrócić je do "życia" szukałem na elektrodzie rozwiązania tego problemu lecz niestety te układy które tam znalazłem nie po działały na moje uC i nadal nie odpowiadają i nie mogę wgrać programu do nich. Dodam że uC były założone do płytki ewaluacyjnej zl2avr.

Portret użytkownika mirley

Re: Fusy

Nie dasz rady przywrócić prosto do życia procesorów w których nie wiesz co przestawiłeś. Jedynie za pomocą programatora równoległego. Co do burn-o-mata to nie ustawiam nigdy nic na zakładce innej niż tablica bitów, tylko tam mam pewnośc co ustawiam. A czy kwarc na tej płytce kiedykolwiek Ci działał? Może on jest uszkodzony, oprócz tego przypadku w którym chwilowo udało ci się zobaczyć działającego procka.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika andrzej19903

nie wiem czy działał

nie wiem czy działał wcześniej bo nie korzystałem z niego jak do tej pory ale sądzę, że musiał działać bo jak udało mi się przestawić odpowiednio te fuse bity i wtedy działało na tym kwarcu przez jakiś czas, a mogłem zaobserwować to czy działa na tym kwarcu czy nie przez to że po prostu podczas pracy programu odłączyłem ten kwarc od uC, chyba że teraz jest już uszkodzony. Za pierwszym razem przestawiłem fuse bity tak jak na tym obrazku w artykule również przy użyciu tablicy bitów dopiero przy następnym uC używałem tamtej zakładki i jak porównywałem wtedy wynik operacji to był taki sam jak na tym obrazku odnoszącym się do ATmegi8 i zewnętrznego kwarcu od 3 do 16MHz. Jedynie co przestawiałem to tylko te bity konfiguracyjne które się odnoszą do oscylatora nic więcej nie zmieniałem. A jak bym założył inny nowy kwarc 8MHz to mogło by coś to pomóc? i czy przez moją nie uwagę gdy zmieniłem fuse bity na zewnętrzny kwarc i podłączyłem pod wyprowadzenia XTAL1 i XTAL2 np jakieś przyciski i konfigurowałem te wyprowadzenia tak jak dla przycisków to mogło to coś po psuć i spowodować przez to zablokowanie uC?

Portret użytkownika mirley

Re: Fusy

Rzadko podpinam coś pod XTAL oprócz kwarca, jesli dałeś tam przyciski a był ustawiony na zewnętrzny oscylator to mogłeś spowodować zwarcie, jednak zabezpieczenia procesora powinny nie dopuścić do uszkodzenia w takiej sytuacji. Kwarc możesz wymienić bo kosztuje grosze.... Procesor też, wtedy dopiero sprawdzaj czy działa. Nie podpinaj nic do XTAL poza kondensatorami do kwarcu. Jak zadziała na nowym to będzie czas na sprawdzenie tych starych

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika pimowo

Fusebity

Jak zaprogramować-jak i co ustawić, aby zaprogramować ATTINY2313: zewnętrzny rezonator kwarcowy 8MHz, brak dzielenia sygnału zegarowego przez 8.
Z góry wielkie dzięki.
Programator USBasp, system Linux Ubuntu 10.04

Portret użytkownika mirley

Re: Fusy i programowanie

Zainstaluj sobie avrdude jesli tego nie zrobiłeś:

sudo apt-get install avrdude

Ściągnij sobie Burn-o-mata, nie instaluje się a jak rozpakujesz to jest tam skrypt startowy do odpalenia z konsoli. Konfigurujesz według poradnika na mojej stronie (programowanie w avrdude) i przepisujesz z tabelki wyżej fusy do programu

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika pimowo

Przepraszam za zamieszanie,

Przepraszam za zamieszanie, ale okazało się, że wszystko jest jak najbardziej OK. Wcześniej coś namieszałem i zablokowałem uC. Po wymianie uC wszystko gładko poszło według Twojego, Mirley poradnika.

Ale mam jeszcze jedno pytanko mam plik *.bas jak zrobić z tego *.hex aby można było go wgrać do ATTINY2313. Oczywiście pod Ubuntu.

Portret użytkownika mirley

Re: Bas

Nijak tego nie zrobisz bez bascoma a on działa pod windowsem. Możesz spróbować odpalić pod winem bascoma albo zainstalować sobie windowsa Xp pod wirtualną maszyną (VirtualBox) i na wirtualnym zainstalować bascoma

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika pimowo

OK już mam Windows XP na

OK już mam Windows XP na wirtualnej maszynie, możesz mi powiedzieć jak to zrobić lub podesłać jakiegoś linka gdzie jest to wytłumaczone. Bardzo bym prosił jakąś małą instrukcję dla bardzo mało doświadczonego ludzika ;)

Portret użytkownika mirley

Re: Virtual

W ustawieniach virtual box musisz sobie teraz udostępnić jakiś folder którym będziesz wymieniał dane między ubuntu a winxp. Potem ściągasz bascoma demo normalnie pod ubuntu do tego folderu. Odpalasz XP i instalujesz bascoma. Otwierasz w bascomie plik bas i kompilujesz uzyskując bin i hex

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika pimowo

Udało się. Wszystko działa.

Udało się. Wszystko działa. Bardzo dziękuję za pomoc ;)

Portret użytkownika xmarcin

STK500v2 nie widzi Atmegi644

Witam!
Wlutowałem nową ATmegę644, przeczytałem z niej fuse bity - były to wartości domyślne i wgrałem własne: hFuse D9, lFuse F7, eFuse FF. Mam zewnętrzny kwarc 20MHz i przy nim kondensatory 22p. Krótko mówiąc, ustawiłem full swing oscilator i SUT na 11. Od tego czasu nie mam komunikacji z ATmegą. Programuję przez avrdude. Próbowałem zmniejszać częstotliwość programowania w programatorze, w ustawieniach avrdude i nadal nic. Przy odczytywaniu fuse bitów dostaje jakieś losowe wartości. Sygnatura ATmegi to z reguły 0x000000, ale czasem dostaje inne, np. 0x00ff00. Programator bez problemu współpracuje z innymi mikrokontrolerami. Na płytce nie ma zwarć. Wszystkie piny programatora docierają do 644. CO może być nie tak?

Portret użytkownika mirley

Re: Fusebity

To źle ustawiłeś.... ma być Hfuse=D9, Lfuse=FF, ma to być external crystal resonator, a nie full swing oscilator, Teraz żeby to zadziałało musisz podłączyć do XTAL1 generator przebiegu prostokątnego a nie kwarc, sa takie dostępne prawie w każdym sklepie, można też próbować robić swój generator na bramkach logicznych itp

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika krychu0505

Fusebity

Witam zrobiłem tak jak mówiłeś

Quote:
Przy fusach wybierz taką opcję żeby SUT=11 i CKSEL=1111 , patrz nawias na końcu linijki.

No i nie mogłem się połączyć z moją attiną kombinowałem aż w końcu podłączyłem generator 8MHz i ruszyło fusy ustawione były jak na zdjęciu. Co mogło być nie tak? http://www.abload.de/img/fusebityiijdj.png

Portret użytkownika krychu0505

Fusebity

Działa źle podłączyłem kondensatory na płytce stykowej

Portret użytkownika mirley

Re: Fusy

Zawsze trzeb uważnie patrzeć na ustawienia bo można sobie niepotrzebnie roboty nadłożyć....

Ps. Nie wrzucaj takich dużych obrazków bezpośrednio, albo miniaturka albo link

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika heniei

Atmega8 zewnętrzny oscylator 2MHz usbasp

Witam. Mam do zaprogramowania atmege8 na zewnętrzny kwarc. Używam do tego w/w programator. Programowania dokonuję z konsoli cmd. Wpisuję dyrektywę: avrdude -p m8 -c usbasp -U flash:w:PROGRAM.HEX:i -U hfuse:w:0xD9:m -U lfuse:w:0xe2:m
jednak układ nie działa. Jest to kit avt3047 jednak płytkę sam wykonałem metodą termo-transferu. Nic nie rusza. Myślę że to wina nie ustawionego procka. Proszę o pomoc. Ps/ autor w artykule pisze że trzeba w programie bascom fusebit KLA987 ustawić na wartość 100010 czyli na wewnętrzny oscylator 2 M.

Odpowiedzi najlepiej na e-mail. Pozdrawiam

Portret użytkownika mirley

RE: USBASP

Użuwasz usbaspa, procek jest nowy czy zwarłeś zworkę Slow_sck? poza tym najpierw sprawdź komunikację: "avrdude -p m8 -c usbasp" a jak zadziała to dopiero ustaw fusy i na końcu programuj. Po co jednak chcesz zewnętrzny kwarc 2MHz jak masz ustawić na 2MHz wewnętrzy oscylator?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika heniei

Mała pomyłka się wkradła. Tak

Mała pomyłka się wkradła. Tak na wewnętrzny oscylator 2MHz. Czyli co mam poklei robić bo już nie rozumiem. Atmega8 była już programowana ale nie były zmieniane fusbity. Do wewnętrznego oscylatora muszę coś zewrzeć ?
najlepiej jak kolejno mi Pan opiszę procedurę zmiany tych fusów ;]
Dziękuję i pozdrawiam

Portret użytkownika mirley

Re: Fusebity

Po pierwsze to uzyj burn-o-mata do ustawień fusebitów, ustaw:
CKSEL3..0="0010" (odznaczone wszystkie ptaszki oprócz CKSEL1)
SUT1..0 = "10"

0 to zaznaczenie ptaszka, bit ustawiony.

Jeśli masz problem z burn-o-matem to w osobnym artykule o avrdude opisałem jak go konfigurować

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika heniei

A na win 7 x64 raczej nie

A na win 7 x64 raczej nie będzie działał. Pod cmd wszystko działa. I pod to chciałem te fusbity.

Portret użytkownika heniei

A na win 7 x64 raczej nie

A na win 7 x64 raczej nie będzie działał. Pod cmd wszystko działa. I pod to chciałem te fusbity.

Portret użytkownika arek1996

Witaj. Dzięki Twojej stronie

Witaj. Dzięki Twojej stronie i artykułach zrobiłem swój pierwszy programator i zaprogramowałem pierwszy procesor. Zrobiłem ten zegar http://www.elektroda.pl/rtvforum/topic1680725-0.html zaprogramowałem procesor i działa. Nie ustawiłem jednak fusebitów. Czy jest możliwość ich ustawienia teraz? Nie chciał mi się włączyć program avrdude.

Portret użytkownika mirley

Re: FUse

Możesz ustawić fusebity później, w dowolnym momencie

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika arek1996

A czy można używać procesora

A czy można używać procesora bez nich? Czemu nie chce mi odpalić avrdude?

Portret użytkownika mirley

Re: Avrdude

A działał kiedykolwiek a potem przestał, czy nie działał nigdy? Dla procków fabrycznych trzeba mieć Slow_sck włączone żeby dało się zaprogramować.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika arek1996

Nie chciał odpalić po

Nie chciał odpalić po zainstalowaniu. Nigdy go nie miałem. Co to jest to Slow_sck ? I gdzie to jest?

Portret użytkownika michal512

ATMEGA 32

Witam
Chciałbym zaprogramować atmege 32 na zewnętrzny rezystor o częstotliwości 8MHz. Z tego, co przeczytałem to najlepszym rozwiązaniem będzie ustawienie SUT na 11, CKOPT 1, CKSEL 1111 oraz JTAGEN również na 1. Pytam się ponieważ niechciał bym go zblokować i wolę się upewnić.

Portret użytkownika mirley

Re: programowanie

Slow_sck obniża częstotliwość zegara aby można było zaprogramować fabryczne procki - masz programator usbasp? założyłem że tak

---------

SUT=11, CKSEL=1111, CKOPT=0

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika michal512

re ATMEGA 32

To dla 8MHz CKOPT nie może być ustawiony na 1?

Portret użytkownika mirley

Re: CKOPT

CKOPT = 0 daje oscylacje na pełnym swingu zasilania a jak ustawisz na 1 to oscylacje się zmniejszają. CKOPT = 1 zmniejsza pobór prądu ale pogarsza odporność na zakłócenia. 8MHz to granica pracy przy CKOPT=1

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika michal512

re CKOPT

Czyli można ustawić go na 1 ale to bedzie praca na granicy i lepiej dać 0.
Dzięki za szybką odp.

Portret użytkownika mirley

Re: CKOPT

Ja bym dał 0, w sumie to możesz porównać pobór pradu jak masz czas.... nigdy tego nie robiłem

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc_Piotr

zamiana atmega8 na atmega32

Witam

jestem początkujący, i chcę zrobić sobie sterownik pokojowy i bawiłem z Atmega8 ale ma za mało pamięci więc kupiłem atmega32 i moje zdziwienie że na atmega8 program działa a ten sam kod na atmega32 niestety nie.
Podłączyłem go dokładnie tak samo, ta sama częstotliwość kwarca, JTAG wyłączony.

Co jeszcze trzeba przestawić?
Proszę o pomoc
Pozdrawiam Piotr