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 atmega162

atmega162

Witam,
zmieniłem cksel=1111 i procesor zablokowany. Mam podłączony kwarc 12mHz i kondziołki 33pF. co mogę jeszcze zrobic?

Portret użytkownika mirley

Re: fusy

CKSEL=1111 (wszystkie pola odznaczone) to dobrze ustawiłeś, powinno pracować na zewnetrznym kwarcu + 2 kondensatory 22pF. Jak ustawiłeś na 0000 to jest zewnetrzny generator, więc trzeba cos takiego dołączyć... ja przeważnie stosowałem zwykły generator kwarcowy, ale podobno są prostsze sposoby zrobienia generatora.... np drugi uC i generowanie zegara na jakimś pinie 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 atmega162

atmega162

a jezeli zamiast 22p dałem 33? Powiem szczerze ze zawsze takie stosowałem i nigdy nie miałem problemu. pierwszą atmege 168 zablokowałem jak w burn-o-macie odznaczyłem div8.
pozdrawiam

Portret użytkownika mirley

Re: Mega

22p i 33p powinno działać.. .po wyłączeniu podzielnika nie mogło się nic stać.....

-

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 atmega162

atmega162

Witam,
a wiec juz wszystko działa. wlutowałem procesor z innego źródła. Porażka ze można kupić nowe części a uszkodzone...

Dzięki za zainteresowanie

Portret użytkownika atmega162

atmega162

Mam jeszcze jedno pytanie. Pod piny c0-c3 mam podłączone switche,które zwierają do masy a do pinów portu a diody led. Problem polega na tym ze nie potrafię odczytywać switchy mimo iz jtag został wyłączony. Drugi problem ze jak np napiszę program do migania diody to nie działa porta.2 oraz port a.1.

A czy jest mozliwość uruchomienia z poziomu bascoma przerwan zew np. pcint7?

pozdrawiam

Portret użytkownika Michał

Witam, czy poniższe komendy

Witam,
czy poniższe komendy ustawią fuse bity mikrokontrolera Atmega32

Quote:
avrdude -F -p m32 -c stk500 -P com4 -e -U flash:w:nazwa.hex
avrdude -F -p m32 -c stk500 -P com4 -U lfuse:w:0xFF:m \ -U hfuse:w:0xDA:m

Atmega ma zewnętrzny kwarc 16MHz. Pytam bo nigdy nie miałem do czynienia z Atmegą. Dokładnie chodzi mi o lfuse i hfuse.

Pozdrawiam

Portret użytkownika mirley

RE: M32

Tak,... druga linijka ustawi fusebity na zewnętrzny kwarc 16MHZ

-

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 Michał

Jeszcze jedno pytanko, czy to

Jeszcze jedno pytanko, czy to również zadziała na nowym nigdy nie programowanym mikrokontrolerze?

Portret użytkownika mirley

Re: Fusebity

Jak najbardziej tak samo będzie działać na nowym procku

-

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 Michał

OK, wielkie dzięki, jak już

OK, wielkie dzięki, jak już będę miał wszystko złożone to wszystko posprawdzam.

Pozdrawiam

Portret użytkownika Jurek_z

taktowanie 2313V

WItam,
mam pytanie czy kiedyś próbowałeś taktować Tiny 2313 z zegara Watchdoga 128kHz? Jeżeli czegoś nie pomyliłem czytając dokumentację to istnieje taka opcja. Przed chwilą odwrotnie ustawiłem FUS-y i boję się zablokować kolejnego procka.
Jurek

Portret użytkownika mirley

Re: Tiny2313

Z karty wynika że jest taka możliwość po zaprogramowaniu CKSEL=0110 i np. SUT=10. (0 to zaprogramowany bit, zaznaczony "ptaszek" np w burn o mat) Dzielenie prze 8 osobiście bym w tym przypadku wyłączył CKDIV=1.

Nie wiem jaki masz cel w tak niskim taktowaniu... nie używałem tego nigdy więc musisz potestować

-

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 Jurek_z

Dzięki, moim celem jest jak

Dzięki, moim celem jest jak najtańsze obniżenie poboru prądu przy zasilaniu bateryjnym.

Portret użytkownika Tomasz

Attiny2313 i Willem AT3

Witam mam problem z skasowaniem Attiny2313 programatorem Willem AT3. Programator czyta zawartość Attiny2313 lecz nie mogę jej skasować i jeszcze jedno jak ustawić Fuse Bity tym programatorem.

Portret użytkownika mirley

Re: Fusebity

Nie wiem jakie masz oprogramowanie do tego programatora. To od niego zależą opcje które możesz wykonac i ustawienia fusebitów.

-

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 Patryk614

Fusebity

