Kategori: Litar mikropengawal
Bilangan pandangan: 23111
Komen pada artikel: 0

PIC microcontrollers untuk pemula

 

Di pasaran moden terdapat beberapa keluarga dan siri mikrokontroler dari pengeluar yang berlainan, antaranya AVR, STM32 dan PIC boleh dibezakan. Setiap keluarga telah menemui skopnya sendiri. Dalam artikel ini saya akan memberitahu pemula tentang PIC microcontrollers, iaitu, apa itu dan apa yang anda perlu tahu untuk memulakannya.

PIC microcontrollers untuk pemula

Apakah PIC itu

PIC adalah nama siri mikrokontroler yang dihasilkan oleh Microchip Technology Inc (USA). Nama PIC berasal dari Controller Interface Peripheral.

PIC mikrokontroler mempunyai seni bina RISC. RISC - set arahan yang disingkat, juga digunakan dalam pemproses untuk peranti mudah alih. Terdapat beberapa contoh penggunaannya: ARM, Atmel AVR dan lain-lain.

Pada 2016, Microchip membeli Atmel, pengeluar alat kawalan AVR. Oleh itu, laman web rasmi menyampaikan mikrokontroler keluarga dan PIC dan AVR.

Mikrokontroler PIC16F1xxx

Keluarga

Di antara mikrokontroler PIC 8-bit, ia terdiri daripada 3 keluarga yang berbeza dalam seni bina (kedalaman bit dan set arahan).

  • Baseline (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx);

  • Mid-range (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx);

  • Peningkatan Pertengahan (PIC12F1xxx, PIC16F1xxx);

  • High-end atau PIC18 (18Fxxxx, 18FxxJxx dan 18FxxKxx).

Perbandingan keluarga mikrokontroler

Ciri-ciri diberikan dalam jadual di bawah.

PIC Microcontroller Features

Sebagai tambahan kepada mikrokontroler 8-bit, Microchip menghasilkan 16-bit:

  • PIC24F;

  • DsPIC30 / 33F untuk pemprosesan isyarat.

Wakil keluarga 16-bit beroperasi pada kelajuan 16 hingga 100 MIPS (berjuta-juta arahan sesaat selesai). Perlu diperhatikan dan ciri-ciri:

  • kitaran mesin - 2 pusingan;

  • Resolusi ADC - 16 bit;

  • menyokong beberapa protokol komunikasi (UART, IrDA, SPI, I2S ™, I2C, USB, CAN, LIN dan SENT), PWM dan banyak lagi.

Terdapat juga keluarga mikrokontroler 32 bit - PIC32MX, ciri-ciri utama:

  • beroperasi pada kekerapan sehingga 120 MHz;

  • Lakukan sehingga 150 MIPS

  • ADC: 10-bit, 1 Msp (kelajuan kuantisasi), sehingga 48 saluran.



Apa PIC bermula dengan?

Pemula harus mula menguasai PIC microcontrollers dari talian 8-bit. Secara umum, pengeluar mendakwa bahawa ciri keseluruhan keluarga adalah mudah dibawa program dari satu keluarga ke keluarga lain dan jumlah model.

Salah satu mikrokontroler yang paling popular dalam persekitaran radio amatur ialah PIC16f628A. Ciri teknikalnya adalah seperti berikut:

  • Terdapat penjana jam terbina dalam. Anda boleh menyesuaikan dengan frekuensi 4 atau 8 MHz;

  • 18 pin, di mana 16 - input / output, dan 2 - kuasa;

  • Untuk beroperasi pada frekuensi sehingga 20 MHz, anda boleh menyambung resonator kuarza, tetapi dalam kes ini tidak ada 16, tetapi 14 kaki dibiarkan untuk input / output;

  • Terdapat huruf F dalam tanda, yang bermaksud memori FLASH dengan kapasiti 2048 kata digunakan;

  • Arahan 14-bit, 35 keping;

  • 2 penyusun;

  • 4 input analog;

  • Input PORTB mempunyai resistor pull-up;

  • Dua pemasa 8-bit dan satu 16-bit;

  • Kitaran mesin - 4 kitaran daripada resonator kuarza atau pengayun dalaman);

  • 224 bytes RAM;

  • 128 bait EEPROM;

  • USART - port siri;

  • rujukan voltan dalaman;

  • dikuasakan oleh 3.3 hingga 5 V.

Alasan popularitinya adalah harga yang rendah dan keupayaan untuk jam dari penjana dalaman.

Yang pinout 16f628 ditunjukkan di bawah:

Pinout di 16f628

