Bagaimana Anda menentukan apakah mikrokontroler baru rusak?

11

Saya tidak pernah berurusan dengan bagian yang cacat selat dari digikey, tetapi 3 Atmel ATmega164A baru yang saya terima menunjukkan perilaku yang sangat aneh.

Saya mempersempitnya karena ada hubungannya dengan jam dan ternyata sinyal jam yang dihasilkan dari osilator internal yang seharusnya "dikalibrasi pabrik" itu bergerak-gerak di antara 650-700 kHz, bukannya solid 1 MHz seperti seharusnya. Saya bisa menulis ke byte kalibrasi untuk mendapatkan ini sangat dekat dengan 1 MHz (masih dengan beberapa jitter) dan kebanyakan hal bekerja tetapi UART tidak berperilaku baik, mereka tampaknya menghasilkan aliran terus menerus pulsa pendek tidak peduli apa yang Anda minta mereka lakukan.

Saya sudah berurusan dengan versi daya rendah mikrokontroler ini sebelumnya (164P) dengan nol masalah dan memutuskan untuk menjatuhkannya dan memeriksa output jam pada itu, dan 1 MHz yang solid tanpa jitter. Saya condong ke kesimpulan bahwa chip 164A ini rusak, tetapi apakah akan ada tes lain yang bisa saya coba untuk mengonfirmasinya?


Sunting: Hanya berpikir saya akan menggambarkan proses yang saya gunakan untuk mengukur jam. Saya telah mengaktifkan bit sekering keluaran jam dan mengukur pin yang sesuai dengan sampling penganalisa logika pada tingkat yang sangat tinggi. Saya punya program yang menulis ke register kalibrasi OSCCALdan saya sudah bisa coba-coba sampai 1 MHz.


Sunting # 2: Setelah penyelidikan lebih lanjut, tampak bahwa mikrokontroler mulai bekerja setelah ukuran program tertentuambang. Sebuah proyek tanpa tulang dengan file sumber tunggal yang mem-flash sebuah LED tampaknya baik-baik saja, tetapi mengkompilasi dan menghubungkan di salah satu file saya yang lain (katakanlah perpustakaan UART atau apa pun) tanpa membuat panggilan fungsi ke metode-metode tersebut menyebabkan mikrokontroler berperilaku perilaku yang dijelaskan di atas. Koneksi daya baik dan decoupling yang tepat telah dilakukan. Saya tidak punya waktu untuk men-debug ini lebih jauh saat ini, jadi kami telah melanjutkan dengan versi daya rendah sebagai gantinya. Saya tidak yakin di mana tepatnya masalahnya bisa 1) 164A dan 164P tidak kompatibel kode 2) Prosedur pemrograman berbeda untuk kedua UC ini 3) Unit rusak. Saya yakin dengan desain papan kami dan akan menyingkirkan masalah daya. Sayangnya, saya tidak dapat memilih jawaban yang benar sehingga saya akan meninggalkan pertanyaan ini - mungkin saya Aku akan kembali ke masalah lagi di masa depan. Terima kasih kepada semua orang yang memberikan komentar atau jawaban yang berwawasan luas, mereka mungkin berguna bagi orang lain dengan masalah UC di luar kotak.

Jon L
sumber
Tidak terkait langsung dengan pertanyaan Anda, tetapi perlu disebutkan. Banyak produsen IC memiliki halaman Errata yang mereka rilis ketika mereka menemukan bug dalam revisi silikon tertentu. Saya telah ditangkap beberapa kali oleh bug yang dikenal yang ada di errata yang tidak pernah saya periksa. Ini biasanya bukan hal-hal sebesar jam tidak berfungsi dan biasanya memiliki beberapa pekerjaan yang ditawarkan. Tetapi dalam kasus Anda tidak ada errata yang diketahui.
Kellenjb
1
@jon, jika versi daya yang lebih tinggi rusak dan versi daya yang lebih rendah berfungsi, ada kemungkinan Anda tidak memisahkan sirkuit Anda dengan baik dan mengalami masalah integritas daya.
Kortuk
@Kellenjb, "Tidak ada errata yang diketahui" untuk model ini dalam lembar data (lembar data terbaru muncul, 06/11). Tentunya layak disebut dengan cara apa pun, terima kasih.
Jon L
@ Jon Ya, itulah yang saya maksud dengan "Tapi dalam kasus Anda tidak ada errata yang diketahui."
Kellenjb
1
Saya akan kedua apa yang dikatakan Kortuk. Ini berbau seperti catu daya atau masalah decoupling bagi saya.
Olin Lathrop

Jawaban:

3

Sangat jarang mengalami kegagalan seperti itu. Anda mungkin berharap melihat lebih banyak noise pada pin, atau membuat pin tersebut benar-benar tidak berfungsi. Tetapi untuk memilikinya "agak berhasil, tetapi tidak dengan cara yang bermanfaat" jarang terjadi. Saya menduga ada masalah desain yang menyebabkan masalah, dan ada hubungannya dengan perbedaan antara 164A dan 164P. Karena jitter tinggi, saya akan melihat hal-hal yang berhubungan dengan kekuatan. Apakah semua pin power / gnd terhubung? Apakah pin I / O digerakkan atau ditarik tinggi atau rendah? Dll

Namun masih ada kemungkinan bagian-bagiannya buruk. Jarang, tetapi tidak pernah terdengar. Satu-satunya cara nyata untuk mengetahui adalah mendapatkan beberapa bagian lagi, dari pemasok yang berbeda, dan mencobanya. Jika mereka bekerja, maka Anda perlu menyelidiki lebih lanjut dan melihat apakah Anda membunuh mereka dalam penanganan / penyolderan atau apakah mereka benar-benar berasal dari Digikey.


sumber
2
Saya akan memeriksa tiga kali semuanya ketika saya mendapat kesempatan. Saya juga skeptis dengan kesimpulan saya sendiri, gagasan bahwa ini tidak akan tertangkap di pabrik atau kemungkinan itu rusak dalam transisi tampaknya sangat tidak mungkin ... akan melaporkan kembali.
Jon L
koneksi-bijaksana, semuanya periksa. Saya akan mengedit pertanyaan untuk memberikan detail lebih lanjut ...
Jon L
2

Saya pernah memiliki masalah yang sangat mirip dengan bagian Microchip awal. Kami mengacaukan pemrograman ICSP dan menemukan cara untuk menghapus trim osilator, menyebabkan kesalahan besar dalam keakuratan jam internal. Pastikan bahwa perlengkapan pemrograman dan / atau alat pemrograman Anda terhubung dengan benar dan digunakan dengan benar.

Tidak ada cara mudah untuk memverifikasi keakuratan osilator tanpa memprogram bagian-bagiannya, jadi saya hanya akan menulis program port-toggle yang sepele (program yang tidak melakukan apa-apa selain menggoyangkan garis I / O) dan meminta orang lain memprogram bagian, lebih disukai dengan perangkat keras pemrograman yang berbeda. Setelah Anda memverifikasi goyangan, Anda dapat merefleksikan dengan kode Anda sendiri dan melihat apakah masalah berlanjut.

Adam Lawrence
sumber
Saya mengaktifkan bit output sekering jam dan menempatkan sinyal jam ke pin pada PORTB. Inilah yang saya sampling untuk menentukan akurasi osilator / jam. Saya akan mengecek proses pemrograman dan alat, terima kasih.
Jon L