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 rafliczek22

A jak wyglada konfiguracja

A jak wyglada konfiguracja dla mega 168

Portret użytkownika mirley

Re: Mega168

Niestety musisz skorzystać z karty katalogowej bo nigdy nie używałem tego uC... a co chcesz dokładnie ustawić?

-

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 rafliczek22

zewnetrzny kwarc 20 mhz.

zewnetrzny kwarc 20 mhz.

Portret użytkownika mirley

Re; M168

Ustaw: CKSEL3..0 = 0111 i SUT1..0 = 11, jeśli jest CKDIV to ma być 1, ewentualnie zamieść zrzut z burn-o-mata to podpowiem Ci co ja bym ustawił.... pamiętaj że nie ustawiałem nigdy M168

-

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 rafliczek22

ok zrobilem jak napisales i

ok zrobilem jak napisales i dziala.dzieki

Portret użytkownika Qba

przestawiłem

Wtiam!
Złożylem programator wg opisu i na poczatku działał( ATMega8 BASCOM-AVR), aż do momentu przestawienia w Fuse Bitach czegoś. Bylo to chyba cos jak CKSEL :1111 i SUT : 10. Nie jestem tego pewien, za to wiem ze od tamtej pory jak chce wejsc w zakladke Fuse Bitów to pisze READLB not found, a jak klikam na Identify Chip to pisze bląd id: FFFFFFFF. W programatorze jest kwarc 16MHz i dwa kondensatorki 22pF. Na początku wszystko chodziło. Mam nadzieje ze da się jakoś to odwrócić :)

Portret użytkownika mirley

Re: Procesor


Quote:
Bylo to chyba cos jak CKSEL :1111 i SUT : 10.

jeśli to było to co wyżej napisałeś to wszystko będzie dobrze, ale na 16Mhz nie pójdzie bo nie zaznaczyłeś bitu CKOPT= 0, wtedy m8 może pracować do max 8MHz. Podepnij kwarc 8MHz i zobacz czy pójdzie. Jeśli nie to znaczy że ustawiłeś coś innego i możesz tylko zgadywać co to było. Fusebitów nigdy nie ustawia się "na pałę" tylko dokładnie trzeba porównać wartości przed kliknięciem write

-

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 Qba

wielkie

Wielkie dzięki. Jak tylko skombinuje kwarc 8 to sprawdze i dam znać :)

Portret użytkownika KRZYCHOOOO

ATTINY26

Witam!, mam prośbę o pomoc w ustawieniu Fuse aby procesor Attiny 26 pracował z zegarem wewnętrznym 8 MHz dotychczasowe próby doprowadziły do zablokowania jednego procesora a został mi tylko jeden. Będę wdzięczny za pomoc ponieważ poszukiwania nie przyniosły jednoznacznych wskazówek, liczę na Kolegi doświadczenie - pozdrawiam Krzysztof.

Portret użytkownika mirley

Re: ATTiny26

Quote:
....ponieważ poszukiwania nie przyniosły jednoznacznych wskazówek

jakie poszukiwania? przecież wszystko masz tutaj na stronie 30. Jedyne co musisz przestawić to bity CKSEL z wartości CKSEL3..0=0001 (tak jest po kupieniu nowego procka) na CKSEL3..0=0100 (8Mhz wewnętrzny, tabela 11)

-

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

pomocy :)

Tak to bywa jak człowiek nie doczyta a podziała:)

Ustawiłem CKSEL = 1110 tzn. zaptaszkowane było tylko cksel0 ckop rowniez zaptaszkowane czyli 0. SUT 10.
Chciałem by AM działało na 16 MHz kwarcu. Jaki właściwie ustawiłem kwarc? jak to naprawić bo atmega nie odpowiada? Innych fusów nie ruszałem czyli standardowe ustawienia. Ustawiałem Burn-0-matem.

Z góry dzięki za pomoc

Portret użytkownika mirley

Re: uc?

W jakim uC to ustawiasz bo nie napisałeś?

-

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

sory zapomnialo mi się :)

sory zapomnialo mi się :) atmega8

Portret użytkownika mirley

Re: Kwarc

powinieneś był tak ustawić http://mirley.firlej.org/files/ART_fuseM8_02B.gif. Wyżej masz przedstawiony ten zrzut. Ustawiłeś jakieś głupoty bo dla kwarca CKSEL0 ma być równe 1, nie wiem co się dzieje jak zrobisz 0 bo CKSEL0 = 0 jest dla ceramicznego oscylatora. Jak naprawić to nie wiem trzeba uważać przy ustawianiu. Musiał by być programator równoległy żeby to odblokować, chyba że są jeszcze inne problemy (z podłączeniem) przez które to nie dział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 Michał