Litar dalaman blok pengawal mikrokontroler ini ditunjukkan di bawah.

Struktur mikropengawal 16f628

Apa yang perlu saya perhatikan dalam skema di tempat pertama?

Mikrokontroler ini mempunyai dua pelabuhan PORTA dan PORTB. Setiap pin, masing-masing boleh digunakan sebagai input dan output, serta untuk menyambungkan peranti atau mengaktifkan modul mikrokontroler lain.

Pertimbangkan bahagian skema ini secara terperinci.

Pelabuhan MK

Sebagai contoh, pelabuhan RB0-RB3 - boleh bertindak sebagai analog. Jika perlu, sumber jam disambungkan kepada RA6, RA7 (resonator kuarza) Output mikrokontroler sendiri dikonfigurasikan dalam mod input / output menggunakan register TRIS.

Terdapat arahan untuk jenis ini:

TRISA = 0; // Semua pin port A ditetapkan sebagai output
TRISB = 0xff; // Semua pin port B ditugaskan sebagai input
TRISA0 = 1; // Jadi pin berasingan diberikan sebagai input (1) atau output (0)
TRISA5 = 1/ / / di sini keluaran 5 port A ditugaskan sebagai input

Secara umum, mod operasi, kemasukan WDT (pemantau pengawas), pilihan sumber jam pengawal mikro dan sebagainya dikonfigurasi menggunakan daftar khas - SFR, dan memori dan data disimpan dalam GFR - dengan kata mudah, ini adalah RAM statik.

Dalam Datasheet rasmi, di muka surat 18-21, anda akan dapati 4 bank ingatan untuk daftar tujuan khusus SFR dan daftar tujuan umum GFR. Pengetahuan daftar adalah penting, jadi cetak dan pelajari halaman yang ditunjukkan dari Datasheet.

Untuk kemudahan, jadual ini dibentangkan dalam bentuk gambar di bawah (penomboran daftar, seperti segala-galanya dalam elektronik digital, bermula dari 0, jadi nombor keempat ialah 3).

Daftar Tujuan Khas
Daftar Tujuan Khas
Daftar Tujuan Khas
Daftar Tujuan Khas

Bagaimana untuk menyambung dan dalam bahasa apa program?

Untuk menjalankan mikrokontroler ini, ia cukup untuk digunakan ditambah kepada Vdd dan tolak ke Vss. Jika anda memerlukan resonator kuarza, maka ia disambungkan kepada pin 16 dan 15 (OSC1 dan OSC2) daripada mikrokontroler PIC16f628, untuk pengawal lain dengan bilangan pin yang lebih besar atau lebih kecil - lihat dalam datasheet. Tetapi perkara ini mesti ditunjukkan semasa pengaturcaraan dan firmware.

Bercakap mengenai kemudahalihan dan kebetulan pinout - pada 16f84A - ia sama, dan banyak lagi.

Sambungan resonator kuarza

Serpihan litar dengan resonator luaran bersambung dengan pic16f628a:

Potongan litar dengan resonator luaran disambungkan kepada pic16f628a

Terdapat dua bahasa utama untuk pengaturcaraan PIC microcontrollers - assembler dan C, ada yang lain, contohnya PICBasic, dll. Anda masih boleh menyerlahkan bahasa pengaturcaraan ringkas JAL (bahasa lain sahaja).

Sebagai contoh, di bawah adalah program untuk "berkelip LED" - jenis "Hello World" untuk PIC mikrokontroler di C.

Satu contoh program mikrokontroler PIC di C

Dalam baris 1, perpustakaan PIC mikrokontroller disambungkan, maka perpustakaan program kelewatan disambungkan.

Dalam fungsi utama (tidak sah), parameter awal ditetapkan pada permulaan, seperti yang kita lakukan dalam fungsi persediaan Void () - dalam artikel mengenai arduino. Kemudian, dalam garisan 11-16, gelung tak terhingga manakala (1) diisytiharkan, di mana program "berkedip LED" dilaksanakan.

Contohnya, keadaan pelabuhan sentiasa terbalik, iaitu. jika ia berada pada "0", maka ia akan pergi ke "1" dan sebaliknya. Di C untuk PIC terdapat perintah pengurusan arahan berikut:

PORTA = 0; // tulis semua pin port A ke tahap yang rendah (log 0)
PORTB = 0xff; // menterjemahkan semua pin port B ke tahap tinggi (log 1)
RB5 = 1; // Pin kelima pelabuhan B adalah tinggi

