Saya memiliki pengalaman dengan perakitan dan pemrograman C untuk mikrokontroler, tetapi saya tidak terbiasa dengan berbagai keluarga MCU dan DSP yang ditawarkan oleh perusahaan saat ini. (mis: Texas Instruments, Atmel, Renesas)
Saya ingin tahu tentang mikrokontroler / DSP yang baik, dan bagaimana rasanya berkembang bersama mereka. Silakan rangkum pemahaman Anda tentang berbagai keluarga MCU / DSP, satu keluarga per jawaban.
Akan sangat menarik juga jika Anda merinci apa aplikasi utama untuk mikrokontroler ini.
(Ini adalah "komunitas-wiki", sehingga siapa pun dengan reputasi> 100 dapat memperbaiki dan meningkatkan jawaban)
microcontroller
development
design
dsp
Edward
sumber
sumber
Jawaban:
ARM adalah standar industri untuk pengontrol 32-bit, meskipun PIC32 memiliki beberapa fitur yang bagus. Mereka cukup mudah digunakan. Saya suka chip NXP LPC2000 dan LPC1000 ARM, tetapi chip Energy Micro ARM Cortex-M3 sangat menarik karena konsumsi dayanya yang sangat rendah - sebagus MSP430 [Youtube]. Dukungan sangat bervariasi, chip NXP memiliki grup LPC2000 yang saya jalankan, yang tampaknya disukai orang - kami memiliki lebih dari 8.000 anggota!
sumber
Atmel AVR , mungkin dalam bahasa Arduino : Saya tidak setuju dengan Leon, dan mengatakan bahwa saluran AVR Atmel adalah keluarga yang hebat untuk memulai. Cukup beragam, mulai dari ATtiny, melalui ATmega, hingga Dragon (yang belum pernah saya kerjakan.) Saya akan mengatakan bahwa AVR32 dan Xmega adalah keluarga yang berbeda.
AVRfreaks adalah salah satu forum elektronik terbaik di web (akan segera dilampaui oleh Chiphacker :), komunitas Arduino juga ada, yang ditargetkan untuk penggemar. Arduino sangat bagus untuk mempelajari perangkat keras mikrokontroler, meskipun itu tidak akan membantu Anda dengan pemrograman (OP menyatakan bahwa mereka tahu ASM dan C).
Suite WinAVR semudah pie dibandingkan dengan toolchain lainnya. Cukup unduh, tekan Berikutnya beberapa kali, masukkan beberapa kode dan tekan F5. Tidak ada yang lebih mudah dari itu. Tentu, editor AVR Studio tidak memiliki semua fitur yang seharusnya, tetapi banyak vendor IDE tidak lebih baik, atau bahkan lebih buruk (* batuk * MPLAB * batuk *).
Saya tidak yakin tentang pengiriman, tetapi saya akan mengatakan SOT23 ATtiny 6-pin adalah chip khusus, dan versi SO8 atau DIP sangat banyak tersedia. Pada catatan terkait, mereka juga melakukan pekerjaan yang baik untuk sumber mereka baik dalam paket DIP (untuk prototyping) dan kompak SMT.
sumber
TI MSP430 series
Perangkat keras
Variasi periferal perangkat keras tidak sefleksibel Microchip PICs, tetapi dukungan debug toolchain jauh lebih baik daripada bagian-bagian Microchip. TI baru-baru ini merilis versi baru dari Code Composer untuk mikrokontroler MSP430 dan TMS320F28xx DSP, yang menggunakan Eclipse. Dukungan debugging sangat baik.
Ini juga sangat mudah untuk mengatur register kontrol, jauh lebih mudah daripada 28xx DSP.
MSP430 dapat menjadi sangat baik untuk aplikasi intensif waktu karena biasanya akan memiliki lebih banyak Capture / Compare Register yang tersedia untuk digunakan. Ini dapat sangat menyederhanakan sistem di mana Anda perlu berurusan dengan banyak banyak periferal waktu intensif.
Pengembangan
Anda dapat membeli sistem pengembangan seharga $ 150 (ada varian MSP430-on-a-USB-stick yang lebih murah $ 20, tetapi agak terbatas), dan Anda mendapatkan sistem prototipe perangkat keras + debugger nyata. Anda juga bisa mendapatkan launchpad TI baru yang dilengkapi dengan 2 chip, dan biaya $ 4,30.
sumber
Microchip PIC 16F / 18F
Sasaran pasar
Mikroprosesor 8-bit yang murah. 16F adalah salah satu dari lini prosesor Microchip sebelumnya dan tidak terlalu dapat menerima pemrograman dalam C / C ++ karena:
Seri 18F lebih baru dan harus dipertimbangkan jika Anda mampu membelinya untuk proyek Anda. Ini serupa di pasar target, perangkat periferal, paket IC, alat pengembangan, dan harga untuk seri 16F. Inti 18F dirancang untuk lebih menerima C dan C ++, karena:
Perangkat lunak
Cukup mudah program, Anda dapat menulis menggunakan set dari 30 petunjuk perakitan, atau menggunakan C compiler . Ini adalah MCU 8-bit jadi jika Anda ingin bekerja dengan nilai> 255 Anda harus menemukan / menulis kode tambahan 2 byte / pengurangan / perkalian / pembagian / sendiri. RAM-nya memiliki 4 "bank" jadi jika Anda menulis dalam perakitan, Anda harus terus beralih bolak-balik untuk mengakses variabel yang disimpan di bank selain saat ini.
Perangkat keras
MCU ini berjalan sangat lambat, dengan kecepatan khas 4 MIPS dan kecepatan maksimum 20 MIPS. Mereka memiliki beberapa fitur perangkat keras built-in yang berfungsi baik jika dikonfigurasi dengan benar, seperti ADC, Port serial, Port paralel, CAN bus, bus I2C, SPI bus, perbandingan tegangan, EEPROM, dan tentu saja, semua port I / O tujuan .
Dokumentasi
Alat pengembangan
Microchip memiliki alat baru, VDI yang membuatnya lebih mudah mengkonfigurasi berbagai fitur perangkat keras MCU, yang menghasilkan kode assembly atau C. Lebih baik daripada menuangkan lembar data.
Microchip telah menawarkan IDE MPLAB selama bertahun-tahun, dan meskipun program ini perlahan-lahan membaik, dibandingkan dengan alat pengembangan PC (Visual C ++, Eclipse / NetBeans untuk Java / dll) antarmuka pengguna sangat buruk dan perangkat lunak masih sangat bermasalah. Ini juga tidak mendukung C ++, meskipun fakta bahwa perbedaan antara C dan sebagian besar fitur C ++ (tidak termasuk alokasi memori dinamis, fungsi virtual, dan beberapa fitur lainnya) sangat kecil dan C ++ mendorong modularitas pemrograman. Ada vendor IDE pihak ke-3, khususnya IAR, tetapi harganya mahal. (Hi-Tech dibeli oleh Microchip baru-baru ini.)
In-circuit debugging ditawarkan di beberapa bagian oleh antarmuka ICH Microchip, antarmuka serial 2-pin yang dapat diakses melalui adaptor debugging ICD2, ICD3 , ICE NYATA , PICkit2 / 3, dll. Pastikan untuk memeriksa apakah bagian yang Anda pilih memiliki fitur ICD! Fitur debug agak terbatas dan memiliki "selip" di mana Anda menetapkan breakpoint pada satu instruksi dan program berhenti beberapa instruksi kemudian. Namun, ICD lebih baik daripada tidak sama sekali.
Mendukung
sumber
Blackfin oleh Perangkat Analog Keluarga Blackfin adalah DSP / mikrokontroler hybrid dengan inti RISC yang kuat serta mendukung instruksi pemrosesan video / sinyal. Beberapa instruksi mendukung SIMD.
Perangkat keras
Ini memiliki inti RISC. Kecepatan berkisar dari 200MHz single-core hingga 600MHz dual-core. Perangkat ini mungkin memiliki peripheral: 10/100 Ethernet MAC, UARTS, SPI, kontroler CAN, Timer dengan dukungan PWM, Timer Watchdog, Real-Time Clock, dan pengontrol memori sinkron dan asinkron glueless. Ini memiliki manajemen daya dinamis - secara otomatis mematikan bagian-bagian prosesor yang tidak digunakan.
Pengembangan
Dua alat pengembangan utama adalah VisualDSP ++ AD dan rantai alat GNU. Ada juga SDK dengan banyak kode dan catatan aplikasi. Kode SDK berfungsi baik sebagai kerangka kerja atau sebagai contoh kode yang baik. Ada beberapa sistem operasi, termasuk uCLinux, yang akan berjalan di atasnya. Ada sejumlah papan eval yang tersedia. The manual sangat diperlukan.
Harga saat ini mulai dari $ 2 dalam jumlah 1000 unit.
sumber
The Parallax Propeller adalah oddbird 8-core (delapan "roda" ditambah hub) mikrokontroler yang dapat melakukan hal-hal yang sangat menarik / mengesankan termasuk video generasi SD / VGA.
Ini memiliki lingkungan pengembangannya sendiri termasuk bahasa yang disebut SPIN. Majelis (PASM) tersedia secara alami.
Ada banyak dukungan masyarakat dan proyek yang terlihat menggunakan chip.
Tidak ada banyak model, tetapi chip tersebut tampaknya merupakan hasil dari desain yang sangat hati-hati dan pengembangan jangka panjang yang dilakukan oleh beberapa orang yang sangat berbakat dan kompeten. Ini mungkin tersedia sekitar $ 8.
Perangkat keras pemrograman (dalam sistem) tampaknya terdiri dari port serial level-TTL dan jalur reset. Ada dongle yang disebut Prop Plug yang tersedia.
http://parallax.com
http://en.wikipedia.org/wiki/Parallax_Propeller
sumber
Bagaimana dengan STM32 , keluarga mcu berbasis Cortex-M3 lainnya?
Ini murah untuk memulai karena saya menemukan beberapa barang bagus dari Olimex.
Lalu saya menggunakan gcc sebagai kompiler, dan OpenOCD untuk mengontrol jtag.
sumber
dsPIC33F dan PIC24 : Microchip memiliki keluarga mikrokontroler 16-bit, 40 MIPS yang disebut dsPIC33F yang menggabungkan set instruksi PIC24F dan periferal dengan fitur DSP seperti dua akumulator 40-bit dengan opsi pembulatan dan saturasi; siklus tunggal berlipat ganda dan terakumulasi; dan hingga ± 16-bit shift untuk hingga data 40-bit. Harga rendah (volume terendah $ 2). Satu hal yang saya sukai dari mikrokontroler Microchip adalah banyak perangkat mereka tersedia dalam paket DIP yang ideal untuk papan tempat memotong roti. Saya telah menggunakan salah satu dari ini dalam proyek di mana saya perlu men-decode sinyal DTMF; itu lebih hemat biaya daripada solusi perangkat keras decoder DTMF khusus. PIC24 digunakan dalam uWatch yang menakjubkan, "Jam tangan kalkulator ilmiah RPN / Algebraic terprogram yang paling kuat (dan hanya!)".
sumber
Cypress PSoC1 (CY8C29466) memiliki inti CPU 8-bit sederhana yang dikelilingi oleh blok digital dan analog seperti FPGA.
Ini memiliki input analog dan output analog. Banyak proyek yang akan membutuhkan banyak komponen eksternal dengan mikrokontroler lain - op-amp, PGA, dll. - dapat dilakukan dengan satu chip PSoC. Banyak mouse komputer yang menggunakan PSoC1. Misalnya, ini dapat mendekode nada DTMF yang datang dalam satu pin input, dan secara langsung menghasilkan sinyal DTMF analog independen pada dua pin output - true analog, bukan PWM.
Blok digital dan analog dapat diatur untuk melakukan hal-hal yang sepenuhnya independen dari inti - dan karenanya dengan waktu respons tetap terjamin, bahkan jika CPU sibuk menangani beberapa gangguan selama waktu itu.
Daya yang cukup rendah. Tersedia dalam paket DIP dan SMT.
Inti 8-bit, 24 MHz kira-kira setara dengan inti PIC16F, switching bank yang unik dan semuanya. Kompiler C proprietary tersedia, tetapi GCC sepertinya tidak akan pernah dipindahkan ke salah satu.
Proyek "Gainer.cc" memprogram sistem berbasis PSoC1 menggunakan Pemrosesan melalui kabel USB, sangat mirip dengan proyek "Arduino" yang lebih baru.
The http://www.psocdeveloper.com/ forum ramah. Ada beberapa utilitas yang tersedia untuk melakukan pengembangan di Linux: http://m8cutils.sourceforge.net/ .
sumber
Freescale HCS08 micros adalah pesaing langsung PIC10-18s dan AVRs, umumnya berbiaya lebih rendah tetapi masih dengan perangkat periferal yang cukup kaya. Pustaka catatan aplikasi dan materi referensi mereka cukup bagus.
IDE CodeWarrior mereka (kompiler gratis hingga kode 32k) mencakup beberapa pustaka "Inisialisasi Perangkat" yang berguna untuk pendekatan berbasis GUI untuk membalik bit, dan "Ahli Prosesor" yang lebih canggih yang dapat menghasilkan driver tingkat lebih tinggi untuk periferal. Anda tidak diwajibkan untuk menggunakan keduanya, dan cukup melakukan semuanya dalam kode C langsung jika diinginkan.
sumber
Seri TI TMS320F28xx dari DSP.
Sasaran pasar
Kontrol motor dan konverter daya yang dikontrol secara digital: mereka memiliki periferal PWM yang sangat fleksibel dan ADC cepat.
Perangkat keras
DSP ini memiliki dua kelemahan utama:
Alat pengembangan
Debugging real-time melalui port JTAG, menggunakan Code Composer v4 (Eclipse-based !!!).
Didukung oleh MatLAB simulink untuk pembuatan kode otomatis (tidak diperlukan pengalaman pemrograman)
DSP TI dulu sangat mahal untuk prototipe karena Anda membutuhkan pod debugging real-time (1500 JTAG) seharga $ 1500, tetapi harganya turun (ada yang murah seharga $ 150-200) dan mereka menjual papan eval dengan adaptor JTAG bawaan.
sumber
XMOS membuat jajaran chip pemrosesan paralel 32-bit yang sangat kuat (1600 MIPS dari empat core dengan 32 utas perangkat keras). Mereka cukup cepat untuk melakukan perangkat lunak USB dan Ethernet berkecepatan tinggi. Alat mereka sangat bagus, keripiknya luar biasa, harganya masuk akal (harganya mulai $ 7,50), dan orang-orang di sana sangat membantu. Mereka memiliki dua forum dukungan yang sangat baik; satu dijalankan oleh perusahaan, yang lain independen.
sumber
Saya harus memilih PSoC3 Cypress. Saya telah menggunakan PIC selama sekitar 10 tahun (PIC16, PIC18, dsPIC dan PIC32). Mereka memang membuat saya gila dengan konfigurasi periferal mereka yang menjengkelkan, dan pencarian konstan melalui lembar data untuk menemukan bahwa satu bit yang perlu dibersihkan untuk membuat beberapa pin bekerja.
Di sisi lain, pengalaman yang saya miliki sejauh ini dengan PSoC3 telah menyenangkan. Yang paling penting, mengonfigurasi periferal digital dan analog adalah kesenangan total. Port serial, jam, interupsi, driver, komparator, ADC dan DAC semuanya dapat disambungkan pada lembar skematik, dan mereka bekerja dengan sempurna.
Misalnya, Anda dapat memasang PWM Anda untuk memicu ADC untuk mengambil sampel di tengah-tengah pulsa, membuat pengukuran arus motor lebih akurat. Coba lakukan itu pada PIC.
Ingin 5 PWM, 5 decoder quadrature, ADC, port SPI, dan generator CRC pada chip yang sama? Kamu mendapatkannya. Anda ingin mengkonfigurasi ADC untuk secara berurutan sampel arus di setiap motor di tengah denyut nadi? Kamu mendapatkannya. Plus, Anda dapat menghubungkan semua input dan output ini ke hampir semua pin yang Anda inginkan.
Oh ya, DAN, jika tidak ada perangkat yang tersedia di perpustakaan, Anda dapat menulis sendiri di Verilog!
sumber
Cypress PSoC5 memiliki ARM Cortex M3 32-bit yang dikelilingi oleh blok digital dan analog seperti FPGA.
Resolusi 20-bit analog ADC dan DAC.
Blok digital dan analog dapat diatur untuk melakukan hal-hal yang sepenuhnya independen dari inti - dan karenanya dengan waktu respons tetap terjamin, bahkan jika CPU sibuk menangani beberapa gangguan selama waktu itu.
Daya yang cukup rendah.
Inti 32-bit, 80 MHz ARM Cortex-M3 kira-kira setara dengan ...
The http://www.psocdeveloper.com/ forum ramah.
sumber
Dukungan Atmel sendiri untuk AVR tidak terlalu bagus dan alat-alat perangkat kerasnya agak serpihan. Namun chip-nya bagus, dan forum AVR Freaks sangat bagus. Mereka memiliki masalah pengiriman serius dengan chip baru mereka seperti XMega dan chip Tiny 6-pin.
sumber
Zilog juga memiliki beberapa mikrokontroler. Secara pribadi saya belum mencoba memprogram garis Z8 Encore chip, tetapi mereka mengirim sampel. Mereka memiliki banyak chip berbeda mulai dari 1 KB hingga 16 KB (mungkin lebih) dengan periferal termasuk UART, ADC, I2C , SPI, dll.
Menurut pendapat saya, ini bukan mikrokontroler hobi yang sangat baik.
sumber
Saya menggunakan beberapa keluarga prosesor, Masalah utama dalam mempelajari prosesor baru adalah belajar kode ratusan register konfigurasi register periferal, ini akan menjadi proses yang memakan waktu utama ketika Anda beralih dari satu keluarga ke keluarga lain. kode aplikasi utama ditulis dalam c, tidak masalah keluarga mana pun yang kita gunakan, saya berharap seharusnya ada standar yang dikembangkan untuk register periferal. Jika ada yang mengetahui adanya perkembangan dalam arah ini, silakan bagikan.
sumber
Saya menggunakan PIC, ARM, MSP430, AVR dan beberapa lainnya.
Microchip memiliki dukungan yang sangat baik dan perangkat keras dan perangkat lunak yang baik, debugging sangat mudah dan cepat. Arsitektur 8-bit sedikit tanggal. Chip 16-bit mereka yang lebih baru sangat baik. Mereka adalah pemimpin pasar dalam MCU 8-bit.
sumber