Atmega8

Witam kupiłem nową atmega8L- 8PU i chciał bym ustawić ją na Zewnętrzny Rezonator Kwarcowy 0,9 - 8MHz ponieważ posiadam tak zwaną płytkę testową z rezonatorem kwarcowym 8MHz. Tylko że wolałbym ustawić Fuse Bity w programie Bascom. Które Fuse bity muszę zmienić i na jakie, po wejściu w programator i zakładkę "Lock and Fuse Bits"? Musze je zmieniać nawet jeśli w wgranym programie użyłem komendy "$crystal = 8000000 "?

Portret użytkownika mirley

Re: Fusebity

$crystal = 8000000 musisz wpisać w programie bo jest to potrzebne do obliczania opóźnień przy kompilacji kodu i różnych innych tego typu rzeczy. Fusebity natomiast to ustawienia sprzętowe mikrokontrolera

Co do fusebitów to w bascomie nie podam zrzutu bo musiał bym wszystko podłączyć i zakupić procesor M8L aby go zaprogramować. Sam możesz w bardzo prosty sposób sobie poradzić z fusebitami w bascomie. Obok ustawienia SUT i CKSEL masz wartości binarne.... Wystarczy że odszukasz na liście ustawień taką pozycje gdzie CKSEL=1111 i na drugiej liście SUT=11. Powinno się pojawić "external crystal resonator ", czy jakoś podobnie.

dodatkowo ma być CKOPT=1 ale chyba standardowo jest tak ustawiony

-

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ł

Atmega8

A jak jest różnica między 1 MHz a 8 MHz? To się znaczy jak przestawię z 1 na 8 to będę widział różnicę, że tak powiem gołym okiem? Np. mam programik do pomiaru temp. z DS18B20 i na wyświetlaczu wyskakuje mi temp. Po przestawieniu szybciej mi sczyta temp po załączeniu zasilania? Więcej razy na minute odświeży pomiar?

Portret użytkownika mirley

Re: Taktowanie i fusebity

Taka jest różnica że procesor na 8MHz działa 8 razy szybciej niz na 1MHz... tutaj nie ma co tłumaczyć. W zależności od programu efekty mogą być różne, a czujniki ds prawdopodobnie w ogóle nie pójdą, bo ich działanie opiera się na ściśle określonych zależnościach czasowych.

Jesli program masz napisany na 8MHz to wszystkie timery, polecenia czasowe itp będą działać źle. Np na skompilowanym programie z poleceniem crystal 8000000, opóźnienie wait 1 da czas 1s, ale jak procesor będzie źle ustawiony i fizycznie będzie pracował 1MHz to normalne że polecenie wait 1 da fizyczny czas 8s. gdy natomiast przestawisz sobie w programie linijkę z crystal na wartość 1000000 to wait zacznie działać dobrze

Nie ma co sie nad tym rozczulać, częstotliwość ustawiona podczas kompilacji programu ma być zgodna z faktycznym stanem w procesorze.

Ds ni szczyta szybciej temperatury poza tym co ma napisane w specyfikacji. Poza tym transmisja ma określone ścisłe zależności czasowe, 0 trwa ileś i jedynka też ileś

-

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ł

Taktowanie i fusebity

Jakoś nie mogę tam znaleźć SUT i CKSEL, czy to nie jest w tej zakładce Fusebits A987 i tam później przestawić na 8MHZ?.

http://img529.imageshack.us/img529/7163/beztytuuvz.png

mirley: obrazek jest za duży.... patrz regulamin

Portret użytkownika mirley

Re: Fusebity

Dla kwarca 8MHz:

linijka A987 powinna być "1111: External crystal..... high freq. " , nie pamiętam jaki dokładnie jest tekst, ale te cyfry z początku to właśnie CKSEL3...0 = 1111

linijka KL: ja ustawiam na "11:...." ale na razie zostaw tą opcję w spokoju, nic Ci to prawdopodobnie nie zmieni

-

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ł

Taktowanie i fusebity

