Hej, Nie musisz. Kwarc zegarkowy daje namiastkę RTC. Sam kontroler chodzi na wewnętrznym generatorze. Pozdrowienia
Cześć. Piszę program na mikrokontrolerze Atmega16. Wszystko dobrze działa na wewnętrznym kwarcu 8MHz. Chcę go przestawić na zewnętrzny 16MHz. Zmieniam fuse bity na 0xFF i Ox99 i procesor się blokuje, nie można odczytać sygnatury. Co robię źle?
Podmień kwarc na inny. Kondensatorki też możesz dać inne. Zobaczysz czy pomoże. Jak kupisz nowy to chodzi na wewnętrznym generatorze i możesz w ogóle nie mieć kwarcu zewnętrznego. Wydaje mi się że kwarc zewnętrzny może być podpięty bo µC i tak z niego nie korzysta. Te nóżki będą wykorzystane jak przełączysz się na zewnętrzny w fusebitach. To że...
Pisząc 8MHz (wewnętrzny kwarc) miałeś chyba na myśli wewnętrzny oscylator ? tak? i że przy takiej konfiguracji szwankuje ci ATmega16 ???? Jeśli tak to mogę się podzielić moimi spostrzeżeniami. Otóż nie wiedzieć czemu też często a w zasadzie zawsze gdy biorę Atmega16 na wewn oscylatorze 8MHz to na 9600 nie chce mi działać zbyt dobrze podczas gdy ATmega8...
A wewnętrzny pull-up włączony? Bo objaw jest typowy dla programu, w którym włączone jest przerwanie zewnętrzne, a wejście wisi w powietrzu, choć program jest prosty i nie ma w nim obsługi przerwań... Ustaw w pętli niech samo zwiększa wartość zmiennej i obserwuj czy dalej są zakłócenia.
Nie chodzi mi o zewnętrzne źródło dla taktowania, tylko wewnętrzne.
Zrobiłem wg twojego programu, i wyłączam przerwania na czas odczytu temperatury. Termometr cały czas zwraca 0. Czy problem może tkwić w tym że korzystam z wewnętrznego kwarcu?
Normalnie wyświetla wszystko, ale nie działają żadne klawisze i tak się dzieje przy wewnętrznym lub zewnętrznym kwarcu procesor podmieniałem ale dalej to samo.
Sprawdz program, parametry transmisji (w kompie też)... Mega16 chodzi na wewnętrznym oscylatorze czy zewnętrznym kwarcu...?
taktuję go wewnętrznym kwarcem stąd błąd??
ATmega nie ma wewnętrznego kwarcu, tylko wewnętrzny oscylator RC. Oscylator ten jest straszliwie rozjechany i nie ma dokładnie 1 MHz, chyba że się trafi taki egzemplarz, który akurat ma. Jak nie ma, to trzeba skalibrować. To może być jedna z przyczyn odczytywania złych wyników. Częstotliwość oscylatora pływa razem z temperaturą i napięciem zasilania....
Jeżeli masz podłączone kondensatory zewnętrzne przy kwarcu, to po co jeszcze dodatkowo włączać wewnętrzne, które powiększą sumaryczna pojemność i będą zakłócać prace kwarcu?
Więc powtarzam ostatni raz. MASZ ZABLOKOWANY PROCESOR. Jeśli nigdy nie kombinowałeś z fiuse bitami, to procek leci na fabrycznych ustawieniach, czyli na wewnętrznym zegarze. Wywal kwarc i kondensatorki , podłącz impulsy z zewnątrz i zobacz czy to zadziała. Jeśli odczytasz sygnature procka to go skasuj. Następnie weź note aplikacyjna i przeczytaj które...
Witajcie Koledzy czy czsami kwarc w ATmedze 16-8 nie ma 1 MHz ? Dzwoni, ale w którym kościele? Kolega ma na myśli fabryczną nastawę na generator wewnętrzny 1MHz. Jeśli się ją zmieni to taktowanie może mieć inną wartość i inne źródło.
Nie jest ważna dla mnie dokładność pomiaru dlatego zrobiłem to na wewnętrznym RC. Poza tym, pamiętam, że kiedyś podobne problemy miałem z zewnętrznym kwarcem - też wyskakiwały krzaki i procesor wariował. Jeżeli chodzi o zasilanie to sprawdzałem na oscyloskopie - wygląda OK.
Znalazłem taki kod na forum, ale nie działa na atmega16 z wewnętrznym kwarcem 2Mhz, jeśli ktoś ma sprawdzony kod niech udostępni go. void i2c_init (void) { TWBR = 0x10; } unsigned char i2c_start (void) { /*writing a one to TWINT clears it, TWSTA=Start, TWEN=TWI-enable*/ TWCR = (1<<TWINT) | (1<<TWSTA)...
Niczego nie zablokujesz ponieważ domyślnie nowy (prosto ze sklepu) procesor pracuje na wewnętrznym zegarze i "nie interesuje" go co jest podłączone do wejść zegarowych. Dopiero przestawiając bity konfiguracyjne przełączasz sygnał zegarowy. Tutaj screen z ustawień w Bascomie: http://www.elektroda.pl/rtvforum/topic57... PS. romantv nie wprowadzaj...
zapewne to wina wewnętrznego kwarcu i liczenia zmiennoprzecinkowego. A propos ta obsługa przerwania jest zdecydowanie za długa. I zmiennoprzecinkowe po co? PS. taką metodą RTC nie wyjdzie najlepszej jakości. Timer 2 asynchronicznie z kwarcem 32,786.
Jeśli procesor nie jest taktowany z kwarcu tylko wewnętrznego RC to takie błędy są normalne. Trzeba go dokładnie skalibrować a i to nic nie gwarantuje. Odbierając znak sprawdź rejestr stanu, zapewne będziesz miał FE albo PE.
Raczej niemożliwe żebyś ubił Mege podłączając kwarc, podejżewam że błąd tkwi gdzie indziej, pewnie w fusach, albo w programie, skoro proc się programuje to znaczy że żyje, podejżewam na wewnętrznym RC, bo bez sygnału taktującego się zaprogramować nie da
RTC po to żeby dokładnie liczyć czas, zapewnia mi to kwarc zegarkowy który jest lepszy do liczenia czasu niż "okrągłe" kwarce (jak na przykład 20MHz). Atmegi na zegarkowym nie puszczę, bo się multiplex z pwm-em nie będą wyrabiać. Chyba że da się taktować atmegę wewnętrznym kwarcem, timer puścić asynchronicznie, taktowany kwarcem zegarkowym. Co do oporników...
Witam! Ten kod powinien działać! Czym taktujesz ATMega?. Ja zawsze tam gdzie jest transmisja na UART daję kwarc. Wewnętrzny oscylator jest mało dokładny i mało stabilny termicznie.
Oscylator wewnętrzny nie nadaje się do wykorzystywania, kiedy w układzie działa USART. Jest on mało stabilny. I stąd pewnie masz błędy. Algorytmy dla CRC są trudne dla implementacji w C# i AVR? No bez przesady. Ale, żeby nie było, że jestem taki zły ;) Dodaj do Atmegi zewnętrzny kwarc (Dobierz odpowiednią wartość zgodnie z datasheet'em). Proste CRC....
Prościej będzie podłączyć pod wejście zegarowe (zamiast kwarcu) generator 1-4MHz i ustawić poprawnie fuse bity (na taktowanie wewnętrzne). Po tym ustawieniu można ponownie programować "zwyczajnie". Temat był szeroko omawiany na forum (przejrzyj FAQ dotyczące fuse bitów)
Nie rozumiem napisałeś $crystal = 1000000 a później Próbuje na wewnętrznym i zewnętrznym kwarcu 4 i 8 Mhz i nie działa.
dałem zewnetrzny kwarc i jest ok, co nie zmienia faktu,że atmega16 działala na wewnętrznym dla rożnych napięć, widocznie jej oscylator jest mniej wrazliwy na zmiany napięcia.
Przestawiałem Fusy, i z wewnętrznym taktowaniem 1MHz i z zewnętrznym kwarcem 8MHz też. Czy dla kwarcu 8 MHz, Fusy A987 wybrać 1110 ?
Mikrokontroler jest skomplikowanym synchronicznym układem sekwencyjnym, którego wewnętrzne moduły muszą być "popędzane" i synchronizowane przez sygnał taktujący: http://pl.wikipedia.org/wiki/Uk%C5%82ad_... Sygnał taktujący może być uzyskany z wewnętrznego źródła jakie z reguły w mikrokontrolerze występuje czyli generatora RC, ale może być także...
Ja nie wiem, jakim cudem wyszło Ci 40us. Jeden obieg wewnętrznej pętli (wait_us_1) wykonuje się w 10 cyklach. Wartość w R16 jest nie w mikrosekundach a w dziesiątkach mikrosekund. Pętla wykona się w czasie: 255 * 10 (255 obiegów wewnętrznej pętli, każdy po 10 cykli) +1 * 9(ostatni obieg wewnętrznej pętli - bez skoku) +17 cykli na resztę razem: 2576...
Tak jak pisał Ci już kolega yarpen2, masz najprawdopodobniej źle ustawione bity Fuse! Odnośnie taktowania, ustawienia fabryczne są takie, że procek jest taktowany wewnętrznym oscylatorem RC 1MHz. Jeśli chcesz dołączyć kwarc, musisz zmienić bity Fuse CKSEL3..0 (opieram się na ATmega16). Zresztą poczytaj dokumentację Atmelowską. Pozdrawiam.
Witam! Na razie wypatrzyłem brak kwarcu ( chyba, że kolega chce użyć wewnętrzne źródło sygnału ), proponowałbym zasilenie przetwornika A/C tak jak jest w nocie katalogowej na stronie 213 ( www.atmel.com/dyn/resources/prod_documen... ). Nie wiem jaki kolega ma ten wyświetlacz, bo o ile mi wiadomo pojawiły się problemy z nowo produkowanymi,...
Procesor to atmega16L z wewnętrznym kwarcem 8Mhz (dodefiniowałem F_CPU 8000000L). bardzo ciekawe to co napisales, bo domyslnie ta atmega ma ustawiony oscylator 1MHz, a nie 8. do tego na porcie C ma cos takiego co sie zwie JTAG, co wypadaloby najpierw wylaczyc, jesli tego uzywasz. nie mam ochoty na wiecej zgadywanek, bo ani nie dalej schematu, ani calosci...
Brak modułu na pewno nie wpłynie na działanie układu. Jeśli procek wstaje tylko na wewnętrznym kwarcu właśnie od niego zaczął bym szukanie. Sprawdzając połączenia, kwarc i kondensatory. Możesz również płytkę wykonać samemu, wtedy będziesz miał 100% pewność.
Nóżki programowo nie zmienisz, ponieważ jest ona przypisana do danego licznika. Z kodu wynika, że to T0, który ma w M16 nieco więcej funkcj iniz w M8 co może Ci przeszkadzać... Moja rada zmień na M88 skoro już chcesz mieć mniejszą obudowę. Ewentualnie sprawdz czy funckję, które wykonuje T2, możesz zrobic na T0 i wtedy wyjściem będzie T2 (OC2x) Pozdrawiam...
Zobacz jeszcze "fusy" w procku czy masz ustawione na wewnętrzny czy zewnętrzny kwarc bo z programu wynika że masz podpięty kwarc zegarowy dla zliczania czasu.
Jak taktujesz procesor? Kwarcem czy wewnętrznym rezonatorem? Spróbuj zamienić sposób taktowania procesora
witam chodzi mi o ustawienie preskalera w timer2 ,bo podobno dzielnik odnosi sie w tylko do sygnalu wewnetrznego a nie do zewnetrznego kwarcu jaki mamy podpiety... (tak zrozumialem z dokumentacji) Wiec jezeli mam taktowanie zewnetrznym kwarcem to ile wynosi ten sygnal wewnetrzny ,bo nie wiem jak policzyc jedno tykniecie zegara dla danego preskalera...
Aby cokolwiek skalibrować musisz mieć wzorzec. Można oczywiście zmierzyć częstotliwość kwarcu. Dla tego PCF wzorcem mógłby być bardzo dobry miernik czasu, którym zmierzysz odstęp między zboczami na INT. Można więc zbudować sobie wzorzec (i go skalibrować, by później nim kalibrować inne projekty) albo skorzystać ze wzorców w postaci dobrej jakości częstościomierzy....
Wpisywać program będę przez Pony Proga.No właśnie, ze ja mam juz na płytce zewnętrzy kwarc 8MHz ale nie wiem jak zmienić w ustawieniach jego aby wspoółpracował z tym zewnetrznym kwarcem, od biedy też może współpracować ze swoim wewnetrtzynym tylko właśnie potrzebna mi jest jego wartość. BTW Czyli nie będzie kolidować jeżeli ewentualnie do do nóżek Xtal...
Właśnie że w symulatorze bascoma (wer. 1.11.7.4) też czas nie idzie?! Mam ustawiony wewnętrzny osc. 8MHZ czyli CLK3...0 = 0100 ale to nie istotne. Atmega16 może pracować z dwoma kwarcami zewnetrznymi (zegarkowym i systemowym) lub z zegarkowym i oscylatorem wewnętrznym jako zegar systemowy. Odnalazłem stronkę w wersji angielskiej, jest podobny programik...
Witaj, Jeżeli otrzymujesz odpowiedź z układu typu 255 czyli 0xFF to oznacza że masz błędnie napisane procedury niskopoziomowe prawdopodobnie czasówki. Na początek sprawdź czy przypadkiem nie masz ustawionego zegara zbyt niskiego 1[MHz] wewnętrznego. Aby funkcje opóźniające biblioteczne chodziły prawidłowo potrzebne jest z 4[MHz] a dobrze jest 8 [MHz]....
Jednak problemem był oscylator wewnętrzny! Podłączyłem kwarc i działa. Zmyliło mnie to, że program dobrze wysyłał inne bajty, niż te zawierające zera, więc kilka zer w bajcie było dobrze wysłanych. Dzięki.
Dzieki za odpowiedz, odnosnie "przyjanzych kwarcow" to orientuje sie i znam wspomniana tabele, i dlatego napisalem w nawiasie ze celowo nie uwzgledniam kwarcow bedacych liczba calkowita. bua -> tu nie chodzi o oscylatory które mają częstotliwość nie będącą liczbą całkowitą - tylko o podział na tzw "przyjazne dla RS232" czy nie. Najprościej jak sobie...
Witam Mam bardzo dziwny problem otóż atmega16 z dodatkowym kwarcem 32,768khz nie chce poprawnie działać. Uruchamiam ten timer2 w bascomie i próbowałem już róźnych ustawień, także zastępowałem komendy bascoma bezpośrednimi wpisami do rejestru i ciągle jest tak samo. Jeżeli przełącze na wewnętrzny kwarc ten timer2 to oczywiście działa, na zewnętrznym...
Z pomocą generatora ruszuł. Przestawiłem fusebity na wewnętrzny oscylator 4Mhz . Tak więc po sa te wyjscia w procesorze XTAL 1 i XTAL2 skoro i tak nie da sie go uruchomic z zewnętrznego kwarcu ?
Oba były sprawdzane za pomocą termianala na PC i przy tej predkości echo wracało takie jak zostało wysłane. To jeszcze nie musi oznaczać, że wszystko jest OK. Powiedzmy, że w jednym z nich prędkość jest o 2% za niska, a w drugim o 2% za wysoka. Przy transmisji z PC obydwa mieszczą się w tolerancji (zgodnie z datasheet Atmela błąd nie powinien przekraczać...
Czyli kolega ma kwarca 8MHz i pisze $crystal=8000000 ... $baud=9600 I nie bascom źle działa tylko nie czyta sie instrukcji i pdf od megi a tam jest jak byk napisane że nowa mega działa na oscylatorku wewnętrznym 1MHz czyli 9600/8=1200 jak kolega nie wierzy prosze wylutować kwarca a program i tak bedzie działał bo mega pracuje na wewnętrznym oscylatorku....
To chyba najrozsądniej jest zastosować kwarc zegarkowy i RTC procesora. Sam procesor może być taktowany z wewnętrznego generatora, co zaoszczędzi kolejnego kwarcu. Przykładów wykorzystania RTC (w tym przypadku real time counter) znajdziesz wiele.
To zależy, we wspomnianej XMEGA poducent gewarantuje 1% w całym zakresie temperatur. a jeśli mamy dowolny kwarc w systemie to DFLL na bieżąco kalibruje RC więc problemu nie ma. Programowo w ATMega też to można zrobić, lecz jest to oczywiście ciut bardziej kłopotliwe. A problem z zewnętrznym kwarcem jest taki, że w ATMega169 możesz podłączyć albo kwarc...
Witam Właśnie sprawdzałem na innym egzemplarzu ATmegi i sytuacja wygląda dokładnie tak samo... Fusebit KLA987 odczytywany jako 111111 i nie ma możliwości zmiany. Przy próbie zapisania zmiany Write FS wyrzuca błąd "READLB entry not found" i traci komunikacje z prockiem. Raz jakimś cudem zdarzyło się, że po wejściu w zakładkę "lock and fuse bits" jako...
Hey ! Mam ATmega16, którą programuję za pomocą STK200. Podłączyłem sobie do portów A i C wyświetlacze, znaczy do A segmenty, a do portu C tranzystory podłączone do anod wyświetlaczy. Problem jest taki, że nie ważne jak ją zaprogramuję na porcie C zawsze mam te same stany czyli 00111100, czyli nie świecą mi się środkowe wyświetlacze. Nie wiem co jest...
Potrzebuję czterech PWM i dwóch wejść odmierzających długość impulsu o zakresie od 1 do 2 ms. Pytanie czy atmega 8 się wyrobi czy muszę brać 16 . I jak rozumiem z wszystkich postów muszę pwm zrobić programowo bo potrzebuję pozostałych timerów do pomiaru impulsów. I pytanie o oscylator wewnętrzny czy mogę go użyć czy lepiej kwarc bo zależy mi na wielkości...
Masz zdecydowanie rację, odpowiedziałem tylko na Twoje pytanie - ile kosztuje AVRbutterfly? A tu zastosowałbym ATtiny 26 - cena 10pln, a ma wszystko co potrzeba: PWM, ADC, wewnętrzny zegar (kwarc nie jest potrzebny) i pełną listę instrukcji dla AVR. Poza tym zrobiłem już na nim kilka projektów i pewnie dlatego tak mi się podoba :D Pozdrawiam.
Po podłączeniu LEDów do portu D zamiast wyświetlacza mam coś takiego : LED0 czyli RS nie świeci LED1 - E - świeci stale LED2 - DB4 miga z częstotliwością 1Hz LED3 - DB5 świeci stale LED4 - DB6 miga tak samo jak LED2 LED5 - DB7 świeci stale Przy resecie procesora LED0 też mignie. Napisałem prosty program PORTD = PINB;i działa. Edit : Pojawił się przełom....
Sygnał taktujący podawany jest na pin XTAL1 AT90CAN128. Generowany jest przez ATmega16 (TIMER1 wyjście OC1A) więc mogę go sobie zmienić. Myślałem że to przez ten sygnał komunikacja nie działa dlatego jest taka mała częstotliwość. Dodano po 1 Wróciłem do wcześniejszych ustawień: AT90CAN128: taktowany z wewnętrznego kwarcu 8MHz, BAUD = 600 ATmega16: taktowana...
Jak masz stalowe nerwy i układ z którym programator współpracuje, ale ma ustawiony zegar >4MHz np. z zewnętrznego kwarcu, albo z wewnętrznego oscylatora, to możesz mu przestawić zegar na wewnętrzny 1MHz by się przekonać, czy dalej będzie działał. Jeśli przestanie to zmień sterowniki albo kup sobie inny programator. Jak będzie działał OK to masz problem...
Ostatnio kupiłem na allegro S65 oraz swoją pierwszą ATMEGĘ 16. Mam wobec tego kilka pytań. - Czy do samego wyświetlenia czegokolwiek potrzebny jest kwarc? - W kodzie programu znajduję: .EQU XTAL=7372800 (rozumiem, że jest to częstotliwość taktowania; bliska 8MH), czy 1000000 odpowiada 1MH -> pracy bez kwarcu? - Czy korzystanie z pinów portów B i D...
Wstawiłeś tu cały program, więc nie miej pretensji, że go nie analizowałem. Podam jedynie wszystkim znany link http://mikrokontrolery.net/index.htm do działających (przynajmniej u mnie) funkcji obsługi 1WIRE. Próby, które wykonałem na tym programie dotyczące głównie zmiany opóźnień powodowały, że czujnik przestawał reagować - stąd wiem, że czasy są...
Kontrast działa , ale wyświetla tylko górną linie (kwadracików) program się wgrywa ok przestawiam fushbity różne kombinacje a lcd nie reaguje. Dlaczego mi lcd nie wyświetla ? ten kod się kompiluje poprawnie . kod: $regfile = "m16def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7...
deus.ex.machina - testowałem różne kwarce i różne kondensatory. Jeszcze raz podkreślam - wewnętrzny oscylator działa bardzo dobrze, tylko ustawione fusebity BODLEVEL jakoś wpływają na jego niedziałanie. dondu - podłączenia kwarcu 32,768kHz pod XTAL1 i XTAL2 nigdy nie próbowałem. Kwarcu 32,768kHz używałem w jednym swoim projekcie z ATmega16 (teraz z...
Wiem że atmega16 ma tryb CTC który próbowałem bezskutecznie włączyć. Kolega Zumek napisał że bascom ma w tym miejscu błąd i nawet po zastosowaniu jego wskazówek nie mogłem tego trybu uruchomić a było by to najlepsze rozwiązanie. Męczę się już z tym przebiegiem strasznie i nic mi nie wychodzi. Może ktoś by mi napisał gotowca do bascoma jak skonfigurować...
Możesz podłączyć rezonator 32,768kHz pod XTAL1 i XTAL2 (odpowiednio ustawiając fusebity), ale wtedy cały procesor jest taktowany małą częstotliwością, więc niektóre funkcje mogą działać wolno. Procesor w fusach przełącza się na Int RC, a licznik rejestrowo na Async. Wtedy rdzeń procesora może być taktowany nawet 8MHz, a licznik 32kHz; co przy preskalerze...
kwarc zewnętrzny jest zegarkowy 1mhz to wewnętrzny w atmedze 8 co sekunde inkrementuje wartość zmienej lecz program wgrany na atmege 16 nie robi tego nie przechodzi wogóle do etykiety Zegarek
Dziękuje za zainteresowanie. Niestety nie mam debuggera w programatorze. Kwarc mam na wewnętrzny 1MHz. Nie korzystam z niczego innego tylko z LCD. A programy piszę po prostu w edytorze i kompiluję w konsoli. Używam linuxa. Co do tego fusebita to sprawdzę ale nic nie zmieniałem od nowości także powinno być ok.
Domyślnie atmegi są taktowane wewnętrznie 1MHz. Przyłączenie kwarcu bez przestawieniu fusebitów nie jest problemem. Atmega go nie używa i tak co jest napisane w dokumentacji. Wszystkie porty na starcie programu są wejściami co można przeczytać w dokumentacji kontrolera w opisie portów wejścia/wyjścia. Źle myślisz: Flagi kasuje się wpisując do nich programowo...
Fusebity nie ruszane. Atmega taktowana wewnętrznym oscylatorem. I ponoć do tego zastosowania, do którego ja używam zewnętrznego oscylatora, fusebitów ruszać nie trzeba.
A więc też miałem różne problemy przy sterowaniu serwo mechanizmem (HXT 900) i PWM nie działał przy nim ( wewnętrzny kwarc 8MHz/8 ) . A więc tak podepnij kwarc 8MHz najlepiej można w górę, ale nie przesadzamy, na wewnętrznym kwarcu serwo trochę "pływa" funkcje delay w wersji us jak i w wersji ms nie dają tego czasu którego oczekujesz. najlepiej zrobić...
Jak używasz wewnętrznego oscylatora to ustaw baudy na max 600,300. Wewnętrzny oscylator nie stabilny i komunikacja na nim musi być bardzo wolna aby nie było żadnych błędów. W terminalu by Bray możesz bez problemu ustawić taka prędkość. Najlepiej porostu dodaj zewnętrzny kwarc 8Mhz (38400, 9600 na pewno wtedy zadziała).
Dokładnie to mam programator i dodatkowo dołączaną podstawkę w której mogę wstawić swój procek i w tej podstawce jest kwarc 8mhz. (przy programatorze jest osobny kwarc.) Czyli faktycznie możesz sobie wstawić w podstawkę dowolny kwarc tak żeby mikroprocesor był widoczny po zaprogramowaniu fuse'ów. No właśnie po wgraniu fusów i programu mój procek jest...
Witam Ustawiłem procesor do pracy z kwarcem 16mhz. Następnie włożyłem do urządzenia, wgrałem program i wszystko było ok. Następnie wgrałem inny program bez zmieniania fuse bitów i tyle było dobrego. Po tym procesor stracił kontakt ze światem. Próbowałem z różnymi kwarcami, z generatorem na 74ls00 i nic. TEraz wpadłem na pomysł żeby sprawdzić na generatorze...
Teoretycznie w/g noty dla prędkości 2400 błąd transmisji dla 1MHz to 0,2%. Niestety czasem kalibracja fabryczna trochę kuleje więc możesz mieć pewien błąd wewnętrznego oscylatora. Jak to naprawić? masz rejestr o nazwie OSCCAL i tam możesz się pobawić. Co do zewnętrznych kwarców to są wartości tzw. przyjazne dla RS232 np. 110592MHz lub 73728MHz - zresztą...
Te rezystory przy led - ach sa troche za duze, daj 560 ohm Wcale nie są za duże, jeśli dasz małoprądowe , to wartości są OK> Marek-c a co to za układy ds13887 nie pomyliłeś się ? Oczywiście że pomyłka! 12887 to zegar z IBM/AT. Ma wewnętrzną baterię i kwarc. Że planuję zrobić kilka sterowników to jak znalazł! Marek
W M16 Aref wewnętrzne może wynosić tylko 2,56V. Podłączenie pod zewnętrzne źródło napięcia referencyjnego, którym jest stabilizator zasilający całyprocek jest rozwiązaniem tanim i łatwym i skoro juz idzie się w stronę uproszczeń to po co stosować zewnętrzny kwarc 8MHz skoro można na wewnętrznym oscylatorze mieć niezły sygnał taktujący? Zrozumiałbym...
Wewnętrzny oscylator można pięknie sobie wykalibrować, szczególnie pod kątem właśnie transmisji RS232. Służy to tego jeden bajt, którego wartość można odczytać a potem zmieniać (w górę lub w dół) i sprawdzać jak się zachowuje transmisja RS232. Gdy się złapie jego odpowiednią wartość (taką "po środku") - to można przy starcie programu ją zawsze ładować...
a czy przestawiłeś układ mega16 aby korzystał z zewnętrznego kwarcu czy chodzi na wewnętrznym oscylatorze rc Dodano po 3 a wogóle konfiguracja usarta wygląda tak Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 oczywiście chodzi na zewnętrznym kwarcu zmieniłem konfiguracje na taką jak proponujesz ( niestety...
Podłączyłem Atmegę16 do komputera - przez kabel od nokii. Transmisja przebiega bezproblemowo przy różnych prędkościach. Na wewnętrznym kwarcu 8MHz udało mi się osiągnąć 0.5Mbps (0.5M baud). Putty radzi sobie z taką prędkością całkiem fajnie. Ale: ComPort (3 albo 4) - ma najwyzsza opcje prędkosci 9600 baud. To mi niestety nie wystarcza. Pytania: - Czy...
Masz wewnętrzny oscylator czy zewnętrzny? Jeśli wewn. , to prawdopodobnie d*** zbita. Sam się mocowałem ostatnio z uartem i dopiero na zewn. ruszył, na wewn. same głupoty się wysyłały, o ile w ogóle. Poczytaj notę katalogową, wybierz odpowiedni kwarc (taki co ma 0% błędów) i go podłącz, jeśli dalej nie będzie się komunikować to wina programu.
Dzięki. Co do kwarcu to robiłem też test czy ma to coś wspólnego z tym 32kHz, bo jako główny używam wewnętrzny 1M. Otóż niezależnie czy miganie używa Licznika 2 asynchronicznie, czy jest na delay'ach i wyłączonym T2 w ASSR i tak występuje to zjawisko. Spróbuje jeszcze wpisać 1 na PORTx w celu pull'upow. No i znalazła się odpowiedź, włączenie Pull-Up'ow...
Nowe ATMega16/32 zaczyna z ustawieniami CKSEL = “0001” (zegar wewnętrzny), SUT = “10” (czas startu), ponieważ fusebity mają logike odwrotną powinno to w programatorze wyglądać: CKSEL:1110 Aby używał zewnętrznego rezonatora o tej częstotliwości powinieneś ustawić CEKSEL = 1110, CKOPT = 1 (oczywiście teraz negujemy i zapisujemy...
Przecież programator nie jest w stanie sprawdzić jaki kwarc jest na płytce. On tylko może sprawdzić jakie taktowanie ma ustawiony procesor (wewnętrzne czy zewnętrzne i jak wewnętrzne to jaką częstotliwość). Jeżeli pokazuje 1MHz, to znaczy że chodzi o taktowanie z generatora RC z wnętrza procesora. Zresztą przecież pisze: "Int RC OSc 1MHz, ..."
Dzięki za procedurze :) mam pytanie dokładnie ustawienie tych wejść jak chce podpinać pod port PD bo z twojej procedurki widzę ze są zdefiniowane dwa tory danych na portach PC, do których mają być podpięte linie danych wyświetlacza ( rozumiem ze mam je sobie sam ustalić) – z tego wynika ze linie danych są na dwóch portach a nie na czterech, a...
Owszem, mogłem i zamierzałem zrobić ściemnianie wyświetlaczy ale już nie starczyło mi wyprowadzeń uP, a nie jest to takie ważne żeby stosować ATmega16 lub inny większy uP. Wystarczy mi że na noc jednym ruchem enkodera wyłączam cały wyświetlacz, a jak dzwoni rano budzik to się sam włącza i miga(patrz filmik) Z tego co widziałem na zdjęciach Atmega pracuje...
No to jeszcze dorzucę, to co znalazłem w pewnym pdf-e Motoroli - aplikacja , zresztą bardzo podobna do tej j/w. Legenda : XTAL1 - wejście inwertera generatora XTAL2 - wyjście inwertera generatora Tak przy okazji - AVR - y posiadające wbudowany timer asynchroniczny (np. AT90S8535 , ATmega8535 , ATmega16 , ATmega8 itd.) już są przygotowane do bezpośredniego...
Witam. Dziękuję za zainteresowanie. Zanim wezmę się za program muszę uporać się z kilkom małymi problemami :( Niestety nigdy nie wykorzystywałem ani przerwań, ani timerów. To niestety sprawia, że nie wiem do końca jak się zabrać za ten program. Nie mogę do końca zrozumieć czym się różnią przerwania od znanych mi już funkcji (void), które wywołujemy...
1.Możesz. Pamiętaj tylko, że jak korzystasz z pinu reset to nie możesz używać programatora ISP... Piny PAx dodatkowo mogą pracować jako analogowe, ale to się ustawia w programie. 2.Generalnie tak. Program z Atmega8 na Atmega16 nie ruszy bez pewnych drobnych zmian (patrz dokumentacja - poszczególne rejestry itd.) 3.Kwarc zewnętrzny ma kilka zalet. Podstawowe...
A możecie mi podać jakąkolwiek wskazówkę co wybrać w przeliczaniu fusebitów w tym kalkulatorku: http://www.engbedded.com/fusecalc/ . Chcę aby na atmega16a ustawić zewnętrzny rezonator kwarcowy 16MHz. Praktycznie nic nie rozumiem z tego kalkulatorka... Dzięki za pomoc:D Wybierasz procesor a następnie wszystko już masz w pierwszym aktywnym okienku wyboru:...
Projekt dla mnie dziwny, zrobiłem coś podobnego na atmega8 i atmega16. Zamek od lipca obsługuje domofon w bloku 36 lokali. Przyjąłem zupełnie inną zasadę. Kod zaczyna się numerem lokalu a następnie 4 cyframi. Istotne jest to że taki kod może być zmieniany w dowolnym momencie. Poza programatorem może być zmieniona również liczba obsługiwanych lokali,...
Po skompilowaniu tego programu ile masz warningów i gdzie? Odpowiedz sobie na to pytanie a znajdziesz jedną z możliwych przyczyn błędów w terminalu. Kolejna sprawa - wewnętrzny generator w ATMegach jest nie za bardzo dostosowany do taktowania USART - może działać lecz nie musi, a prawie na pewno będzie sprawiać kłopoty. Użyj XMega lub kwarcu. I kolejna...
Witam Chciałem zrealizować program do odmierzania czasu na kwarcu zegarowym. Podłączyłem go do pinów portu B (t1, t0). Program wyglada następująco: [syntax=basic4gl]$regfile = "m16def.dat" $crystal = 8000000 Config Timer1 = Timer 'Oscylator wewnętrzny Enable Interrupts Enable Timer1 Dim Czas As Byte 'On Timer1 Odmierz Do On Timer1 Odmierz Locate 1 ,...
Przerwania pochodzą od obrotomierza. Przerwanie INT co: 4ms przy 15k obr 40ms przy 1.5k obr Chyba, że coś pomieszałem, Kwarc wewnętrzny: 8 000 000 Prescale timera: 256 przy 1500 obr/min otrzymuję wynik 50 000 Mierzę czas trwania impulsu i przeliczam na obr. tmf wcale nie mam powodu żeby się obrażać, wiem, że moja wiedza jest na poziomie powiedzmy podstawowym,...
Sam piszesz że kwarc nie chodzi a wpisujesz $crystal=8000000. Ustal najpierw jakie jest rzeczywiste taktowanie procka i takie wpisz. uC taktowane jest z wewnętrznego kwarcu 8MHz (tak ustawione w programie i FuseBitami) a to co nie chodzi, to zegar czasu rzeczywistego (kwarc od niego podpina się pod inne nóżki uC niż kwarc zewnętrzny), który obsługuje...
ok rozumiem, zrezygnuję z wewnętrznego RC, i zamontuje kwarce. dla ścisłości komunikacja jaka używam to UART, wykorzystuje tylko linię Rx w jednym i Tx w drugim procku, nie dzielę się miedzy nimi SCK. Dodano po 11 Panowie a jak to jest z kondensatorami przy kwarcu ??? są one potrzebne ??? czy zaprogramowanie CKOPT jest wystarczające
Często zdarza się że zaczynający prace z tymi uP mają problemy z fusebitami. Do najczęstszych problemów należą praca na wewnętrznym oscylatorze RC zamiast podłączonym rezonatorze kwarcowym. Zdarzały się też przypadki zablokowania możliwości programowania procesora przez SPI. Aby nie powielać tematów oraz stworzyć bazę wiedzy, kolejne pytania zadajemy...
No i wszystko się wyjaśniło. Działa z zewn. kwarcem oraz ze wszystkim częstotliwościami wewnętrznego oscylatora. Jak mówił kolega vmario, do wiersza poleceń dopisać parametr -B. U mnie działa z: -B 4 i -B 8. Temat zamykam jako rozwiązany. Dziękuję wszystkim którzy się w temacie udzielali i próbowali pomóc.
Witam. Mam mikrokontroler atmega16 i używam kompilatora AVRSide. Chcę przesłać dane do komputera z pośrednictwem USARTU i ustawiam nadajnik oraz odbiornik w ten sposób: void USART_Init(unsigned char baud) { DDRD=0x02; UBRRH = 0; UBRRL = baud; UCSRB = _BV(RXEN) | _BV(RXEN) ; UCSRC = _BV(URSEL) | _BV(UCSZ0) | _BV(UCSZ1); } Problem w tym że bity URSEL,...
A jak wygląda kod odbiornika? Wiesz, że twoja funkcja inicjująca USART odblokowuje tylko nadajnik, odbiornik pozostaje zablokowany? Kolena rzecz - wywal to FILE - jak widzę nie korzystasz ze strumieni, więc po co ci to? Jak są taktowane oba procesory? Z generatorów wewnętrznych RC? Czy kwarców? Jeśli z wewnętrznych generatorów RC to może być problem,...
Raczej sposób jakiś dziwny. Najprostsza metoda to podanie przebiegu prostokątnego TTL o wypełnieniu 50% i f~1MHz na nogę XTAL1 zablokowanego procesora (można wygenerować ten sygnał programowo zmieniając w pętli nieskończonej non-stop stan jakiegoś pinu I/O skonfigurowanego jako wyjście) przy odłączonym kwarcu i kondensatorach i wtedy podpiąć się programatorem...
Prąd pobierany przez mikrokontroler można zmniejszyć poprzez zmniejszenie prędkości zegara rdzenia - "CLKPR – Clock Prescale Register" (strona 35). Dane najlepiej było by zbierać w porcjach po 512B, tyle co sektor karty pamięci. Sam sposób przechowywania danych jest uzależniony od cech próbkowanego sygnału - jeśli wszystkie próbki są niezależne,...
Kwarcu nie mam ustawiony mam na wewnętrzny oscylator RC 4Mhz, ale nie wiem czy to ma duży wpływ, gdyż doświadczenia są wykonywane w przyjaznych temperaturach. A oto mój program $regfile = "m16def.dat" $crystal = 4000000 config 1wire= portb.7 $baud = 2400 Do 1wreset 1wwrite &HEE 1wwrite &HAA wait 1 t=1wread (1) print t Loop End Na wyświetlaczy...
http://obrazki.elektroda.net/43_12786005... Atmega fusebit doctor, jak sama nazwa mówi, to urządzenie do naprawienia nieumiejętnie przestawionych fusebitów w mikrokontrolerach z rodziny AVR. Największymi problemami jest ustawienie nieprawidłowego źródła zegarowego (fusebity CKSEL), wyłączenie programowania SPI (fusebit SPIEN), lub ustawienie pinu...
atmega16 kwarc schemat atmega16 kwarc atmega wewnętrzny kwarc
samsung firmware update kodowanie kluczyka pestki pralka siemens polski
kalibracja hydrostatu spawanie żeliwa
Diagnostyka obrotomierza w motocyklach Kawasaki Błąd Cylinder 2: Sterowanie Zaworem Wydechowym