Skocz do zawartości

Pomocna odpowiedź

Napisano

Mam takie może i głupie i banalne pytanie, ale w jakim celu stosuje się kwarc w układach? Wiem, że podnosi on częstotliwość procesora ale po co? Co daje wyższe taktowanie procka? Do jakiej wartości można zwiększyć taktowanie przez użycie kwarcu?

__________

Komentarz dodany przez: Treker

Zwiększenie taktowania przyspiesza działanie procesora, a użycie kwarcu dodatkowo zwiększa dokładność pomiaru czasu. Granica zwiększenia taktowania jest zależna od procesora - Atmega32 ma maks taktowanie 16MHz, niektóre ARMy 128MHz.

  • Lubię! 1

Więc zastosowanie kwarcu w robocie jest raczej wskazane? Czy jak dołożę kwarc to wtedy normalnie piszę program tylko na początku zamiast taktowania 8MHz daję więcej? Ile wynosi taktowanie z kwarcem dla Atmegi 8?

Mikroprocesor wykonuje różne operacje. Ale nie robi tego przypadkowo. Wszystkie operacje są wykonywane w odpowiednich chwilach czasu. Dlatego mikroprocesor musi mieć jakiś sygnał taktujący.

W każdym takcie wykonywana jest jedna instrukcja (tak w przybliżeniu). Właśnie za to taktowanie odpowiedzialny jest kwarc. To on podaje te impulsy taktujące.

Jeżeli kwarc podaje impulsy z małą częstotliwością tu uC pracuje powoli. Jeżeli z dużą to uC pracuje szybko. Zatem kwarc 2MHz sprawi, że procek będzie pracował dwa razy szybciej niż na kwarcu 1MHz.

Oczywiście nie można kwarcu zwiększać w nieskończoność. Dla większości avr maksimum to 16MHz.

  • Lubię! 1

Atnega8 na wbudowanym oscylatorze może działać maksymalnie na taktowaniu 8Mhz. Natomiast możesz dołożyć zewnętrzny kwarc, np.16Mhz, który przejmie rolę wewnętrznego oscylatora.

W przypadku pisania programów na uC w środowisku eclipse, musisz w ustawieniach zmienić częstotliwość taktowania. W przypadku bascoma to chyba musisz na początku programu napisać $crystal 16000000 (chyba, nie znam bascoma). Po za tym musisz zmienić ustawienie fuse bitów, za pomocą programu np. mkAVRcalculator, którego wersję darmową możesz pobrać z neta.

  • Lubię! 1

Producent pisze, że dla większości AVR'ów max to 16MHz. Jednak nic się nie stanie jak np. damy kwarc 18MHz lub nawet trochę wyższy i też będzie działać.

A stosowanie kwarcu daje jakieś zauważalne różnice w pracy robota? Znalazłem kwarc 14,7MHz czyli przyjmuje taktowanie jako 15MHz? Czy zmieniając te FuseBity jest jakieś ryzyko zablokowania procka, bo czytałem że zdarza się to czasami..

Ja najczęściej stosuję 16Mhz, bo wszystko ładnie działa, a układ jest 2x szybszy niż na maksymalnym wewnętrznym taktowaniu. Zauważalne różnice... Jeżeli masz w programie jakiś zaawansowany algorytm, który wykonuje sporo obliczeń, to tak. Jak już ukończysz konstrukcję, puść ją na trasę kilka razy, raz załączając zewnętrzny kwarc, raz na wewnętrznym taktowaniu 8Mhz, a na koniec na wewnętrznym taktowaniu 1Mhz, a sam się przekonasz o różnicy.

[ Dodano: 14-09-2012, 00:23 ]

Ryzyko zablokowania procka... Właściwie to zawsze jest takie ryzyko. Ale jak używasz nakładki graficznej na avrdude (np. mkAVRcalculator), zmniejszasz prawdopodobieństwo, że coś pójdzie źle

Ok, dziękuję Wam za odpowiedzi. Powiedzcie mi jeszcze tylko ten kwarc co mam 14,7456MHz jak to ująć w proagramie jako 14MHz czy jakie 15Mhz?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...