Więc tak u mnie mam następujące opcje
http://img13.imageshack.us/img13/4518/10385499.png
i reszta
http://img268.imageshack.us/img268/341/86549229.png
Więc mam wybrać
1111:1111 external XTAL
Przepraszam że trzeba mnie tak za rączkę prowadzić, ale już jedną atmege w zakładce "Lock and Fuse Bits" zablokowałem więc wolę się upewnić :)

Portret użytkownika BąQ

złe Fusy

Czy jak tak ustawiłem fusebity (przez przypadek) http://obrazki.elektroda.net/51_1276946062.jpg to czy wystarczy jak podłącze prosty generator na atmedze czy coś jeszcze zepsułem ??

Portret użytkownika mirley

Re: Fusebity

Po pierwsze zanim klikniesz write to upewnij się co ustawiłeś. Przestawiłeś M16 w tryb oscylatora zewnetrznego RC. Poczytaj w karcie katalogowej na stronie 28. Częstotliwość ma byc ustawiona w przedziale 8-12MHz, za pomocą zewnętrznych R i C. Przybliżony wzór to f=1/(3RC). Schemat jest na tej samej stronie

-

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 goscobi

atmeg32 i JTAG

witam,
jestem poczatkujacy kupilem obie zestaw zl3avr z atmega32 i takiego jtaga http://www.allegro.pl/item1077248547_usb_avr_jtag_2w1_jtag_ice_rs232.html , podlaczylem uklad , jtaga do ukladu i wyskakuje mi
http://www.bractwokurkowe-stg.yoyo.pl/aaa/a.jpg taki komunikat . podlaczone mam raczej napewno dobrze wiec to chyba fuse bity a mam tylko jtaga i nie mam jak tego zmienic. moje pytanie - czy jak kupie nowy uklad fuse bity beda tak ustawione ze bede mogl zaczac dzialac z jtagiem , czy mam sie zaopatrzyc w programator isp?

Portret użytkownika mirley

Re: Programowanie

Nigdy nie programowałem ATMEL'i przez JTAG, zawsze używam ISP więc niestety nie pomogę w tej kwestii

-

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 hfast

Witam. Pomógłby mi ktoś

Witam. Pomógłby mi ktoś zaprogramować uklad? siedze nad tym i nie rozumiem tych wszystkich kodów... znam się dość dobrze, ale na html'u ;)

jesli ktos by mogl to bylbym bardzo wdzieczny...

Portret użytkownika mirley

Re: Kod

Przejdź na forum i załóż nowy temat z problemem jaki masz, tutaj nie miejsce na pisanie jakichkolwiek kodów. Podaj w opisie więcej szczegółó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 rezystorek

witam, uzywam PONYPROG-A do

witam,
uzywam PONYPROG-A do wgrywania softu i ustawiania fusow, mam co do tego programu dwa pytania:
-gdy odczytuje bajt kalibracji oscylatora otrzymuje wynik AE(174),tutaj moje pierwsze pytanie, czego wlasciwie dotyczy ta wartosc?
-drugie pytanie dotyczy fusow, zalozmy ze juz jakies ustawilismy pod kwarc 4 lub 8 skad mam miec pewnosc ze sa one prawidlowo ustawione? Czy jest jakas metoda zeby to sprawdzic ?

z gory dzieki za odp.

Portret użytkownika mirley

Re; Fusebity

Nigdy nie używałem ponyproga ale:
1. bajt ten dotyczy kalibrowanego oscylatora wewnętrznego, zmieniasz jego częstotliwość i możesz sobie dostroić z jakimś wzorcem. Fabrycznie jest to ustawione na pewną wartość. Taka kalibracja jest konieczna ze względu na technologiczne rozrzuty elementów w środku chipu
2. Jak to skąd masz wiedzieć... klikasz sobie read fuses i są odczytywane z procka. Patrzysz czy są poprawne, takie jak chciałeś i tyle.

-

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 boniu

uruchomieni nieżywego procka

Witam!!!
Miałem taki przypadek z m8 i podpięcie zewnętrznego generatora (innego działającego układu z prockiem)pomogło , ale nie pamięntam na którą nogę podałem sygnał.

-

z poważaniem Bronislaw

Portret użytkownika Rafieldex

atmega16/32 czas a częstotliwość

Mam taki problem.
Jak w bascomie wpisze wait 1 a $crystal dam na 8 MHz to zamiast czekać sekundy scalak czeka mi 8 sekund.
Gdy ustawie $crystal na 1 MHz czeka sekundę, ale w układzie ma kwarc 8Mhz więc odpada.
Da się jakoś zrobić, ustawić jakoś fusebity żeby zamiast 8 sekund czekał sekundę przy $crystalu na 8MHz?

