At90s2313 i attiny2313 problemy z opóźnieniami

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!
ZbeeGin

Post autor: ZbeeGin » 11 sie 2006, 17:41

Jeśli masz zewnętrzny kwarc, to Fusebit A987 ustawiłeś właściwie.

A propos opóźnień. Dlaczego używasz Waitms z taką dużą wartością? Przecież istenije komenda Wait której czas podaje się w sekundach...

mariachi
-
Posty: 27
Rejestracja: 15 mar 2006, 16:43

Post autor: mariachi » 11 sie 2006, 18:25

ZbeeGin pisze:Jeśli masz zewnętrzny kwarc, to Fusebit A987 ustawiłeś właściwie.

A propos opóźnień. Dlaczego używasz Waitms z taką dużą wartością? Przecież istenije komenda Wait której czas podaje się w sekundach...
No tak ale zmiana z waitms na wait nic nie dała (bo co miała dać poza zmianą formy zapisu)...

Może procesor nie korzysta z zewnętrznego kwarcu ? podstawka i układ połączeń jest od AT90S2313 i jak tam był to wszystko działało a teraz z ATTiny coś jest nie tak z tymi czasami...czy trzeba coś zmienić w układzie połączeń i tu jest przyczyna problemu :?:

A może inaczej ... jeżeli tak mi nie działa to ile należy wpisać w programie, aby czekał 2 sekundy przy wykorzystaiu wewnętrznego licznika - czyli ustawiając Fusebit A987 na inną opcję ?

Podzielić przez 8 ?[/code]

ZbeeGin

Post autor: ZbeeGin » 11 sie 2006, 20:04

mariachi pisze:Może procesor nie korzysta z zewnętrznego kwarcu?
Prawdopodobne, ale można to łatwo sprawdzić. Odłącz kwarc i zobacz czy programator skomunikuje się z porcesorem. Jeśli procesor zostanie wykryty to znaczy, że pracuje na wewnętrznym generatorze (Internal Oscillator). Jeśli nie, to Fusebit A987 jest ustawiony na właściwy sposób taktowania.

mariachi pisze:A może inaczej ... jeżeli tak mi nie działa to ile należy wpisać w programie, aby czekał 2 sekundy przy wykorzystaiu wewnętrznego licznika - czyli ustawiając Fusebit A987 na inną opcję ?
Fusebitami A987 możesz sobie ustawić czy procesor ma wogóle korzystać z wyprowadzeń XTAL1, XTAL2 w celu taktowania przez zewnętrzny rezonator kwarcowy. Tutaj o częstotliwości taktowania decyduje sam kwarc - a ściślej jego czestotliwość rezonansowa. Jest jednak małe ale - patrz nota katalogowa, str. 26. - istnieje podział na kilka zakresów pracy kwarcu. Np. ustawienie 1111 daje zakres od 8MHz do max. jaką obsługuje układ (10MHz - 10PI, 20MHz - 20PI). Aby być w zgodzie z "prawdą" (wspomniany datasheet :grin: ) przy kwarcu 4MHz to ustawione powinno być 1101 - czyli zakres 3...8Mhz.

Jeśli wpisując $crystal = 4000000 uzyskujesz czasy dwa razy większe to wpisz $crystal = 2000000 (dwa razy mniej) i zobacz jaki był tego efekt. Jeśli nic to nie zmieniło to wpisz $crystal = 1000000, i jeśli tym razem czasy są dobre to procesor może pracować wg domyślnych ustawień fabrycznych - zatem należałoby sprawdzić faktyczny stan fusebitów. W Bascomie : Lock and Fuse Bits i tam Refresh.

mariachi
-
Posty: 27
Rejestracja: 15 mar 2006, 16:43

Post autor: mariachi » 11 sie 2006, 21:38

Dzięki ZbeeGin :smile: to "Refresh" naprowadziło mnie na mój błąd - okno nie było całkowicie otwarte i nie było widać opcji po prawej stronie czyli WriteFB i procesor wracał ciagle do ustawień fabrycznych /.... nareszcie działa :grin:

Awatar użytkownika
mariusz_edw
Użytkownik
Posty: 307
Rejestracja: 22 lip 2005, 13:02
Lokalizacja: Polanica Zdrój
Kontakt:

Post autor: mariusz_edw » 19 wrz 2006, 12:55

Witam.

Info wstępne, proc. ATiny2313, programator COMBO3

Mam FUSE bit skonfigurowany na oscylator zewnętrzny ext. osc., program skompilowany z deklaracją $crystal na 4MHz, w układzie jest wstawiony kwarc 4MHz, program startuje, ale wszystko działa ze 4x wolniej.

Zmieniłem fuse bit na XTAL 3-8MHz, później XTAL 0,9-3MHz i XTAL 0,4-0,9MHz, poprawiało to krokowo sprawę, ale program dalej działa conajmniej ze 2x wolniej.

Obrazek

Mam pytanie - czy jak wywalę zewnętrzny rezonator kwarcowy, i ustawię fuse bit na int. RC 4MHz, to wszystko będzie chodzić jak trzeba, włącznie z Watch Dogiem i generowaniem kodów DTMF?


==========================
edycja
==========================

I znowu sam rozwiązałem problem.

Trzeba zaznczyć opcję, jak na rysunku:

Obrazek

Lukgwo
-
Posty: 9
Rejestracja: 11 paź 2005, 14:31

Zamykam temat

Post autor: Lukgwo » 06 mar 2007, 20:23

Przepraszam że tak długo niepisałem - problem ten występował z powodu dzielenia częstotliwości oscylatora przez 8 - dzięki wszystkim

ODPOWIEDZ