PIC terus mengatur ulang: Apakah saya melihat efek samping dari penggunaan papan tempat memotong roti?

11

Saya menggunakan PIC18F4680 dan saya mengalami masalah menjalankannya membentuk sumber clock eksternal 40 MHz atau kristal 10 MHz dalam mode HSPLL. Menggunakan kristal 10 MHz dalam mode HS tampaknya baik-baik saja dan kristal 5 MHz dalam mode HSPLL juga berfungsi dengan baik.

Apa yang terjadi adalah bahwa PIC mulai, bekerja selama beberapa detik dan kemudian dimatikan untuk sementara waktu dan mulai lagi. Total periode siklus adalah sekitar 5 detik dari mana PIC bekerja berhenti bekerja di awal detik kedua.

Saya juga memperhatikan bahwa kadang-kadang ketika saya menambahkan kapasitor kosong yang cukup besar ke bus daya papan tempat memotong roti, PIC akan bekerja dengan baik. Poin yang menarik adalah bahwa ini hanya terjadi jika saya menambahkan kapasitor saat PIC sudah berjalan. Jika saya menyalakan papan tempat memotong roti dengan kapasitor di sana atau saya menempatkan kapasitor yang belum sepenuhnya habis masalahnya tetap ada.

Saya telah membaca di beberapa situs bahwa masalah yang mirip dengan tambang dapat terjadi karena peningkatan konsumsi daya PIC pada frekuensi yang lebih tinggi dan tegangan operasi terendah yang lebih tinggi. Dalam kasus tersebut, jika ada beberapa jatuh tegangan pendek pada catu daya, mereka lebih cenderung mencapai tegangan operasi terendah dari PIC pada frekuensi itu sehingga ide yang baik untuk memiliki kapasitor tambahan di papan tempat memotong roti untuk menyelesaikan masalah itu. Karena di bawah beban penuh pada 40 MHz, seluruh rangkaian menggunakan sekitar 64 mA, ide pertama saya adalah untuk meletakkan beberapa kapasitor tantalum berharap bahwa mereka akan cukup besar dan memiliki ESR cukup rendah untuk memperbaiki masalah. Satu tidak membantu dan yang kedua tidak membantu juga. Jadi saya menambahkan 100 μ F10 μF100 μFkapasitor aluminium dan itu tidak membantu. Lalu aku menambahkan aluminium kapasitor untuk tidak berpengaruh. Pada akhirnya, saya menambahkan kapasitor elektrolit aluminium 1 mF dan kemudian untuk pertama kalinya rangkaian bekerja dengan baik sampai dimatikan dan pada daya. Saya juga harus mencatat bahwa untuk tujuan pengujian saya menggunakan Vcc 5,5 V yang merupakan tegangan pengenal tertinggi untuk mikrokontroler ini. Ini harus meninggalkan saya ruang sampai 4.2 V yang merupakan tegangan operasi terendah pada 40 MHz470 μF

10 kΩ10 MΩ

Karena panjang kawat dari output osilator ke input osilator di PIC, saya mengharapkan masalah dengan itu, tapi saya tidak mengharapkan masalah dengan kristal 10 MHz yang sangat dekat dengan pin osilator pada PIC. Juga dengan kristal, saya akan mengharapkan masalah dalam mode HS juga, jika distorsi sinyal osilator karena papan tempat memotong roti adalah masalah, tetapi dalam mode HS, PIC bekerja dengan baik.

Saya biasanya menggunakan kapasitor 33 pF untuk kristal, tapi saya sudah mencoba 15 pF juga dan saya tidak bisa mendeteksi perubahan.

Saya juga harus mencatat bahwa PIC ini memiliki monitor jam gagal-aman dan pergantian osilator internal / eksternal. Saya sudah mencoba mengaktifkan keduanya, berharap bahwa mereka setidaknya akan mengkonfirmasi bahwa masalahnya ada pada osilator, tetapi mereka tidak membantu dengan masalah tersebut. Tidak ada perbedaan apakah mereka hidup atau mati.