Witam, prosiłbym o sprawdzenie fusebity, które mam zaznaczyć. ATmega88-20PU 16MHz.

Fusy:

CKSEL3=1
CKSEL2=1
CKSEL1=1
CKSEL0=1
SUT1=1
SUT0=1
CKDIV8=1

Portret użytkownika mirley

Re: Fusy

ja bym dał 0 na cksel3, zgodnie z kartą (full swing crystal oscilator)

-

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 Patryk614

fusy

ok,dzięki, bo tam nie wiedziałem dlatego dałem low.

Portret użytkownika Patryk614

Program do fusy

Witam, skąd mogę ściągnąć ten program do ustawiania fusy?

Portret użytkownika mirley

Re: Fusebity

-

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 losos

Witam! W AVR Studio ustawiłem

Witam!
W AVR Studio ustawiłem coś w fusach tak że teraz nie wykrywa mi megi8 (to było coś z częstotliwością jak się nie mylę to zaznaczyłem to "Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 0 ms"). Czy da się jeszcze naprawić mój błąd? mega miała służyć do USBasp z tej właśnie strony

Portret użytkownika mirley

Re: Fusebity

Jeśli tak ustawiłeś to masz external RC oscilator czyli zewnętrzny układ RC. Podłącz od nóżki XTAL1 rezystor 1.5k do +5V oraz kondensator 22pF od nóżki XTAL 1 do masy. XTAL2 pozostaw wiszący w powietrzu. Powinno to dać około 10MHz oscylator i umożliwić odblokowanie procka. Jeśli ustawiłeś na coś innego to tylko metoda prób i błędów pozostaje

-

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 gucio222

Attiny13 - fusebity

Witam
Mam do wgrania programik do Attiny13 i nie mogę ustawić fusebity w programie Burn-O-Mat.
Fusebity ustawiam tak jak do zegara wew 4,8 MHz z tym ze zaznaczam "ptaszkiem" jeszcze BODLEVEL0 i wyskakuje komunikat: Error writing fuses
Co jest źle ? Komunikacja z Attiny13 poprzez Avrdude jest.
Programator USBasp - http://fischl.de
Proszę o pomoc.
Pozdrawiam gucio222

Portret użytkownika Dragas

Attiny26 zew >8MHz

Witam
Chciałbym poprosić o screena z burn-o-made jak ustawić fusy, aby dołączyć zewnętrzny krawc >8MHz.
Pozdrawiam Dragas

Portret użytkownika mirley

Re: tiny26

Teraz na szybko mogę podać ustawienia, a w burn-o-macie wyklikasz sobie sam:

PLLCK = 1 (odznaczony)
CKSEL0 = CKSEL1 = CKSEL2 = CKSEL3 = 1 (odznaczony)
SUT0 = SUT1 = 1 (odznaczony)

powinno zadziałać

-

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 petrow17

O co kaman ?

Witam. przy wew. osc. 1MHz wszystko działało.

