Fusebit CKDIV8 wyłączyłeś?
No pewnie a nie widzisz że masz załączony Fusebit CKDIV8 ! przecież to jak byk widać i dzieli ci to częstotliwość taktowania przez 8 - jak więc chcesz mieć prawidłową transmisję ?
Po pierwsze musisz wyłączyć fusebit CKDIV8 dzielący sygnał zegarowy przez 8. Po drugie niepoprawnie podałeśfusebity cksel. 1 oznacza bit niezaprogramowany a 0 zaprogramowany. Pewnie używasz programatora który nie pokazuje 0 i 1 tylko "ptaszki" czy coś w tym stylu. Co do programu to polecam użyć tryb ctc i ustawić wyjście sygnału na pb2. Nie bedziesz...
Jeśli dobrze policzyłem przerwanie powinieneś mieć co 0,5 sekundy. 18432000 / (2 * 1024 * 4500) = 2Hz Ponieważ w przerwaniu zmieniasz stan pinu na przeciwny, to na nim powinien być 1Hz. Jeśli fusebit CKDIV8 masz zaprogramowany (fabrycznie ustawiony), to na pinie powinno być 0,125Hz, czyli stan wysoki co 8 sekund. Zakładam oczywiście, że pracując z takim...
W zależności od tego jakim programem programujesz odszukaj pole "Parametr" lub "Dodatkowe parametry" i wpisz "-B 8" (minus B osiem) Obrazek przykładowy dla Burn-o-mat w tym wątku http://www.elektroda.pl/rtvforum/topic29... W niektórych programatorach zamiast "AutoSCK" jest rozwijana lista i z niej wybierz 185kHz. Jak się połączysz to zmień FuseBit...
Dla zewnętrznego rezonatora kwarcowego > 8MHz CKSEL3:0 = 1111. Dodatkowo aby wyłączyć podział zegara przez 8 musi być CKDIV8 = 1. Zauważ, że "ptaszek" oznacza bit zaprogramowany, co w nomenklaturze Atmela oznacza wartość 0. Musisz "odptaszyć" CKDIV8 i CKSEL3:0 Jacek
Ten bit nazywa się CKDIV8 i dzieli zegar przez 8 a nie 16;] Jeżeli procek ma działać z częstotliwością 16MHz powinieneś go wyłączyć.
Posłuchaj ;) ... ja ci proponuję - odpuść sobie to myślenie o CKDIV8. Tzn wyłącz ten Fusebit i przestań o nim myśleć za to staraj się doprowadzić do prawidłowej transmisji wg PDF'a procka. Ty masz wciąż podstawowe problemy z inicjalizacją i przez to masz krzaczki/ptaszki - a to że raz widać jakieś literki a innym razem nie - nie ma nic wspólnego że...
To sprawdź fusebit CKDIV8 = "0", bo wydaje mi się że powinno być 1.
Jak wyjmujesz z pudełka nowy Attiny to należy ustawić programator na SLOW, fabrycznie procki AVR są ustawione na 1MHz i "zwykły" programator może nie zadziałać. Niestety ten core do Attiny2313 tego nie przewidział: https://obrazki.elektroda.pl/8160094400_... W starszej wersji Arduino wszystkie programatory były wymieszane, można było...
Masz ustawiony fusebit CKDIV8 - skasuj go. Teraz mikrokontroler dzieli zegar przez 8. Co do folii aluminiowej - trzeba pokręcić potencjometrem :)
Witam, Wszystko zaczęło działać. Metody są dwie. Pierwsza to ustawienie $crystal = 1000000 Drugie rozwiązanie to ustawienie pracy z zewnętrznym generatorem w fusebit CKDIV8 trzeba odhaczyć ptaszek pozdrawiam
Witajcie, chciałbym się z wami podzielić moim projektem jednostronnej płytki do platformy Makerbuino. W internecie jest dostępny dwustronny projekt płytki ale skoro takich nie umiem robić to postanowiłem samemu zaprojektować pcb. Udało się jednak zaznaczam że mogłem ją lepiej wykonać, ale po prostu nie chciało mi się siedzieć jeszcze dodatkowych paru...
Przecież masz włączony dzielnik przez 8 (fusebit LOW.CKDIV8). Czyli twój zegar to 10MHz/8.
Ale na screenie jest do wyboru tylko 8mhz, . Skoro jest tylko 8MHz to znaczy że nie ma w tym procku do wyboru innych opcji jak 1MHz, 2MHz czy 4MHz. Za to masz Fusebit CKDIV8 - dzięki czemu masz do wyboru albo 1MHz (ustawione fabrycznie albo 8MHz. Jak myślisz dlaczego producent w nowszych prockach rezygnuje z tych 2MHz czy 4MHz ???? bo to na diabła...
Fusebit CKDIV8 - ZAWSZE podzieli ci KAŻDĄ częstotliwość taktowania jaką ustawisz fusebitami CKSEL, przez 8 .... rozumiesz? Dlatego fabrycznie miałeś ten procek ustawiony na wewn. oscylator RC = 8MHz i włączony CKDIV8 - dzięki czemu pracował domyślnie z taktowaniem 1MHz A kto ci powiedział że jak korzystasz z wewn. oscylatora to nie możesz skorzystać...
fusebitami mam ustawione 8MHz. Preskalerem dzielę na 1024, więc wychodzi 7812,5Hz. Jako że jest to timer0 to ma rozdzielczość 256, więc częstotliwość wychodzi 30,517... Hz. Z tego by wynikało, że mój licznik powinien dochodzić do 30 i powodować świecenie diody przez ~1s. Tak się jednak nie dzieje, trwa to ~8s. Gdzie moje rozumowanie jest złe? :) Być...
Ustawienia rejestrów, i trybów masz ok - tylko właśnie ten nieszczęsny wektor przerwania. To może jeszcze wejdź na blog M.Kardasia czyli: http://mirekk36.blogspot.com/2012/03/ecl... i zobacz jak można sobie ułatwiać życie dzięki Eclipse a w twoim szczególnym przypadku jak szukać wektorów przerwań (masz tam też wiele...
czy nie jest uruchomiony dzielnik zegara przez 8. bo ma włączony bit CKDIV. Tylko od kiedy Atmega8 ma fusebit CKDIV8? TCCR1A |= (1<< WGM12); //tryb CTC WGM12 jest w rejestrze TCCR1B
Nie radzę tego robić z UNO, bo są tam dwie ATmegi ( adasikp 3,3V to przy takim taktowaniu to za mało. Niektóre prostsze modele (np. PRO MINI) można potraktować napięciem niższym niż nominalne jeśli zaprogramujesz (czyli wyzerujesz programatorem, sama zmiana w boards.txt nie wystarczy) fusebit CKDIV8 i zmienisz upload.speed w boards.txt na 8 razy mniejszy...
Program MoAvrCalculator odczytuje ci normalnie sygnaturę? pokazuje nazwę procka? o odczytuje fusebity? i mówisz że są ustawione tak, że taktowanie to 8MHz? ale czy zastanowiłeś się, że procek ten domyślnie z fabryki ma włączony fusebit CKDIV8 ??? zajrzyj że sobie do zakładki "Fusy uproszczone" widać go tam zaznaczonego zapewne jak na dłoni .... i dlatego...
niestety dalej nic, ja chcę uruchomić najszybsza transmisję jaką się da:) ale żeby cokolwiek uruchomić zaczynam od nieco wolniejszej. ścieżka to jakieś 3cm wiec można zaszaleć:) nadal odbieram 128.... probowałem tez w miejsce Megi32 wsadzić mege16- zachowanie to samo i jeszcze jedna ważna uwaga w odbiorniku(mega32) zmienna f UCSRA = (0<<RXC);...
Po pierwsze - to chyba oczywiste że jeśli spróbujesz zaprogramować procka ATtiny2313 wsadem do ATmega8 to się nie ma prawa udać. Po drugie to jak pisałem - program mkAvrCalculator wykrył ci procka bo sam dokonuje na czas odczytu jego sygnatury (automatycznie) spowolnienia taktowania w programatorze USBASP ale ..... ..... ale żeby móc wgrywać prawidłowy...
Witam Widzę że sporo problemów jest przy uruchomieniu sterownika na ATtiny13 i dlatego zwróce uwagę na kilka elementów jakie mogą być przyczyna kłopotów. - wsady ze stronki są prawidłowe i sprawdzone, - w FUSEBIT znacznik CKDIV8 musi być wyłączony!!! (przy nowym układzie jest domyślnie ustawiony), - oscylator wewnętrzy musi być ustawiony na 9,6MHz,...
Ok. Czyli chodzi o ten prescaler: "Divide clock by 8 internally; Tak, pod warunkiem jednak, że uController ma wbudowany taki "Clock prescaler". Jest dośc duża grupa uC nie posiadających takiego prescalera (Mega8/M16/M32/M64 i inne). Zatem przed wszystkim należy kierowac się informacjami z datasheet. CKDIV8 jest to wybrana wartośc ustawienia CLKLPR...
Fusebit ckdiv8. Reszta tam gdzie zawsze:-)
A fusebit "CKDIV8" masz wyzerowany?
Hej, 5657jz - widzę włączony fusebit CKDIV8, pytanie - jakim kwarcem taktujesz atmegę ?
kaczy1n : Licznik jest inkrementowany, nie dekrementowany, stąd wpisanie jedynki spowoduje przepełnienie się licznika po 255*256 cyklach zegara. Dla zegara 8MHz uzyskasz 61Hz, dla zegara 1MHz około 8Hz - sprawdź, czy masz dobrze wybrane źródło zegara. janbernat : Gdzie jest napisane, że atmega8 posiada fusebit ckdiv8?
Attiny działa na wewnętrznym kwarcu 8 MHz tak jak został przyniesiony ze sklepu (Fusebitów nie zmieniałem). Nowy procesor ze sklepu ma włączony podzielnik i pracuje na częstotliwości 1MHz. Bit włączający podzielnik nazywa sie CKDIV8 . Do zmiany FuseBit`ów podchodził bym jednak ostrożnie. Spróbuj innego programu do współpracy z tym procesorem. Przypominam...
Aktualnie pracuję na wewnętrznym generatorze, a jedyny fusebit jaki ustawiłem to CKDIV8.
Tak, a procek to atmega168 To po co ci było wgrywać bootloader? Wystarczyłoby zmienić tylko fusebity: (w zasadzie tylko wyeliminować podzielnik CKDIV8), resztę pozostawić fabryczne ustawienia, albo doinstalować zewnętrny rezonator 8MHz. i ustawić odpowiedni fusebit dla niego. Procedura ta poszła jednak w niewłaściwym kierunku..... Jakoś nie sprawdziła...
kolego szeri88 -> nie popełniłeś błędu podając, że $crystal = 1000000 bo świeżo kupiony i nie przeprogramowany ATtiny ma właśnie ustawiony wewnętrzny oscylator (a nie rezonator) na wartość wprawdzie 8MHz ale włączony jest FuseBit CKDIV8, który dzieli tę częstotliwość przez 8 i w efekcie końcowym uc pracuje tak jak zdeklarowałeś na początku z częstotliwością...
CKSEL powinny być ustawione na 0111, sprawdź też CKDIV8 czy nie jest czasami zaprogramowany (tak jest domyślnie). Jest też możliwość, że kwarc się wzbudza na jakiejś innej harmonicznej.
Najpewniejszy sposób to Programator HV/PP (np. AVRDragon) lub FusebitDoctor: http://diy.elektroda.eu/atmega-fusebit-d...
Ponadto możesz sprawdzić czy nie jest czasem włączony fusebit odpowiedzialny za podział częstotliwości zegara przez 8 ("devide clock by 8 internally - CKDIV8"). Wszystkie egzemplarze 2313 jakie się mi przytrafiły miały ustawiony ten fusebit i musiałem go "odznaczyć".
Dziękuję za odpowiedzi. Kondensator filtrujący nic nie pomógł. Konfiguracja w procku zgodna z tą w komputerze. Dodano po 53 Dziękuję za pomocne rady. Udało mi się uruchomić komunikację. Przyczyna leżała w załączonym podziale przez 8 częstotliwości taktowania. Wystarczyło wyłączyć fusebit CKDIV8. Mam jednak jeszcze jedno pytanie. Nie chcę zakładać nowego...
Teraz zauważyłem, że masz już założone LockBit`y. Pewnie to go trzyma. Skasuj procesor, wyłącz CKDIV8, zaprogramuj a na końcu załóż LOCKBit`y W bascomowym programie możesz też wyłączyć CKDIV8 programowo. Napisz w kodzie "CONFIG CLOCKDIV = 1" a zobaczysz co się stanie :D
LF 0xC3 to wewnętrzny oscylator 128kHz. Atmega 328, jak mnie pamięć nie myli, nie ma wewnętrznego taktowania 4MHz, Jest 128kHz i 8MHz (ewentualnie 1MHz po ustawieniu CKDIV8) Jeżeli faktycznie ustawiłeś 0xC3 to spróbuj zewrzeć w programatorze zworę slow sck, procek powinien ruszyć.
JTAGEN = 1 - JTAG wyłączony SPIEN = 0 - programowanie SPI włączone BOOTSZ1 = 0 BOOTSZ0 = 0 CKDIV8 = 1 SUT0 = 0 SUT1 = 1 CKSEL3 = 1 CKSEL2 = 1 CKSEL1 = 0 CSSEL0 = 1
W kalkulatorze włącz opcję Auto SCK speed bo na Twoim screenie jest ewidentnie niezaznaczona. Wtedy kalkulator przy starcie odczytu ustawia najnizszą prędkość SCK i odczytuje Fusebit`y. Jak zobaczy że masz juz wyłączony CKDIV8 to programuje szybciej i mógłby na przykład 1/4 prędkości 8MHz ale w praktyce najczęściej 1500 kHz. W opcjach programu włącz...
Jeżeli nie ruszyłeś bitu CKDIV8 (fabrycznie włączony) to uC powinien ci ruszyć po podlutowaniu generatora 1MHz. #edit: poprawka
ATmega88 ma jeszcze takiego fusebita jak CKDIV8, masz zegar zewnętrzny ale dzielony przez 8. Musisz wyłączyć tego fusebita, żeby śmigało tak jak chcesz.
Zainteresuj się fusebitem CKDIV8 P.S. Jesteś pewien, że masz rezonator kwarcowy 16k (jednostka bliżej nieznana) ? ;)
(at)emarcus dziękuję za słuszne uwagi które przydają się na przyszłość. Przyznam że nie przestudiowałem dokładnie d/shta attiny stąd moje błędy dotyczące taktowania i innych. ........... .... nie mogę się tam ale doszukać taktowania 1.2MHz no chyba że źle szukam. Edit: Doszukałem się jeszcze czegoś o jakimś zegarze 128kHz. Może o to ci chodziło? Potrzebowabyś...
To Twój post musisz włączyć przerwania. Mi się zdarza zapomnieć własnie dla jakichś małych kodzików testowych bo w normalnym kodzie najczęściej przerwania są włączone. Dla wewnętrznego rezonatora (niezalecane) pamiętaj o wyłączeniu CKDIV8 albo poprawnego zadeklarowania prędkości bo dla niej kompilator wylicza UBRR. W swoim temacie poprzednim masz link...
Klikasz "Sprawdź podłączony AVR", przechodzisz do zakładki "Fusy uproszczone", odznaczasz CKDIV8, wracasz do zakładki "Programator AVR", przestawiasz na Zapisz, zaznaczasz tylko Fusebity i wgrywasz.
Ja sie podepnę, bo też się zacząłem bawić w bascomie AVR i "wyskrobałem" takie coś: $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 19200 Const Maxlen = 40 'Deklaracje stalych Dim Akey As Byte 'Deklaracje zminnych Dim I As Byte Dim Buffer As String * Maxlen Dim E As Eram String * Maxlen I = 0 Declare Sub Store 'Deklaracje funkcji Declare...
Wyłącz fusebita w attiny2313 oznaczonego jako CKDIV8 i tyle. Ewentualnie sprawdź ustawienia wewnętrznego oscylatora, jeśli go wykorzystujesz. Można poeksperymentować. Klucz do sukcesu leży w tych fusebitach: -CKDIV8 -SUT1/0 -CKSEL4/3/2/1/0 Poczytaj sobie dokładnie notę katalogową tego układu.
W Burn'O'Mat fusebity są odwrócone - ptaszek = 0, brak ptaszka = 1, zatem powinieneś dla kwarcu 12MHz odznaczyć wszystkie bity CKSEL. Gdy je zaznaczysz wychodzi 0000, czyli External clock, więc na generatorze działa, a na kwarcu nie. Ustaw wszystkie odznaczone, wtedy powinno zadziałać. Pozdrawiam
ckdiv8 attiny2313 ckdiv8 attiny13 programator fusebit
signum automat zasila centrala integra demontaż wiertarki
samsung ue40d5500 restart sterownik titanic
Wymiana czujnika temperatury w pralce Whirlpool AWG 334-800 Wybór kabla do przyłącza domu 710m 17kW