Saya ingin tahu apakah ada cara untuk memprogram PIC untuk pertama kalinya (tulis dalam Flash) melalui kartu FPGA.
PIC sudah disolder ke FPGA dan saya tidak bisa menghapusnya. Tidak ada bootloader di PIC. Jadi saya perlu memprogramnya dalam mode USART / SPI / I2C dengan bootloader sehingga dapat menerima data dari FPGA.
Saya tahu bahwa biasanya saya harus melepaskannya, menghubungkannya ke programmer perangkat keras seperti PICKit dan memprogramnya dengan perangkat lunak pada komputer seperti MPLAB, tetapi saya tidak mampu membelinya.
Saya dapat membuat bootloader dengan MPLAB, yang merupakan file .hex, tetapi bagaimana saya dapat mentransfernya ke FPGA dan kemudian ke PIC melalui pin FPGA?
PIC yang digunakan adalah Microchip PIC12F1822.
pic
fpga
programmer
bootloader
pickit
Mister
sumber
sumber
Jawaban:
Tidak, Anda tidak perlu, bahkan Anda tidak bisa, menggunakan SPI, UART, atau I 2 C untuk memprogram PIC. Satu- satunya cara untuk mendapatkan program baru menjadi PIC yang tidak memiliki kode khusus yang dimuat untuk tujuan itu (sebuah bootloader) adalah dengan menggunakan antarmuka pemrograman perangkat keras eksternal. Secara elektrik, ini berarti menghubungkan ke Vss, MCLR, PGC, dan PGD. Dapat bermanfaat untuk memiliki programmer yang terhubung ke Vdd, tetapi tidak perlu untuk chip ini selama level Vdd diketahui dan programmer menyesuaikannya.
Antarmuka perangkat keras tingkat rendah cukup sederhana. PGD adalah jalur data, yang diambil sampelnya oleh PIC pada ujung jatuh dari PGC (garis jam). Untuk mendapatkan PIC ke mode pemrograman di tempat pertama, kunci 32 bit khusus clock relatif terhadap tepi spesifik pada MCLR (meskipun lihat catatan di bawah ini mengenai pemrograman tegangan tinggi).
Protokol tingkat yang lebih tinggi menjadi lebih rumit. Sebagian besar hal dilakukan dengan perintah 6 bit, beberapa di antaranya diikuti oleh 14 kata data bit. Anda harus membaca spesifikasi pemrograman dengan cermat. Perhatikan bahwa spesifikasi pemrograman adalah dokumen terpisah dari lembar data. Buka halaman produk untuk PIC khusus Anda di situs web Microchip, dan Anda akan menemukan tautan ke spesifikasi pemrograman di bagian dokumen.
Ditambahkan tentang pemrograman tegangan tinggi
Jenis PIC ini memiliki dua cara untuk masuk ke mode pemrograman, tegangan tinggi (HVP) dan tegangan rendah (LVP). Metode tegangan tinggi memerlukan menaikkan MCLR antara 8 dan 9 volt dan tetap di sana selama pemrograman. Metode ini selalu berhasil, terlepas dari data yang mungkin diprogram ke dalam PIC.
Metode tegangan rendah memasuki mode pemrograman dimulai dengan mengendarai MCLR tinggi, kemudian rendah, kemudian clocking dalam urutan kunci 32 bit khusus menggunakan PGC dan PGD secara normal. Bagian akan memasuki mode pemrograman pada urutan tombol yang benar, dan akan tetap dalam mode pemrograman selama MCLR ditahan.
Metode tegangan rendah dapat dinonaktifkan oleh salah satu bit konfigurasi. Namun, keadaan terhapus dari bit konfigurasi memungkinkan pemrograman tegangan rendah, itu dikirim dari pabrik dengan cara itu, dan bit konfigurasi ini hanya dapat diatur untuk melarang LVP jika pemrograman dimasukkan dengan metode tegangan tinggi. Oleh karena itu, agar LVP tidak diaktifkan, semua yang berikut ini harus benar:
Karena menonaktifkan LVP cukup banyak membutuhkan tindakan yang disengaja dan programmer yang tepat, kemungkinan masih memungkinkan. Jika sengaja dinonaktifkan karena beberapa alasan aneh, maka Anda harus menyediakan 8-9 V pada MCLR untuk mendapatkan PIC ke mode pemrograman setidaknya cukup lama untuk melakukan penghapusan massal (yang mengaktifkan kembali LVP).
sumber
Pemrograman PIC membutuhkan tegangan tinggi. Ya, dimungkinkan untuk mengubah PIC menjadi "LVP", atau mode Pemrograman Tegangan Rendah, tetapi Anda memerlukan pemrogram tegangan tinggi untuk melakukan ini.
Jika PIC Anda telah dimasukkan ke dalam mode LVP maka ya, Anda dapat dengan mudah memprogram PIC dari FPGA. Lembar data semua berisi bentuk gelombang pemrograman yang diperlukan untuk memprogram chip, jadi itu akan menjadi kasus membangun perangkat programmer PIC Anda sendiri di FPGA.
Namun, jika PIC belum dimasukkan ke mode LVP, Anda harus menghasilkan tegangan tinggi (biasanya 10V) dan menerapkannya ke pin MCLR pada waktu yang tepat untuk masuk ke mode pemrograman. Jika Anda belum memiliki perangkat keras semacam ini di papan Anda, maka itu akan memerlukan perangkat keras tambahan yang pada akhirnya dikontrol oleh FPGA ketika dipicu.
Sebagian besar programmer PIC menyertakan regulator penambah kecil (pengganda tegangan) untuk mengambil 5V hingga 10V yang disediakan menggunakan PIC onboard untuk mengelola pengaturan tegangan. Mereka sering menggunakan PWM dari PIC dan input ADC pada PIC sebagai regulator boost sederhana.
Anda harus melihat skema PICkit2 yang tersedia untuk umum.
sumber