Kapan seseorang harus menggunakan kristal eksternal untuk MCU ini mengingat osilator internal jauh lebih cepat?

12

Saya melihat MCU ini dan bertanya-tanya apakah masuk akal untuk menggunakan kristal eksternal.

Diambil dari datasheet pg1,

* Manajemen jam
- osilator kristal 4 hingga 32 MHz
- osilator 32 kHz untuk RTC dengan kalibrasi - Internal 8 MHz RC dengan opsi x6 PLL - Internal 40 kHz RC oscillator

- Internal osilator 48 MHz dengan pemangkasan otomatis berdasarkan ext. sinkronisasi*

Osilator internal dapat mencapai 48Mhz. Kristal eksternal adalah antara 4 - 32 Mhz. Mengapa seseorang menggunakan kristal eksternal ketika kristal internal lebih cepat dari 48Mhz mengingat kristal eksternal membutuhkan biaya dan menempati ruang? Kapan seseorang harus menggunakan kristal eksternal?

pengguna768421
sumber
4
satu-satunya keuntungan dari osilator internal MCU adalah menghemat biaya ketika tidak perlu akurasi ekstra dari yang eksternal.
Mahmoud Hosseinipour

Jawaban:

24

Osilator internal jauh lebih tidak stabil daripada osilator kristal eksternal.

Jika saya membaca datasheet dengan benar, osilator internal 48 MHz hanya dikalibrasi dari pabrik ke dalam 2,9% dari frekuensi yang ditentukan - bahkan tidak cukup baik untuk RS-232. Ada cara untuk menyinkronkannya ke jam eksternal, saya pikir itu dirancang untuk digunakan dalam situasi perangkat USB di mana Anda dapat mengunci PLL ke bitstream USB.

Kristal eksternal biasanya akurat sekitar 20 ppm , bagian per juta. Itu 0,002% dari frekuensi yang ditentukan. Jika Anda membutuhkan yang lebih baik lagi, bahkan ada osilator kristal yang diberi kompensasi suhu .

Selain itu, Anda mungkin menginginkan kecepatan clock yang tepat pada frekuensi yang berbeda, biasanya untuk komunikasi dengan perangkat atau master melalui saluran komunikasi asinkron. Untuk ini, Anda mungkin memerlukan osilator di misalnya 29491200 Hz (115200 * 256).

pipa
sumber
2
terus terang, 2,9% biasanya cukup baik untuk UART / RS-232 (Saya telah menggunakan 115200 UART dengan setidaknya 3,5% toleransi [karena internal 8 MHz RC keduanya baud rate mismatch dan ketidakakuratan internal] selama beberapa minggu tanpa terlihat. kesalahan); AFAIR, UART / RS-232 cukup bisa digunakan di bawah 5% total clock mismatch dan garis batas bahkan bisa digunakan satu atau dua persen lebih tinggi - juga, Anda melewatkan fakta (dicatat oleh orang lain) bahwa Anda dapat menggunakan PLL untuk melipatgandakan jam kristal untuk mendapatkan kecepatan setinggi clocking internal.
2
@vquis, kamu beruntung. 5% adalah ketidaksesuaian baud rate absolut maksimum yang dapat diterima, dan jika pengirim dan penerima 2,5% ke arah yang berbeda maka Anda tepat pada batasnya.
Bruce Abbott
6
RS232 adalah standar tegangan dan pin bukan standar protokol.
old_timer
2
Jika Anda menggunakan 4x oversampling, kemungkinan besar Anda bisa mendapatkan diskon antara 25 hingga 50%. Dengan 8x mungkin bisa lebih buruk daripada dan 16x lebih baik. Anda hanya harus cukup akurat untuk melewati satu karakter kemudian penerima menyinkronkan kembali pada bit mulai. Beberapa bahkan mungkin melakukan sinkronisasi ulang pada setiap sisi yang memungkinkan kesalahan lebih besar. Jadi, pendekodean uart tergantung pada desain penerima. Beberapa / desain waras bisa dengan mudah dijalankan selamanya dengan kesalahan clock 2,9% dan tidak pernah sedikit pun tergelincir.
old_timer
3
@pipe, itu adalah seluruh titik 8 dan 16x oversampling untuk mendapatkan resolusi yang lebih baik di mana tepi relatif terhadap tempat Anda mengambil sampel. Mungkin bagian yang Anda bicarakan menggunakan osilator internal. Atau mungkin insinyur junior yang digunakan karena itu adalah hal yang cukup sepele untuk desain. Anda dapat dengan mudah menyinkronkan di setiap tepi dan tetap disinkronkan selamanya bahkan dengan penyimpangan jam. Karena kita tidak tahu kecuali kita bekerja di sana dan berada di departemen yang tepat, bagaimana penerima dirancang, yang terbaik adalah mencoba untuk mendapatkan beberapa persen itu dan atau melakukan pengujian yang cukup untuk menghasilkan statistik pada tingkat kesalahan bit.
old_timer
10

Internal adalah osilator, biasanya osilator RC. Osilator ini jauh kurang akurat daripada kristal. Osilator ini juga cenderung melayang dengan perubahan suhu.

Kristal di sisi lain bisa seakurat uang yang ingin Anda belanjakan. Akurasi diperlukan ketika, misalnya, komunikasi kecepatan tinggi digunakan seperti USB. USB memiliki toleransi yang sangat ketat.

vini_i
sumber
8

Lihat diagram ini di halaman 16:

ST clock tree

Sepertinya Anda juga dapat menggunakan kristal sebagai input ke PLL, memungkinkan Anda untuk mencapai kecepatan clock internal 48MHz dari kristal yang lebih lambat.

pjc50
sumber
7

Osilator kristal dimasukkan ke dalam Phased Locked Loop (PLL) on-chip yang dapat menggandakan dan membagi frekuensi kristal dengan nilai antara 1 dan 16. Jadi dengan kristal 8MHz Anda dapat menghasilkan jam utama 48MHz untuk prosesor. Seperti yang dikatakan orang lain, kristal eksternal lebih akurat dan stabil daripada osilator kecepatan tinggi on-chip.

Steve G
sumber