Co z tym pinem RESET? (Atmega8)

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Co z tym pinem RESET? (Atmega8)

Post autor: M@ciej » 17 gru 2008, 18:54

Witam wszystkich :)

Mam problem z użyciem Portc.6 w Atmega8, który służy jednocześnie jako RESET. Pin ten nie reaguje jako wejście, ani jako wyjście i panuje na nim napięcie ok. 3V. Próba zamiany Fusebitu "Pinc.6 is PIN" spowodowała zablokowanie procka i nie można go już zaprogramować (Bascom go nie widzi). Czy jest jakaś inna metoda przywrócenia tego pinu jako I/O?

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 17 gru 2008, 19:04

Skoro go wyłączyłeś fusami to może on teraz być Pinem wejsciowym lub wyjściowym. Aby zaprogramować trzeba programator rownolegly gdyż odblokowanie resetu jako pinu powoduje utratę możliwości programowania szeregowego przez ISP

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 17 gru 2008, 20:31

To akurat wiem. Jak zbierze mi się kilka zablokowanych procków, to wykonam taki programator.

Nie da się jednak pogodzić programowania szeregowego przez ISP z używaniem portc.6 jako reset?

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 17 gru 2008, 21:13

Nie

kaliska5
Użytkownik
Posty: 348
Rejestracja: 01 maja 2008, 8:24
Lokalizacja: z nienacka
Kontakt:

Post autor: kaliska5 » 17 gru 2008, 21:46

Da się takiego procka odblokować. Osobiście tego nie próbowałem ale podobno działa
tu jest wszystko opisane.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 18 gru 2008, 7:10

Tekst można poczytać, ale schematów nie obejrzę, bo nie jestem zalogowany,nawet nie rejestrowałem się na Elektrodzie. Dlaczego oni tak utrudniają życie Internautom?

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 18 gru 2008, 7:14

To się zarejestruj - nic to nie kosztuje. Co do linka to nie rozwiązuje on Twojego problemu gdyż nie dotyczy przypadku ustawienia pinu Reset jako normalne I/O.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 18 gru 2008, 10:15

Przy okazji - czy jeśli pin reset zostawi się odblokowany to można jednocześnie ustawić jakieś opóźnienie wewnętrzne (tak żeby pin reset działał do programowania ale żeby nie trzeba było dawać do niego kondensatora podczas pracy okładu)? Co do elektrody, te posty są z 2004 roku, obecnie jest zrobiony inny system wklejania grafiki który o ile wiem nie wymaga logowania żeby zobaczyć obrazki. A blokowali pewnie dlatego, że gdyby każdy przypadkowy internauta oglądał te obrazki to transfer ich serwera wzrósł by kilkukrotnie.

snow
Użytkownik
Posty: 794
Rejestracja: 16 sty 2007, 3:44
Lokalizacja: lubelskie
Kontakt:

Post autor: snow » 18 gru 2008, 10:26

c4r0 pisze:tak żeby pin reset działał do programowania ale żeby nie trzeba było dawać do niego kondensatora podczas pracy okładu
Ja rzadko kiedy daje ten kondensator, a w zasadzie to go w ogóle nie daje ;) On ma tworzyć filtr dolnoprzepustowy ale jak napięcie podane na Reset jest czyste (zazwyczaj i tak się daje stabilizator do zasilania procesora) to IMHO nie ma sensu dawać tam kondensatora.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 18 gru 2008, 11:38

Hmm, a nie chodziło o to żeby przez pewien czas od włączenia zasilania (zanim ten kondensatorek się naładuje) przetrzymać układ w stanie resetu, żeby się wszystko ustabilizowało zanim ruszy?

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 18 gru 2008, 16:46

Myślę, że o to chodziło, tak się robiło kiedyś z CMOSami, rezystor (47-220k) do zasilania i kondensator (10n-100n) do masy a "po środku" reset.

Ciekawe, czy ten pin można użyć do innych celów, np. skonfigurować na nim jeden z pinów wyświetlacza LCD, albo I²C czy 1-Wire? Oczywiście nadal by służył jako RESET do programowania przez ISP.

Wojtek
Moderator
Posty: 2606
Rejestracja: 04 sie 2002, 19:00
Lokalizacja: --
Kontakt:

Post autor: Wojtek » 18 gru 2008, 16:57

tutaj jest wyjaśnione kiedy i po co daje się kondensator rezystor i diodę na pin reset http://www.atmel.com/dyn/resources/prod ... oc2521.pdf

[ Dodano: 2008-12-18, 17:04 ]
Dla Atmega8

Kod: Zaznacz cały

 RESET - Port C, Bit 6
RESET, Reset pin: When the RSTDISBL Fuse is programmed, this pin functions as a normal I/O pin, and the part will have to rely on Power-on Reset and Brown-out Reset as its reset sources. When the RSTDISBL Fuse is unprogrammed, the reset circuitry is connected to the pin, and the pin can not be used as an I/O pin.
If PC6 is used as a reset pin, DDC6, PORTC6 and PINC6 will all read 0.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 18 gru 2008, 20:16

Teraz już rozumiem. Jedynym wyjściem byłoby zaprogramowanie tego pinu jako I/O na samym końcu pisania programu, i pogodzeniu się z brakiem możliwości zmian w programie, albo użyć inny mikrokontroler z większą ilością pinów.

ODPOWIEDZ