Kecepatan minimum ATMega328 dengan UART

9

Saya melihat merancang proyek daya rendah yang akan memiliki ATMega328 berjalan pada kecepatan rendah untuk konsumsi daya yang lebih rendah.

Rencana saat ini adalah untuk menghubungkan UART ke RF Link Receiver untuk komunikasi di 1200baud.

Apa yang saya pikirkan adalah kecepatan minimumnya yaitu saya dapat menjalankan ATMega328 dan masih menjalankan UART 1200baud. Apakah 1MHz cukup cepat?

robzy
sumber

Jawaban:

11

Jam UART beroperasi pada 16 kali kecepatan baud. Jadi Anda bisa lolos dengan 19,2 kHz. 1 MHz akan baik-baik saja.

Paling sering Anda akan berjalan pada clock rate yang memberikan pembagi yang nyaman untuk menghasilkan clock rate UART dan masih cukup cepat untuk pemrosesan lain yang perlu Anda lakukan. Setiap kali satu byte atau paket dikirimkan melalui UART, masukkan CPU ke mode daya rendah dan bangun lagi pada interupsi ketika lebih banyak data siap.

Clint Lawrence
sumber
Saya pikir kalimat "Jam UART berjalan pada 16 kali baud rate" sedikit menyesatkan. Generator baud rate USART berjalan pada sistem / osilator jam dan baru saja dihitung berdasarkan nilai UBRR. Juga, itu tergantung pada mode operasi. Faktor 16 berlaku untuk "mode Normal Asinkron".
Rev1.0
1

Dari pengamatan saya itu tidak layak untuk menjalankan ATMega328p di bawah 1Mhz untuk menghemat daya (karena Anda akan membutuhkan lebih banyak waktu berjalan untuk menyelesaikan perhitungan). Namun mengurangi tegangan akan menghasilkan penghematan daya yang tinggi. Berjalan pada 1Mhz dan 1.8V hanya mengkonsumsi daya 1% jika dijalankan pada 16Mhz dan 5V. Saya membuat grafik konsumsi daya ATMega328 ini

Menurut Kalkulator AVR UART ini jika Anda menjalankan AVR Anda pada 1MHz (kecepatan default tanpa kristal eksternal) Anda dapat UART hingga 4800

Cano64
sumber