Dan ia kelihatan seperti program yang sama, tetapi sudah dalam bahasa JAL, saya menerjemahkan komentar Rusia dari pemaju contoh terbina dalam JALedit (persekitaran pembangunan).

Contoh Program JAL

Terdapat godaan untuk memilih JAL, dan mungkin kelihatan lebih mudah untuk anda. Sudah tentu, anda boleh melaksanakan mana-mana projek di atasnya, tetapi dari sudut pandangan manfaat untuk anda sebagai pakar, ia adalah bahasa yang tidak berguna. Anda akan mencapai hasil yang lebih besar dengan mengkaji sintaks dan prinsip-prinsip pengaturcaraan dalam C (kebanyakan bahasa yang kini popular adalah seperti C) atau dalam Assembler - ini adalah bahasa peringkat rendah yang akan membuat anda memahami prinsip peranti dan apa yang berlaku dalam program pada bila-bila masa.


Bagaimana untuk berfungsi

Jika anda mengatakan agak umum untuk bekerja dengan mana-mana mikrokontroler yang anda perlukan:

1. Editor teks.

2. Pengkompil.

3. Program untuk memuat turun firmware ke mikrokontroler.

Dan saya juga membaca buku teks lama, di mana penulis, bekerja dari bawah DOS, menulis kod, menyusun dan memaparkan menggunakan pelbagai cara. Sekarang, untuk semua sistem operasi yang popular, terdapat persekitaran pembangunan, kedua-duanya sangat khusus (untuk keluarga tertentu mikrokontroler atau keluarga dari satu pengilang) dan sejagat (sama ada mengandungi semua alat yang diperlukan, atau ia disambungkan sebagai plug-in).

Sebagai contoh, dalam satu siri artikel tentang Arduino, kami memeriksa persekitaran Arduino IDE, di dalamnya kami menulis kod dan dengan bantuannya "menuang" firmware ke dalam "batu". Untuk mikrokontroler PIC terdapat program seperti:

  • MPASM - digunakan untuk pembangunan dalam bahasa Assembler dari Microchip;

  • MPLAB juga Microchip IDE untuk pengawal PIC. Ia terdiri daripada banyak blok untuk ujian, pemeriksaan, kerja dengan kod dan menyusun program dan memuat turun ke mikrokontroler. Terdapat juga versi MPLAB X IDE - ia mempunyai fungsi yang hebat dan dibina berdasarkan platform NetBeans;

  • MikroC adalah persekitaran sejagat (bukan sahaja untuk PIK) untuk pembangunan. Seperti namanya, ia adalah "tajam" untuk pengaturcaraan C, dan terdapat juga program seperti MikroBasic dan MikroPascal untuk bahasa yang berkaitan;

  • JALedit - sesuai untuk bahasa JAL yang kami sebutkan di atas;

  • Dan beberapa yang lain yang kurang dikenali.

IDE MPLAB

Bagaimana untuk memancarkan mikropengawal?

Terdapat beberapa programmer untuk mikronotrollers PIC. Secara rasmi dianggap PICkit. 4 versi mereka. Tetapi anda boleh berkelip dan universal, sebagai contoh, TL866 (ia menyokong hampir semua perkara yang amat diperlukan oleh amatur radio pemula, sementara itu sangat murah).

Pengaturcara untuk PIC Micronotrollers

Juga pada rangkaian terdapat beberapa litar programmer yang berbeza untuk PIC, baik untuk bekerja melalui port COM:

Litar pemrogram

Jadi ia melalui USB (sebenarnya, juga com, hanya melalui penukar pada IC MAX232).

Litar pemrogram

Kesimpulannya

PIC16 mikrokontroler sesuai untuk projek mudah, seperti automasi mudah, voltmeters, termometer dan lain-lain perkara kecil. Tetapi ini tidak bermakna bahawa anda tidak boleh melakukan projek yang rumit dan besar pada keluarga ini, saya memberi contoh mengapa mereka paling sering digunakan. Untuk idea umum, saya cadangkan menonton beberapa video:

Dalam satu artikel, tidak ada arti untuk mempertimbangkan topik tentang cara memprogramkan mikrokontroler, tidak kira keluarga mana pun. Oleh kerana ini adalah maklumat yang sangat besar.

Lihat juga di i.electricianexp.com:

  • Jenis dan perkiraan mikrokontroler AVR
  • Pengaturcaraan microcontroller untuk pemula
  • Apakah mikrokontroler - tujuan, peranti, perisian
  • Pemrogram mikrokontroler dalam JavaScript: mana yang boleh dipilih, ciri ...
  • Kaedah untuk membaca dan mengurus port Arduino I / O

  •