Saya juga menonaktifkan untuk keperluan pengujian pengawas waktu, reset brown-out dan stack over / underflow reset. Saya pikir saya mematikan semua sumber reset untuk chip ini. Juga program ini berada dalam loop tak terbatas, sehingga tidak berakhir.

PCF8583 tidak memiliki masalah dan terus beroperasi dengan benar bahkan ketika PIC mengatur ulang sendiri, tetapi di sisi lain ia memiliki tegangan minimum yang jauh lebih rendah.

Sayangnya, saya tidak memiliki osiloskop, tetapi saya melakukan beberapa pengujian dengan kartu suara (sample rate 96 kHz) dan saya perhatikan ketika RTC aktif, ada sekitar 25 Hz noise di saluran listrik. Program yang saya gunakan melaporkan sekitar 300 mV dari puncak ke puncak, tapi saya tidak tahu seberapa banyak mempercayainya dan saya tidak tahu apakah itu cukup untuk menimbulkan masalah bagi PIC. Ketika semuanya mati, kebisingan sekitar 100 mV dari puncak ke puncak, jadi itu tidak masalah.

Dalam hal ini membantu, inilah gambar papan tempat memotong roti itu sendiri: (klik kanan-> lihat gambar untuk ukuran penuh) masukkan deskripsi gambar di sini

Jadi, adakah yang tahu apa yang terjadi di sini?

Pada akhirnya, saya bisa menjalankan PIC pada 20 MHz, tetapi jika saya membutuhkan lebih banyak kekuatan pemrosesan, saya ingin dapat menjalankannya pada 40 MHz.

MEMPERBARUI

Saya telah menempatkan regulator lain di papan tempat memotong roti itu sendiri dan suara yang diambil oleh kartu suara sekarang jauh lebih rendah (sekitar 50 mV dari puncak ke puncak), tetapi itu tidak mempengaruhi masalah utama.

AndrejaKo
sumber
1
Hmm, saya akan menyarankan WDT dan brown-out, tetapi Anda telah menonaktifkannya. Apakah Anda tahu bahwa ada beberapa kesalahan dengan brownout untuk PIC itu? Saya belum pernah mencoba menjalankan PIC secepat itu di atas papan roti. Kami menggunakan 18F4580 setiap saat dengan osilator 10MHz dan HSPLL. Mereka bekerja dengan baik.
Rocketmagnet
2
Lupakan papan tempat memotong roti (saya tidak pernah menggunakannya) dan menggunakan PCB yang tepat, itu akan menghemat banyak waktu.
Leon Heller
3
@Leon Heller Mungkin menghemat banyak waktu, tetapi pada saat ini, PCB lebih mahal daripada waktu saya, terutama karena saya bahkan tidak memiliki daftar semua komponen utama yang akan saya gunakan.
AndrejaKo
1
@AndrejKo Ini terdengar seperti salah satu masalah yang membuat saya ingin meringkuk menjadi bola dan menangis. Apakah Anda PASTI waktu Anda bernilai sangat sedikit? Saya baru saja membuat PCB - biasanya sangat menyenangkan juga!
AngryEE
1
@AndrejaKo: Jika Anda tidak keberatan menunggu seminggu atau lebih, saya telah sukses besar dengan pesanan grup PCB ini: dorkbotpdx.org/wiki/pcb_order . Jika Anda tidak ingin membuatnya sendiri, itulah
Chris Laplante

Jawaban:

12

Ini adalah beberapa saran yang cukup lama, dan saya tidak tahu apakah itu akan relevan untuk mikro Anda, tetapi sekitar 4 tahun yang lalu saya melakukan proyek dengan PIC18F yang mengalami pengaturan ulang palsu yang aneh. Setelah membaca laporan dan jogging kembali ingatan saya di sini adalah apa yang tampaknya telah menyelesaikannya:

