Skocz do zawartości
Mateusz

AVR Problem z fusebitami (zablokowana)

Pomocna odpowiedź

Hej.

Zmieniłem na atmedze 8 fusebity w taki sposób:

Low: 0xC0

High: 0xD9

I teraz już nie mogę jej zaprogramować. Mam podłączony zewnętrzny kwarc 12Mhz.

Taki błąd mi wyskakuje w avrdude:

avrdude.exe: stk500v2_command(): command failed

avrdude.exe: stk500v2_command(): command failed

avrdude.exe: stk500v2_program_enable(): cannot get connection status

avrdude.exe: initialization failed, rc=-1

Double check connections and try again, or use -F to override

this check.

avrdude.exe done. Thank you.

Udostępnij ten post


Link to post
Share on other sites

Na tej stronie masz schemat który może Ci pomóc ( mi pomógł) 😉 :

http://www.elektroda.pl/rtvforum/topic1172348.html

schemat ten z jednym rezystorem i kondensatorem

(rezystor 10k chyba a kondensator 27pf (pewnie go masz bo takich używa się przy kwarcach)

Co do fusebitów polecam tą stronę:

http://mirley.firlej.org/fuse_bity_w_mikrokontrolerach_avr

Udostępnij ten post


Link to post
Share on other sites

Złóż ten generator:

podepnij pod uC, odczytaj sygnature i zmień ustawienia fusów. Sprawdzone.

Udostępnij ten post


Link to post
Share on other sites

... albo zaprogramuj inny mikrokontroler, by generował przebieg na jakimś pinie, a pin ten podłącz do XTAL1 zablokowanego.

Udostępnij ten post


Link to post
Share on other sites

A jaka powinna być częstotliwość tego oscylatora ?

CKSL = 0000

Udostępnij ten post


Link to post
Share on other sites

1Mhz 😉 Teraz podałeś fusebity a nie częstotliwość.

(rezystor 10k chyba a kondensator 27pf (pewnie go masz bo takich używa się przy kwarcach)

Teoretycznie przy kwarcach (w AVR) używa się kondensatorów 22pF, a w 8051 - 33pF 😉

Udostępnij ten post


Link to post
Share on other sites

Udało się z innego procka zrobić generator i da się zaprogramować. Jednak jak zaprogramuje fuse bity:

H D9

L FF

I tak nie mogę pracować na zewnętrznym kwarcu. Jak ustawie na kwarc wewnętrzny to działa.

Udostępnij ten post


Link to post
Share on other sites

Masz podłączony kwarc 12MHz, a ustawiasz fusy na low-frequency czyli np. dla kwarcu 32kHz.

Udostępnij ten post


Link to post
Share on other sites

Moja pomyłka - w niewłaściwej kolejności wprowadziłem bajty konfiguracyjne.

Kondensatory do kwarcu masz podłączone?

Pokaż schemat.

Udostępnij ten post


Link to post
Share on other sites

Schemat nie jest pełny ale kwarc jest 🙂

I jeszcze pytanko.

Czy jeżeli zasilam atmege 3.3V to tez musze coś we fuse bitach zmienić ?

Bo próbuje zrobić komunikacje po USART ale dostaje same zera od procka. Pewnie coś nie tak z BaudRate, być może przez to taktowanie procka.

wywolanie w main.c

USART_send_string("ala ma kota");

header file UART_ATM8.h

#ifndef UART_ATM8_H_
#define UART_ATM8_H_

#define FOSC 8000000UL// Clock Speed
#define BAUD 19200
#define ubrr FOSC/16/BAUD-1

void USART_Init();
void USART_send_string(char *string);

#endif

USART_ATM8.c

#define F_CPU 8000000UL
#include <avr/io.h>
#include <stdio.h>
#include "UART_ATM8.h"

void USART_Init()
{
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter RX interrupt enable*/
UCSRB = (1<<RXCIE) | (1<<RXEN) | (1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1<<UCSZ0) | (1<<UCSZ1);
}

void USART_send_string(char *string)
{
  char znak;
  while (0!=(znak=*(string++)))
  {
	while ( !( UCSRA & (1<<UDRE)) );
	UDR=znak;
  }
} 

Udostępnij ten post


Link to post
Share on other sites

Z 3,3V nie musisz nic w fusach ustawiać.

Masz niepodłączony RESET do złącza programatora - nic nie zaprogramujesz.

Udostępnij ten post


Link to post
Share on other sites

Jest podłączony 🙂 Tylko na schemacie tego nie widać. Bo tak jak mówiłem schemat nie jest pełny, komputer mi się sformatował i tylko to udało mi się odzyskać 😉.

Chyba wiem gdzie skopałem.

Mam atmegę 8 a nie 8L. A zasilam 3.3V.

Udostępnij ten post


Link to post
Share on other sites
Chyba wiem gdzie skopałem. Mam atmegę 8 a nie 8L. A zasilam 3.3V.

🙂

Ale to nie tłumaczy, dlaczego na wewnętrznym działa, a na zewnętrznym nie przy zasilaniu 3,3V.

Udostępnij ten post


Link to post
Share on other sites
Ale to nie tłumaczy, dlaczego na wewnętrznym działa, a na zewnętrznym nie przy zasilaniu 3,3V.

Może sygnał z kwarcu ma za małą amplitudę?

Czeka mnie teraz niemiła wymiana atmegi. Ehhh będzie nauczka 😋

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...