Portret użytkownika matrix

Re: atmega16/32 czas a częstotliwość

fusbity kolego, fusbity

Portret użytkownika Rafieldex

atmega16/32 czas a częstotliwość

Kurde z tymi fusebitami. Zablokowałem se atmege32. Otworzyłem ponyproga coś poustawiałem, jakieś fusebity.
Podczas zapisywania fusów, wyskoczyło "device..." błąd 24, i teraz programator nie widzi mi scalaka. W bascomie wyświetla "couldn't identify chip..." a w ponym ten błąd 24.

Portret użytkownika Rafieldex

Aha zapomiałem dodać,

Aha zapomiałem dodać, sprawdziłem to że mi nie widzi megi32, podpiłem mege8 spróbowałem zaprogramować i zaprogramowało. Napięcie i 4 wyjścia MISO MOSI SCK i CLK miałem podpięte pod m32.

Portret użytkownika mirley

Re; M32

Zablokowałeś procka bo ustawiłeś "coś"... z fusebitami sie nie kombinuje bo to nie program. Tutaj jak cos przestawisz źle to napewno bedą problemy. Nie wiem co ustawiłes więc zostaw tego starego m32 w spokoju i zaopatrz się w nowy. Z tamtym powalczysz później. Napewno nie przełączyłeś na kwarc bo gdyby tak było zadziałało by na kwarcu który masz w układzie.

Trzeba wyłączyć podzielnik przez 8 w procesorze, bit CKDIV powinien być na 1 (niezaprogramowany). Jak to zrobisz to procek zacznie działać na 8MHz wewnętrznym rezonatorze.

Potem jak dasz CKSEL na 1111 to zacznie działać na kwarcu, ale bez kwarcu nie ruszy

-

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 Rafieldex

M32

Czyli pozostaje kupić nową atmege.
Cóż, przynajmniej, podobno jest tańsza od 16.
A wiem że atmegi ostatnio bardzo podrożały.

Portret użytkownika matrix

Re: M32

Rafieldex wrote:
Czyli pozostaje kupić nową atmege

nie. jeśli przestawiłeś tylko taktowanie na zwnętrzny kwarc to na innym procku piszesz:
Do
toggle portb
Loop

z portu B tak zaprogramowanego proca podpinasz się pod XTAL1 zablokowanego i nie odpinając taktowania otwierasz ów zablokowany procek w programatorze i zmieniasz fusy na takie jakie powinny być.

Portret użytkownika Rafieldex

M32

Nie działa, ustawiłem przełączanie portb (jak wyżej) z innego scalaka podpiąłem pod m32 próbowałem zczytać fusy lub zapisać i nic. Dalej ten błąd 24 "Device missing or unknown device". Dalej nie widzi.
A teraz was zaskocze. Próbowałem zaprogramować attiny 2313 i też nie dało rady, ale atmege8 / 16 zaprogramowało. Do attiny podpiąłem MOSI - 17, MISO - 18, RESET - 1, SCK - 19, VCC - 20, i GND - 10. Jak w nocie katalogowej. Chyba mam coś nie tak z programatorem. Jakby co używam stk200/300, przez port LPT (DB25).
Nie mam pojęcia co jest grane.

Portret użytkownika mirley

Re; STK200/300

Programator masz zasilany? ten tiny2313 jest nowy czy wyjęty z układu w którym był 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 Rafieldex

STK200/300

Programator zasilany zewnętrznie 5V, (z 12V przez 7805 na 5V). AtTiny2313 jest nowiutki ze sklepu.

Portret użytkownika mirley

Re: tiny

Zobacz czy w biosie jest dobrze LPT ustawiony, ma być w trybie ECP. Sprawdź czy zasilanie dochodzi do bufora HCT na płytce programatora. Czy kabel się nie uszkodził. Czy masa między programatorem a prockiem jest podłączona. Czy w programatorze nie ma jakiegoś zimnego lutu i raz łączy a raz nie łaczy, zależnie czy poruszysz wtyczką czy nie

-

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 Rafieldex

tiny

Atmege8 programuje mi normalnie napięcie na 74hc244 jest. Pozostaje ten attiny2313, może on nie działać (atmege programuje normalnie).

Portret użytkownika jarekk

Witam, Jak ustawić poprawnie