Apakah Anda memiliki Low Voltage Programming Enablebit konfigurasi yang diaktifkan? Apakah PGMpin Anda menyala PORTB? Jika demikian, Anda mungkin ingin mempertimbangkan untuk menonaktifkan kedua Low Voltage Programming Enabledan Port B A/D Enableuntuk input digital di reset. Menurut laporan lama saya, apa yang terjadi adalah kami dibiarkan PORTBmengambang sementara itu adalah input analog dan memicu PGMpin. Melihat ke belakang, saya tidak tahu apakah diagnosis ini benar, tetapi kami akhirnya menyelesaikan proyek itu dengan sukses sehingga mungkin patut dicoba.

Jon L
sumber
Menarik! Hanya beberapa menit yang lalu, saya perhatikan bahwa memiliki programmer yang terhubung mempengaruhi masalah dan sekarang jawaban ini. Saya menonaktifkan port BA / D dan LVP dan itu berfungsi dengan baik sejauh ini. Bisa jadi semacam interaksi aneh pada pin PGM.
AndrejaKo
@AndrejaKo, itu terdengar sangat akrab dari apa yang saya alami. Saya harap ini tetap stabil ... perangkat keras yang rewel bisa sangat menyebalkan ketika Anda mencoba menyelesaikan sesuatu: S
Jon L
1
Yah, sudah berjalan baik selama 21 menit dan 30 detik. Saya berharap tetap seperti itu. Saya hanya akan membiarkannya berjalan pada malam hari dan melihat apakah pengaturannya ulang.
AndrejaKo
Bagus! Saya senang itu menyelesaikan masalah.
abdullah kahraman
1
Menjadikan hari saya kawan, saya menghabiskan satu hari penuh berusaha mencari tahu mengapa di bumi 16F887 PIC saya diset ulang setiap beberapa msec. Tegangan rendah dalam rangkaian prog diatur dan pin PGM mengambang mengambil suara yang memicu reset. +1 perwakilan untuk Anda
Gianluca Ghettini
7

Dengan pengaturan seperti ini, hampir tidak mungkin bagi kita untuk mengatakan apa yang salah. Apa yang bisa kita katakan adalah apa yang salah. Ada banyak hal yang salah, atau paling tidak tidak separah itu. Salah satu dari hal-hal ini dapat menjadi sumber masalah Anda, tetapi juga membutuhkan kombinasi masalah yang bila dijumlahkan sama dengan masalah yang Anda lihat.

Satu-satunya cara nyata untuk men-debug ini adalah untuk memperbaiki apa pun yang Anda tahu salah, terlepas dari apakah itu adalah senjata merokok atau bukan. Akhirnya masalah akan diperbaiki dengan satu atau lain cara.

Ketika MCU seperti ini tidak berjalan dengan benar, Anda hampir selalu harus fokus pada dasar-dasar: Power, Clock, dan Reset. Dengan papan tempat memotong roti, ketiganya adalah tersangka!

Tersangka # 1 bagi saya adalah jam 40 MHz. 40 MHz cukup cepat untuk berjalan di atas kawat yang mengambang di udara. Ini juga cepat untuk dimasukkan ke papan tempat memotong roti, di mana "sistem distribusi sinyal" tidak benar-benar dirancang untuk kecepatan tinggi. Jika ini adalah PCB saya akan memberitahu Anda untuk memastikan impedansi jejak Anda konsisten dan untuk benar mengakhiri sinyal Anda. Sayangnya Anda tidak bisa melakukannya di papan tempat memotong roti. Hal terbaik yang bisa saya katakan adalah menjaga kabel Anda sesingkat mungkin - dan kemudian membuatnya lebih pendek! Gunakan o-scope pada sinyal clock, diperiksa langsung pada pin PIC, dengan ujung GND dari probe juga langsung pada pin GND terdekat pada PIC. Itu akan memberi tahu Anda banyak tentang jam Anda.

