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 OSCCAL
dan 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.