przestawiłem fusy na zew. osc. 8MHz wg. powyższego artykułu i dupa.
procek przestał istnieć dla AVRdude :(

Quote:
C:\Program Files\MCS Electronics\BASCOM-AVR\avrdude\avrdude.exe -C C:\Program Files\MCS Electronics\BASCOM-AVR\avrdude\avrdude.conf -p m8 -P usb -c usbasp -U flash:w:G:\Elektronika\Amfibia\TESTER SERW.HEX:a

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

avrdude.exe done. Thank you.

What is next?

użyłem -F żeby to pominąć i:

Quote:
C:\Program Files\MCS Electronics\BASCOM-AVR\avrdude\avrdude.exe -C C:\Program Files\MCS Electronics\BASCOM-AVR\avrdude\avrdude.conf -p m8 -P usb -c usbasp -F -U flash:w:G:\Elektronika\Amfibia\TESTER SERW.HEX:a

avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: reading input file "G:\Elektronika\Amfibia\TESTER SERW.HEX"
avrdude.exe: input file G:\Elektronika\Amfibia\TESTER SERW.HEX auto detected as Intel Hex
avrdude.exe: writing flash (1098 bytes):

Writing | ################################################## | 100% 0.33s

avrdude.exe: 1098 bytes of flash written
avrdude.exe: verifying flash memory against G:\Elektronika\Amfibia\TESTER SERW.HEX:
avrdude.exe: load data flash data from input file G:\Elektronika\Amfibia\TESTER SERW.HEX:
avrdude.exe: input file G:\Elektronika\Amfibia\TESTER SERW.HEX auto detected as Intel Hex
avrdude.exe: input file G:\Elektronika\Amfibia\TESTER SERW.HEX contains 1098 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 0.30s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
0x12 != 0x00
avrdude.exe: verification error; content mismatch

avrdude.exe done. Thank you.

i na końcu wspaniały komunikat "Error writing flash."

Portret użytkownika mirley

Re: Fusy

Jaki dokładnie wartości fusów wgrałeś do procka? Jakie masz kondensatory przy kwarcu i czy napewno dobry kwarc?

-

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 petrow17

kondensatory 22pF, kwarc 8MHz

kondensatory 22pF, kwarc 8MHz prosto ze sklepu

Portret użytkownika mirley

Re: Fusy

Osobiście to bym jeszcze CKOPT włączył i SUT0 wyłączył. Ale nie powinno to spowodować problemów. Na wszystkie piny M8 podłączyłeś zasilanie i masę?

-

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 Natanek

Atmega328 i kwarc 20Mhz

Witam!
Potrzebuję podłączyć do tego procesora kwarc 20Mhz. To moje pierwsze ustawianie fusów, a zablokowanie procka nie wchodzi w grę. Pierwsze moje pytanie pojawia się w związku z brakiem mojego procesora na liście. Czy mogę wybrać więc Atmegę168 i na niej ustawić fusy dla Atmegi328? Z tego co znalazłem będzie to full swing crystal oscillator, czyli mam wyłączyć CKDIV8 (odznaczyć), ustawić CKSEL3..1 na 011, czyli CKSEL 3=0 (brak ptaszka w burn o macie), CKSEL 2 oraz CKSEL 1 = 1 (jest ptaszek). Czy jeszcze coś trzeba zaznaczać? co z CKSEL0? Może lepiej skorzystać z zakładki Oscillator/clock options, jakie jednak opcje w zakładce full swing crystal oscillator wtedy wybrać?

Z góry dziękuje za pomoc, bo nigdzie nie mogę znaleźć tej informacji, a ciarki przechodzą po plecach jak próbuje coś zaznaczać. Pozdrawiam, Natanek

Portret użytkownika mirley

Re: Fusy

W burn o macie podobnie jak we wszystkich programach do fusów 0 to zaznaczony ptaszek, czyli bit ustawiony. Jest napisane jak byk pod tabelką w burn o macie jak otworzysz program.

Masz ustawić CKSEL=1111 (wszystko odznaczone) SUT=11 i CKDIV=1 żeby mieć Low power crystal 8-16MHz. CKSEL=0111 i reszta tak samo daje full swing crystal większy pobór prądu ale bardziej odporny na zakłócenia

-

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 Atmega8 Bascom

Fusebity Atmega8 Bascom

Jak ustawić fusebity w bascomie? Gdzie to w ogóle się robi?
Atmega8L kwarc 6MHz.
Najlepiej prosiłbym o jakieś screeny. Z góry dzięki!

Portret użytkownika mirley

Re: Fusebity

Tam gdzie programujesz flash po otwarciu okna są trzy zakładki: flash, eeprom i fusebity. Co do screenów to będzie ciężko bo żeby bascom wyświetlił fusy to trzeba mu podpiąć procesor taki jak sam posiadasz. Fusebity lepiej ustawia się w burn-o-macie

-

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 pawel3008

Witam czy przy zakupiepie

Witam czy przy zakupiepie przykładowo nowej attiny 2313 musze wgrywać botloardera i czy jest możliwość wgrania programu juz w postaci pliku hex za pomocą bascoma
pozdrawiam

Portret użytkownika Natanek

Re: Atmega328 i kwarc 20Mhz

Bardzo dziękuję za podpowiedzi. Po nakłonieniu programatora do współpracy z Burn-o-matem wszystko udało się ustawić za pierwszym razem. Jak to mówią pierwsze koty za płoty i teraz wiem, że nie ma się czego bać :).

Portret użytkownika danloop

chciałem zaprogramować atmege

chciałem zaprogramować atmege żeby działała na wewnętrzym oscylatorze 8Mhz ustawiłem fuse bity wg ostatniego rysunku, programator nie drgnie ciagle wyrzuca error, jak zakłądam zworke slow to programuje gdzie robie błąd ?
pozdrawiam

Portret użytkownika mirley

Re: Fusebity

Znaczy się że nie ustawiłeś fusebitów, albo ich nie wpisałeś do procka a tylko ustawiłeś w programie. Jaki to mikrokontroler?

-

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 danloop

mikrokontroler Atmega 8,

mikrokontroler Atmega 8, wkoncu ustawiłem fuse bity zrobiłem write zapisał i już nie moge go zaprogramować . Ustawienia mam tak jak na drugim rysunku i kwarc 8Mhz

Portret użytkownika krychu0505

ATtiny2313

