Pytanie:
Programowanie samodzielnego Atmega328p-PU z układem scalonym timera NE555N
Samanwaya Datta
2017-04-09 15:03:18 UTC
view on stackexchange narkive permalink

Wiem, że pytanie może zabrzmieć trochę idiotycznie, ale jak widziałem w Internecie, aby zaprogramować samodzielny układ Atmel, taki jak ten z Arduino, potrzebujesz 2 ceramicznych kondensatorów 22pF i oscylatora 16 MHz. Ponieważ oscylator jest potrzebny, taktowanie częstotliwości chipa, więc układ scalony timera powinien działać dobrze, prawda? czy mam złe informacje?

Możesz zapewnić zewnętrzny zegar na pinie PB6, ale aby wybrać opcję zegara zewnętrznego, musisz ustawić odpowiednie bezpieczniki. Ale jeśli chcesz zmienić bezpieczniki, równie dobrze możesz ustawić bezpieczniki tak, aby używały wewnętrznego oscylatora RC 8 MHz i zanegować potrzebę 555 lub kryształu.
Cztery odpowiedzi:
Edgar Bonet
2017-04-09 16:11:54 UTC
view on stackexchange narkive permalink

Domyślną konfiguracją tych chipów, ponieważ pochodzą one z fabryki, jest użycie ich wewnętrznego oscylatora RC 8 MHz zmniejszonego do 1 MHz. Więc nie potrzebujesz żadnego dodatkowego oscylatora do ich zaprogramowania.

Po zaprogramowaniu chipa po raz pierwszy, jeśli skonfigurujesz go tak, aby używał zewnętrznego rezonatora / oscylator, a następnie musisz to podłączyć, aby przeprogramować chip.

555 może być w stanie uruchomić chip, ale jeśli jeśli chcesz go przeprogramować, programista może nie radzić sobie dobrze z bardzo niską częstotliwością, na której chip będzie pracował.

Enric Blanco
2017-04-09 16:13:27 UTC
view on stackexchange narkive permalink

Nie, nie będziesz w stanie zbudować sygnału zegara 16 MHz za pomocą timera 555. To znacznie przekracza możliwości 555 (zobacz NB).

Jeśli może wycisnąć z 555 zaledwie 1 MHz (w co poważnie wątpię), stabilność zegara i jitter byłyby tak złe, że nie nadawałyby się do użytku poza prostymi szkicami niewymagającymi dokładności taktowania. W tym momencie znacznie lepiej byłoby, gdybyś użył wewnętrznej sieci RC 1 MHz ATmega328P, jak mówi Majenko, ponieważ przynajmniej uratowałbyś 555 i powiązane z nim komponenty.

Ponadto, oparty na 555 zegar zużywałby znacznie więcej energii niż jakakolwiek inna alternatywa już dostępna (wewnętrzny oscylator, zewnętrzny kryształ ...). Nawet wersja CMOS.

Moja rada: zapomnij o tym, to nie jest tego warte .

UWAGA PONIŻEJ:

NE555N to wersja BJT modelu 555. BJT cierpi z powodu tak zwanego „czasu przechowywania”, czyli akumulacji ładunku w bazie, która poważnie ogranicza czas przełączania. Arkusz danych NE555N podaje czas przechowywania około 10 mikrosekund (str. 10), co ogranicza częstotliwość przełączania do około 100 kHz.

TLC555 jest wersją CMOS 555. Ponieważ wykorzystuje tranzystory FET, jego maksymalna częstotliwość przełączania jest znacznie wyższa. Arkusz danych TLC555 (str.6) podaje, że typowa wartość maksymalnej częstotliwości przełączania to 2,1 MHz (i co najmniej> 1,2 MHz).

Majenko
2017-04-09 15:23:46 UTC
view on stackexchange narkive permalink

Tak, możesz użyć 555. Możesz też przejść jeszcze prościej i skorzystać z sieci RC. Jeszcze prostsze jest użycie sieci RC 1 MHz wbudowanej w chip.

Główną wadą tych metod, a szczególnie 555, jest stabilność. Używając kryształu i kondensatorów, można uzyskać bardzo dokładne taktowanie przy wysokich częstotliwościach. Korzystając z 555, możesz uzyskać taktowanie przy niskich częstotliwościach. W porządku, jeśli wszystko, co chcesz zrobić, to mrugnąć diodą LED, ale gdy musisz zrobić cokolwiek, co wymaga dobrego wyczucia czasu, wszystko się rozpada. Obejmuje to takie rzeczy, jak używanie UART, dla którego dokładna synchronizacja jest sercem jego działania.

Wewnętrzny oscylator jest lepszy pod tym względem, ponieważ można go skalibrować za pomocą rejestru OSCCAL. Jednak zmiany temperatury otoczenia mogą powodować niedopuszczalne dryfowanie częstotliwości zegara.

Ignacio Vazquez-Abrams
2017-04-09 19:00:07 UTC
view on stackexchange narkive permalink

To zależy od tego, jak go zaprogramujesz.

Jeśli używasz bootloadera do akceptowania poleceń programowania przez połączenie szeregowe, będziesz musiał użyć metody zegara określonej przez aktualnie zaprogramowane bezpieczniki , ponieważ chip w tym momencie będzie faktycznie wykonywał zaprogramowany na nim kod.

Jeśli używasz ISP do programowania chipa poza pasmem, możesz podłączyć źródło zegara bezpośrednio do pinu XTAL1 jak pokazano w podrozdziale „Pobieranie seryjne” w sekcji „Programowanie pamięci” arkusza danych. W takim przypadku będziesz musiał przestrzegać informacji o czasie podanych na końcu podsekcji.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...