(Cobalah untuk meminjam o-lingkup jika Anda bisa. Akan sulit untuk men-debug hal-hal tanpa satu.)

Tersangka # 2 adalah kekuasaan. Daya juga merupakan masalah besar dengan papan tempat memotong roti, karena induktansi dan resistansi kawat relatif tinggi. Di sini lagi, jaga agar kabel tetap pendek. Saya juga mencatat bahwa Anda tidak memiliki topi decoupling pada osilator 40 MHz. Untuk OSC saya akan pergi dengan 0,1 UF dan sesuatu yang lebih besar (4,7 UF ke 100 UF) secara paralel. PIC Anda juga bisa menggunakan sesuatu yang lebih besar secara paralel dengan tutup 0,1 uF. Biasanya tutup yang lebih besar tidak diperlukan, tetapi tidak ada yang normal dengan papan tempat memotong roti.

Tersangka # 3 diatur ulang. Anda tidak memberi kami info tentang sinyal reset, dan saya akan mengatakan bahwa itu adalah yang terendah dari yang saya duga, tetapi Anda tetap harus memeriksanya. Letakkan o-scope di atasnya dan lihat apa yang terjadi. Anda mungkin bisa menggunakan volt-meter. Jika tegangan pada pin reset dekat dengan level ambang maka Anda harus memperbaikinya.

Sekarang, mari kita bahas hal-hal yang Anda coba:

Anda melakukan banyak percobaan dengan menempatkan penutup pada saluran listrik, dengan sedikit atau hasil yang membingungkan. Ini adalah salah satu saat ketika Anda hanya perlu menaruh beberapa topi di sana dan tidak khawatir tentang apakah mereka melakukan sesuatu yang positif atau tidak. Bisa jadi kekuatan Anda berisik, tetapi hanya satu dari beberapa hal yang menyebabkan masalah. Tambahkan tutup yang lebih besar secara paralel dengan tutup 0,1 uF di PIC. Tambahkan batas ke osilator 40 MHz. Pastikan lead sesingkat mungkin. Kemudian pindah ke hal berikutnya.

Tutup daya ekstra adalah salah satu hal yang tidak mungkin menyebabkan masalah. Itu sebabnya Anda bisa mengenakannya dan tidak terlalu mengkhawatirkannya. Terutama dengan topi 10-100 uF.

Kemudian, setelah semuanya berfungsi, Anda dapat melepas tutup ini satu per satu dan melihat apakah masalahnya kembali. Jika tidak kembali maka tutupnya tidak menjadi masalah. Tetapi untuk saat ini Anda harus menghapus ini sebagai masalah potensial tetapi menambahkan tutup.

Sementara floating pin bisa menjadi masalah, mereka jarang menjadi masalah yang cukup besar untuk menyebabkan MCU crash. Ini layak diperbaiki, karena menyebabkan masalah lain, tetapi sangat tidak mungkin menjadi masalah di sini. Catatan: cara sederhana untuk menghentikan pin yang tidak digunakan dari mengambang adalah dengan mengaturnya sebagai output! Tinggi atau rendah, tidak masalah. Tetapi jika PIC mendorong pin-pin itu maka mereka tidak bisa mengambang.


sumber
2
Jawaban yang bagus Semua kabel yang panjang dan berantakan itu hanya membuatku berpikir bahwa mencoba membuat ini bekerja di papan tempat memotong roti yang buruk tidak sebanding dengan waktu dan kesengsaraannya.
Rocketmagnet
Daftar bagus! Saya akan melaporkan hasil ketika saya melewatinya.
AndrejaKo
4

Anda tidak menyebutkan pin PGM (kadang-kadang disebut LVP). Ini harus terikat rendah atau LVP dinonaktifkan dalam byte conifig.