Witam,
Jak ustawić poprawnie LockBit aby nie można było skopiować (odczytać) zawartości pamieci flash oraz eeprom? W BASCOM są za to odpowiedzialne bity oznaczone, jako 21, 43, 65. Czy zmiana Lockbit 21 na 10 wystarczy czy jeszcze trzeba zmienić coś w pozostałych bitach.

Portret użytkownika mirley

Re: Lock bits

nigdy nie ustawiałem lockbitów ale:
65: dotyczy boot loadera
43: pamięci programu, tutaj musisz ustawić żeby odczyt programu był niemożliwy
21: tutaj można przestawić tak aby procek był możliwy do zaprogramowania

Więcej czytaj w karcie katalogowej bo sam dokładnie nie wiem...

-

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 Michal

Co ustawilem źle?

Witam,

Wiem ze na elektrodzie za takie pytania dostaje sie bana....na szczeście tu nie elektroda :-)
Moje pierwsze spotkanie w życiu z programatorem, atmega8L8AU... i wzieło i zdechło. Z programatorem otrzymalem programik 'progisp' i po podpieciu sie do atmega8 przegladalem opcje programu i nic nie zmieniając w fusebitach wcisnąłem 'program fuse' i stracilem połączenie do procesora. Czytajac na ten temat w różnych miejscach jest napisane 'podłącz zewnetrzny generator i ruszy' Ja tylko wpatruje sie w te domyślne ustawienia fusebitow które zaprogramowałem i porownując je z datasheetem to na mój rozum to CKSEL 0001 SUT1 1 SUT0 0 CKopt 1 (czyli to co jest ustawione domyślnie i zostało zaprogramowane) to właśnie wewnętrzyny zegar 1Mhz. Czyli chyba zewnętrzny nic tu nie da? Co zrobilem źle i jak odzyskac komunikacje z m8? Proszę spojżeć na zrzut ekranu http://img80.imageshack.us/img80/2382/progisp.jpg

dzięki wielkie
pozdrawiam
Michał

Portret użytkownika mirley

Re: Programowanie

Ciekawa sprawa.... a czy próbowałeś wgrywać jakiegoś hexa? czy kiedykolwiek to działało, czy pierwsze co zrobiłeś to akcja z tymi fusami? Dawanie zewnętrznego rezonatora nic nie da jeśli ustawiłeś faktycznie na wewnętrzny

-

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 Michal

Co ustawiłem źle?

Hexy wgrywam do bliźniaczych atmega8 i działa używając tego samego programatora i programu tylko omijam z daleka opcje 'program fuse'. Przerabiam ESC na i2c do quadrocoptera i już dwa flashowania m8 mam zakonczone sukcesem. Tylko ta pierwsza m8 po wcisnieciu 'program fuse' padła i nie mogę się połączyć. Co ciekawe to do poprawnego zapisania flasha do dwóch kolejnych m8 musiałem podłączyć zewnetrzne zasilanie, przy pierwszym nieszczęśliwym programowaniu m8 zasilania zewnętrznego nie było i może to jest powodem jakiegoś dziwnego ustawienia fusebiów czy błedu podczas programowania. Domniemywam tylko tutaj gdyż moje doświadczenie jest zerowe i proszę o poradę.

Portret użytkownika mirley

Re: Zasilanie

Procek musi mieć zasilanie podczas programowania. Jeśli nie wiadomo co dokładnie programator ma w środku to podłącz do procka tylko sygnały programujące i masę GND, zasilanie względem masy 5V (na wszystkie piny zasilania procka), podobnie masa do wszystkich pinów GND podłącz z zewnętrznego zasilania

-

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 beleco

avrdude: verification error

Używam programatora USBASP (programu AVRDUDE)i tym programatorem programuje procesory ok 2 lata. Programuje procesory mega8, mega168, oraz mega16. Do tej pory nie było żadnych problemów, ale ostatnio podczas wgrywania programu wyskakuje mi błąd: /dodam że próby robiłem na Mega8, 168 i 16/
......
Reading | ################################################## | 100% 27.88s
avrdude: verifying ...

avrdude: verification error, first mismatch at byte 0x0000
0x0c != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done. Thank you.

Czy możecie mi pomóc.

-

Max

Portret użytkownika mirley

ReL Programowanie

Próbowałeś na innych prockach/ nowych egzemplarzach? A ustawienia fusów działają dobrze? Odczytuje i zapisuje fusy? Sprawdź na innym kompie

-

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.