ATMega328, Koneksi AREF Eksternal

10

Dari lembar data ATMega328 , bagian 24.9.1:

Opsi referensi tegangan internal tidak dapat digunakan jika tegangan referensi eksternal diterapkan ke pin AREF.

Dari halaman referensi Arduino :

Atau, Anda dapat menghubungkan tegangan referensi eksternal ke pin AREF melalui resistor 5K, memungkinkan Anda untuk beralih antara tegangan referensi eksternal dan internal. Perhatikan bahwa resistor akan mengubah tegangan yang digunakan sebagai referensi karena ada resistor 32K internal pada pin AREF. Keduanya bertindak sebagai pembagi tegangan, jadi, misalnya, 2.5V yang diterapkan melalui resistor akan menghasilkan 2.5 * 32 / (32 + 5) = ~ 2.2V pada pin AREF.

Datasheet ATMega328 mengkonfirmasi referensi "internal 32k resistor" pada tabel 29.16 Karakteristik ADC dengan: Referensi Input Resistance = 32 kOhm.

Yang sedang berkata, dua pernyataan di atas tampaknya agak bertentangan satu sama lain. Saya punya aplikasi dengan beberapa sensor yang mengeluarkan skala penuh 0-5V dan yang lainnya menghasilkan skala penuh 0-1.8V. Aplikasi akan mendapat manfaat dari peningkatan resolusi beralih ke 1.8V AREF ketika mengambil sampel sensor 1.8V dan beralih ke referensi AVCC internal untuk sensor 5V.

Halaman referensi Arduino menyarankan itu adalah hal yang OK untuk dilakukan mengingat Anda telah digabungkan ke 1.8V AREF melalui resistor seri 5kOhm dan menyumbang pembagi tegangan tersirat dengan resistansi 32kOhm internal. Apakah ini hanya saran buruk dari referensi Arduino, atau apakah itu sebenarnya merupakan praktik umum untuk melakukan hal semacam ini? Apakah pernyataan Atmel terbatas pada tegangan eksternal yang diterapkan pada AREF tanpa resistor pembatas arus eksternal (dan jika demikian mengapa, mengingat resistansi 32k internal)?

Selain itu, jelas, orang dapat mencapai hasil yang sama dengan op-amp yang dibangun dengan baik untuk skala sinyal 1.8V hingga 5V, tetapi kompleksitas tambahan dan bagian-bagiannya tampak boros jika dapat ditangani oleh ADC on board juga. dengan memanfaatkan referensi tegangan yang dapat diubah. Demikian juga jika Anda dapat meyakinkan diri sendiri bahwa sinyal indra tidak akan melebihi 1.1V Anda bisa memanfaatkan referensi tegangan internal. Sekali lagi, sepertinya lebih elegan bagi saya untuk menggunakan regulator 1.8V. Saya menyalakan sensor tegangan rendah saya untuk mengatur referensi.

vicatcu
sumber
Juga, dapatkah Anda menulis ulang "Apakah pernyataan Atmel terbatas pada voltase eksternal tanpa hambatan yang diterapkan pada AREF?" Saya tidak mengerti "terbatas pada tanpa hambatan". Terima kasih.
Telaclavo
@Telaclavo Saya sudah membuat pernyataan lebih jelas (semoga)
vicatcu
Saya pikir saya baru saja melihat dari mana kebingungan Anda mungkin berasal, tetapi dapatkah Anda memposting tautan ke skema Arduino spesifik yang Anda gunakan?
Telaclavo
@Telaclavo tidak ada Arduino tertentu dalam pikiran, Uno akan cukup sebagai contoh. Pada papan dasar, AREF tidak terhubung ke sumber tegangan apa pun, tetapi cukup dipisahkan ke GND melalui kapasitor 100nF. Jika saya memiliki regulator 1.8V, pada tameng misalnya, pada prinsipnya saya dapat menghubungkannya ke AREF melalui header pelindung melalui resistor 5kOhm untuk merujuk ATMega328 ADC ke 1.8V, kemudian beralih ke referensi AVCC internal (yang terhubung ke 5V pada Uno) dalam perangkat lunak untuk merujuk ATMega328 ADC ke 5V.
vicatcu
Ok, pertama saya berpikir bahwa resistor 5 kohm termasuk dalam Arduinos, tetapi ternyata tidak. Saya baru saja memperbarui jawaban saya. Dan saya berpikir bahwa kebingungan Anda berasal dari tidak mengakui bahwa resistor 32 kohm beralih dari AREF ke ground . Kalau tidak, saya tidak akan mengerti "dan jika demikian mengapa, mengingat resistansi internal 32k?"
Telaclavo

Jawaban:

8

Saya tidak melihat masalah dengan menerapkan tegangan eksternal, melalui resistor 5 kohm, ke input referensi Arduino. Atau lebih baik, dengan menggunakan pembagi resistor, sehingga Anda mengubah 5 V menjadi tegangan AREF yang Anda inginkan, sementara pada saat yang sama menunjukkan resistansi sumber sekitar 5 kohm. Persyaratan kedua ini tidak harus akurat. Itu hanya untuk membatasi arus yang akan mengalir dari AVCC ke ground, melalui sirkuit eksternal.

skema

Jika Anda ingin berakhir dengan 1,8 V pada input AREF dari MCU, cukup pilih R1 dan R2 sehingga 1.8 V dan 5 kohm.VAREF=5·R2||32000R1+(R2||32000)=Rsource=R1||R2

Ketika Anda perlu bekerja dengan kisaran [0, 1.8] V, nonaktifkan referensi internal ke ATMega, dan ketika Anda perlu bekerja dengan [0, 5] V, aktifkan referensi AVCC internal (jika itu 5 V) . Jika MOSFET yang ditunjukkan pada Gambar 24-1 (yang menghubungkan referensi internal ke garis AREF) memiliki resistansi jauh lebih rendah dari 5 kohm (yang saya kira sudah), sirkuit internal akan melihat AVCC. Dalam situasi kedua ini, aliran saat ini dari AVCC internal (diasumsikan 5 V) ke pembagi resistor eksternal Anda akan 1 mA, tetapi itu bukan masalah.

Singkatnya: itu akan menjadi saran yang buruk jika sesuatu bisa rusak, tetapi 1 mA tidak akan merusak apa pun.

Telaclavo
sumber
+1 untuk memanggil angka 24-1 ... yang menunjukkan kepada saya (juga) bahwa resistor pembatas arus pada AREF adalah taruhan yang aman.
vicatcu
1
Saya pikir saya lebih suka menerima penurunan tegangan kecil di AREF dan menggunakan resistor 5kOhm eksternal tunggal ke sumber 1.8V dari regulator meskipun ... tapi saya menemukan jawaban Anda layak diterima
vicatcu
1

Penjelasan hebat mengenai konfigurasi internal PIN Aref dan juga tentang peran yang dimainkan pin ini ketika ADC dari Arduino digunakan.

Ini dua sen saya. Saya baru saja memodifikasi sedikit skema untuk memperjelas bahwa 32 kOhms resistor internal. Di atas semua itu, saya menyertakan konfigurasi alternatif untuk membuat lebih aman penggunaan Vref eksternal. Persamaan untuk R1 dan R2 diperoleh setelah membatasi arus melalui mereka pada 1mA. Skenario terburuk (sakelar internal ditutup secara tidak sengaja) telah dipertimbangkan untuk mendapatkan formula untuk R1 dan R2.

Bersulang
masukkan deskripsi gambar di sini

José Vicente Muñoz Díez
sumber