Apakah Anda yakin PIC ini dapat mengambil 40 MHz secara langsung? Beberapa hanya dapat mencapai 40 MHz melalui PLL internal. Saya tidak memeriksa lembar data tetapi Anda harus. Meskipun begitu, saya tidak berharap 40 MHz pada papan tempat memotong roti untuk berperilaku baik. Saya pikir Anda harus bisa menjalankan PIC dengan kristal 10 MHz dan 4x internal PLL meskipun jika Anda berhati-hati dengan papan tempat memotong roti dan meletakkan topi memotong di tempat yang tepat.

Pertanyaan semacam ini muncul secara teratur. Alih-alih mengulangi semua masalah biasa, lihat /electronics//a/29620/4512 .

Olin Lathrop
sumber
Sepertinya kita punya dua jawaban yang benar di sini :)
abdullah kahraman
2

Saya harus setuju dengan David. Ada begitu banyak kabel panjang, dan 40MHz pada papan tempat memotong roti cukup optimis. Saya tidak percaya waktu Anda benar-benar bernilai sangat sedikit sehingga Anda tidak mampu membuat prototipe PCB kecil . Hal-hal ini hanya berharga sekitar £ 30 dari Kereta PCB . Saya yakin akan ada seseorang di dekat Anda yang bisa menyediakan yang serupa.

Kenapa tidak melakukan ini. Desain PCB yang memiliki PIC, osilator, dan regulator sebagai komponen SMD, kemudian seluruh strip papan perf. Dengan cara ini Anda masih dapat melakukan prototyping Anda, tetapi pastikan bahwa PIC senang.

Papan perf prototipe PC

Roket
sumber
2
Ah, saya suka Altium 3D! Ngomong-ngomong, £ 30 bisa jadi tinggi untuk seorang siswa :) Lebih baik menggunakan papan perf atau lebih baik, PCB buatan sendiri.
abdullah kahraman
1
Jika berhasil membuat PCB buatan sendiri, saya pasti akan mencoba dengan ide ini.
AndrejaKo
2
@AndrejaKo - Keren. Beri kami tanda centang kemudian :) - Atau bahkan hanya menempatkan dua baris pin strip, sehingga Anda bisa hubungkan ke papan tempat memotong roti.
Rocketmagnet
1

jika Anda memiliki generator variabel F eksternal, pertimbangkan untuk menggunakannya untuk menguji tata letak / chip untuk masalah. dan temukan F eksternal yang menyebabkan kegagalan. Dan ingat kabel ground yang diperluas berfungsi sebagai antena untuk pembicaraan lintas bising.

Tony Stewart Sunnyskyguy EE75
sumber
0

probe terlihat seperti Anda memerlukan penyelidikan logika, dvm atau cakupan ... http://search.digikey.com/us/en/products/DP%2052/BKDP52-ND/227492

Pasang tutup di chip jam V + / gnd dan pertimbangkan twisted pair untuk 40MHZ jika jauh. Pic xtal memiliki input dan output .. periksa output DC level terbalik = v / 2? .. apakah Pic menjadi hangat? Ha..

Saya menyarankan 10MHz Xtal PLL mode @ 40MHz untuk menghindari masalah tata letak.

"Mode HSPLL memanfaatkan osilator mode HS untuk frekuensi hingga 10 MHz. PLL kemudian mengalikan frekuensi output osilator dengan 4 untuk menghasilkan frekuensi clock internal hingga 40 MHz. PLL hanya tersedia untuk osilator kristal ketika FOSC3: FOSC0 Bit konfigurasi diprogram untuk mode HSPLL (= 0110). "

Tony Stewart Sunnyskyguy EE75
sumber
Saya benar-benar mencoba menggunakan HSPLL dan 10 MHz kristal, tetapi dalam mode HSPLL itu menunjukkan hasil yang sama dengan osilator. Ini berfungsi dengan baik dalam mode HS.
AndrejaKo
Juga PIC tidak menjadi hangat saat digunakan, sejauh yang saya bisa lihat.
AndrejaKo