UART ile minimum ATMega328 hızı


9

ATMega328'in düşük güç tüketimi için düşük hızda çalışmasını sağlayacak düşük güçlü bir proje tasarlamaya çalışıyorum.

Mevcut plan, UART'ın 1200 baud'da iletişim için bir RF Link Alıcısına bağlanmasını sağlamaktır.

Merak ettiğim şey, minimum hızın ATMega328'i çalıştırabilmem ve hala 1200 baud UART çalıştırabilmem olmasıdır. 1MHz yeterince hızlı mı?

Yanıtlar:


11

UART saati baud hızının 16 katında çalışır. Böylece 19.2 kHz ile muhtemelen uzaklaşabilirsiniz. 1 MHz iyi olacak.

Çoğu zaman, UART baud hızı saatini oluşturmak için uygun bir bölücü veren ve yine de yapmanız gereken diğer işlemler için yeterince hızlı olan bir saat hızında çalışırsınız. Bir bayt veya paket UART aracılığıyla her iletildiğinde, CPU'yu düşük güç moduna getirin ve daha fazla veri hazır olduğunda bir kesinti ile tekrar uyanın.


Bence "UART saati 16 baud hızında çalışıyor" cümlesi biraz yanıltıcı. USART baud hızı üreteci sistem / osilatör saatinde çalışır ve sadece UBRR değeri ile önceden ölçeklendirilir. Ayrıca, çalışma moduna bağlıdır. Faktör 16 "Asenkron Normal mod" için geçerlidir.
Rev1.0

1

Gözlemimden, gücü korumak için ATMega328p'yi 1Mhz'nin altında çalıştırmak uygun değildir (çünkü hesaplamayı bitirmek için daha fazla zamana ihtiyacınız olacak). Ancak voltajı düşürmek yüksek güç tasarrufu sağlar. 1Mhz ve 1.8V'de çalışmak, 16Mhz ve 5V'de çalıştırıldığında sadece% 1 güç tüketir. Bu ATMega328 güç tüketimi tablosunu yaptım

Bu AVR UART Hesaplayıcısına göre AVR'nizi 1MHz'de çalıştırırsanız (harici kristal olmadan varsayılan hız) 4800'e kadar UART yapabilirsiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.