Chciałem ustawić fusebity pod kwarc 10MHz ale coś namieszałem i nie mogłem się więcej połączyć z mikrokontrolerem wyskakuje błąd Could not identify chip with ID:FFFFFF Używam programatora Sample Electronics programmer.
Bardzo proszę o pomoc jak odblokować mój mikrokontroler

Portret użytkownika mirley

Re: Fusebity

Masz dobre kondensatory do kwarca? na pewno 22pF i podłączone tak jak karta katalogowa mówi?

---------

Co ustawiłeś w bascomie w tych fusach? jak coś namieszałeś i nie wiesz co to teraz trzeba niewiadomo co zrobić żeby to odblokować. Najczęstszy błąd to ustawienie external clock zamiast external crystal i wtedy trzeba jakiś generator podłączyć aby to zadziałało.

-

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

ATtiny2313

No i chyba tak ustawiłem było to gdzieś na końcu listy z tymi fusami dotyczącymi własnie kwarcu było tam napisane coś takiego ale nie pamiętam dokładnie: external clock 8MHz- < i coś tam za tym znakiem większości jeszcze było

Portret użytkownika mirley

Re: Generator

W takim razie teraz trzeba generator podłączyć, albo kupić generator kwarcowy np 8MHz, albo zbudowac generator na inwerterach lub bramkach CMOS i podac na XTAL1

-

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

ATtiny2313 Generator

Wydaje mi się że taki generator mam już podłączony do mojego układu podam zdjęcie:

Portret użytkownika krychu0505

ATtiny2313 Generator

LINK DO ZDJĘCIA niestety poprzednio się niedodało http://www.abload.de/image.php?img=dsc_2277p50xk.jpg

Portret użytkownika mirley

RE: KWarc

To nie jest generator tylko rezonator kwarcowy (kwarc). Generator zawiera w sobie kwarc + elektronikę która wytwarza przebieg prostokątny. Podałem takie rozwiązanie bo one jest pewne w działaniu. Kupujesz w sklepie generator i podpinasz i powinno działać, chyba że opcje fusebitów są jeszcze inne niż external clock. Możesz zbudować dowolny inny układ, który generuje przebieg prostokątny, poszukaj w internecie.

-

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

RE: KWarc

Portret użytkownika mirley

Re; fusebity

dokładnie o coś takiego mi chodziło

-

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 karolr

Odpowiedź na zablokowane procki...

Ostatnio zablokowałem sobie atmegę128 poprzez próbę ustawienia fuse bitów na ext clock(i chyba coś z CKOPT robiłem), procesor przestał działać, programator go nie widział.
Pomogło podpięcie portu wyjściowego drugiego procka pod nóżkę XTAL-Out atmegi128 przez opornik 1kOhm.
U mnie drugim mikrokontrolerem była akurat atmega8535 pracująca na wewnętrznym oscylatorze 8MHz podłączona na pająka, z prostym programem:
-ustaw pc2(port z podpiętym opornikiem) jako out
i pętla:
-set pc2
-nop
-reset pc2
Po takim podpięciu udało mi się zaprogramować w atmega128 fusy na wewnętrzny oscylator 8MHz i teraz śmiga.
Wcześniej podpinanie kwarców (z kondensatorami 27pF/i bez) nie przynosiło efektów.

Może komuś się przyda, pozdrawiam.

Portret użytkownika Gliwson

Zablokowany uc atmega8,attiny2313

Witam chciałbym prosić o mało pomoc w sprawie Fusebity.
Otóż parę miesięcy temu chciałem zmienić z zewnętrznego oscylatora na wewnętrzny w attiny2313
jednak się zablokował. I właśnie dzisiaj chciałem spróbować jeszcze raz z atemga8, jednak też się zablokował.
I właśnie chciałbym prosić o pomoc odblokowania.
Programowanie uc wyglądało tak:
1. Program to Bascom-avr 2.0.7.1 demo
2. Programator to USBasp ATMEL AVR
3. uc atmega8
4. Są ustawione podstawowe ustawienia fabryczne atmegi8
5. Jak zmieniłem wewnętrzny oscylator z 1Mhz na 8Mhz to mikrokontroler działał.
Czyli zmiana 000001:int.Rc osc 1mhz na 000100:int.Rc osc 8mhz
6. Chciałem zmienić już na zewnętrzny oscylator czyli z 000100:int.Rc osc 8mhz na
000111:EXT. RC OSC 3.0Mhz-8Mhz
7. Programowanie odbywa się na uniwersalnej płytce stykowej.
8. Brak komunikacji z programatorem, podłączania rezystora kwarcowego 8Mhz równolegle do pinu 9 i 10 (xtal1 i xtal2) oraz kondensatorów 22pF, nic nie daje. Program załadowany w mikrokontrolerze nie działa.
I właśnie jak można odblokować mikrokontroler i zaprogramować właściwie.