Saya telah bekerja dengan PIC16 dan PIC18s selama lebih dari tiga tahun sekarang dan ingin mengenal AVR juga. Saya tidak memiliki proyek khusus dalam pikiran, tetapi ingin mencoba-coba dengan berbagai arsitektur. Saya ingin mendapatkan laporan kompatibilitas pada PIC dan AVR.
Perangkat lunak UC
Saya kenal dengan Assembly dan C untuk PIC16 dan PIC18. Bagaimana varian Assembly dan C untuk mikrokontroler AVR berbeda dari varian PIC? Apakah ada banyak perbedaan?
Perangkat lunak PC Perangkat lunak
apa yang saya perlukan untuk menyusun dan merakit program saya untuk chip AVR? Apakah gratis dan di mana saya bisa mengunduhnya?
Memprogram perangkat keras
Saya telah menggunakan Wisp648 VOTI untuk memprogram PIC, tetapi board itu tidak dapat memprogram AVR. Apakah saya harus membeli seorang programmer atau apakah ada sirkuit yang tersedia di web yang dapat saya bangun sendiri?
Perangkat keras UC
Untuk PIC, saya sering menggunakan PIC18F4620 . Saya mencari AVR dengan fitur serupa. Fitur yang saya suka adalah:
- Osilator Internal
- Pengatur waktu
- Versi 5V dan 3.3V
- ADC
- MSSP dengan dukungan I2C dan SPI
- (E) USART
- PWM
- Banyak pin I / O
- > = 32kB memori program,> = 2kB RAM
- Paket DIP
Chip AVR apa yang akan memiliki fitur yang sama? Paket ini adalah deal breaker, saya benar-benar ingin DIP, PDIP atau SPDIP. Akan seperti apakah AVR dengan fitur yang sebanding?
Varian SPI dan I2C
Saya diberitahu bahwa Microchip memiliki varian sendiri pada protokol SPI dan I2C. Saya sering menggunakan perangkat budak SPI dan I2C dari microchip dalam kombinasi dengan PIC. Apakah saya dapat menggunakan chip ini (23K256, RTC, ENC28J60, ...), dalam kombinasi dengan AVR? Selain itu, apakah mungkin menghubungkan AVR dan chip PIC menggunakan I2C atau SPI?
Jawaban:
perangkat lunak UC
Set instruksi PIC dan AVR serupa, tapi saya tidak akan memulai pemrograman AVR dalam perakitan. Program di C, dengan Atmel Studio. Itu datang dikemas dengan versi AVR gcc, dan memiliki disassembler yang sangat bagus yang menunjukkan Anda garis C yang Anda tulis, dan di bawahnya, instruksi perakitan yang dihasilkan, sangat berguna. Saya juga akan mengunduh WinAVR .
Perangkat lunak PC
Gunakan Atmel Studio . Jangan repot-repot dengan Eclipse, Notepad Programmer, atau apa pun yang digunakan orang secara acak. Atmel Studio didasarkan pada Visual Studio, memiliki semua jenis plug in yang tersedia dari Atmel, dan memiliki simulator yang baik.
Perangkat keras pemrograman
Ada banyak programmer AVR murah, seperti Bus Pirate, tetapi dapatkan Atmel ICSP . Ini sepenuhnya sepadan dengan biaya tambahan jika Anda berniat melakukan lebih dari satu proyek AVR. Menggunakan USB, dan dapat dikontrol dari dalam Atmel Studio.
perangkat keras UC
Ada alat pemilih , tetapi secara umum, perangkat keras khas AtMega low end adalah:
Pergi ke chip berkinerja lebih tinggi akan memberi Anda lebih banyak timer dan PWM. Berapa banyak memori flash dan SRAM yang Anda miliki tergantung pada chip tertentu. Sebagian besar suku cadang AtMega tersedia di PDIP, dengan jumlah pin yang sangat tinggi adalah QFP.
Varian SPI dan I2C
Dimungkinkan untuk menggunakan MCP I2C (TWI untuk AVR) dan perangkat SPI dengan AVR UC. Anda benar-benar perlu membaca bagian SPI dan TWI lembar data AVR dengan hati-hati, jangan melewati satu baris pun. Ada beberapa register kontrol untuk pesanan data, polaritas jam, dll untuk setiap antarmuka. Semuanya tercantum dalam lembar data, dan sangat mudah dibaca. Tidak akan sulit untuk menautkan AVR dan PIC. Anda hanya perlu bermain dengan mode SPI atau TWI sampai Anda menjalin komunikasi.
sumber
C akan sama dengan beberapa perbedaan kompiler kecil. Perakitan akan sangat berbeda karena arsitekturnya berbeda. Saya menyarankan untuk menggunakan C, dan mungkin mengambil cukup perakitan untuk dapat menjalankan beberapa rutinitas penting.
Untuk IDE dan programmer, Atmel memiliki penawaran yang mirip dengan Microchip, lihat saja situs web mereka, unduh IDE gratis dan pilih programmer.
Sebuah chip yang mirip dengan 18F mungkin sesuatu seperti ATMega328 (yang digunakan di Arduinos) Saya percaya mereka memiliki versi paket DIP.
Ya, I2C dan SPI harus bekerja sama. Menghubungkan AVR dan PIC seharusnya tidak menjadi masalah.
Penafian - Saya belum pernah menggunakan AVR untuk waktu yang lama. Saya terutama menggunakan PIC dan ARM saat ini, tetapi saya tidak pernah memiliki masalah menghubungkan apa pun dengan SPI / I2C di masa lalu, setelah sering menggunakan SPI untuk menghubungkan antara misalnya PIC / Atmel EEPROM / Cortex-M3 / FPGA. SPI adalah protokol yang sangat mendasar yang harus dimiliki oleh setiap mikro modern dalam perangkat keras.
I2C sedikit lebih kompleks. Saya tidak dapat mengingat kisah lisensi / penamaan (misalnya 2-kawat, I2C, SMBus) di atas kepala saya, tetapi sebagian besar periferal kompatibel pada tingkat dasar sejauh yang saya ketahui. Baca halaman-halaman Wiki - untuk lebih jelasnya.
sumber
Saya bekerja sama baiknya pada PIC dan AVR (dan lainnya, juga).
Saya suka AVR karena AVR-libc . Ini adalah perpustakaan tertanam layak yang open source dan cukup baik didokumentasikan ( TIDAK SEPERTI PLIB Microchip, tapi PLIB memang memiliki sumber penuh, yang saya benar-benar menghargai). AVR menggunakan gcc dan gdb tua biasa yang berarti tidak ada IDE idiot yang menghalangi saya. Alat yang sama berfungsi pada Windows, OSX dan Linux, dan saya tidak perlu 600MB + IDE dengan Java dan Netbeans atau Eclipse untuk tersandung atau mencemari pohon sumber saya dengan sampah mereka sendiri.
Pemrograman AVR biasanya dilakukan melalui ISP atau JTAG (dulu ada pertanyaan baru tentang itu), dan dari sudut pandang pemrograman, itu benar-benar tidak jauh berbeda dari mikro lainnya.
Dari sudut pandang pribadi, saya telah tumbuh menjadi sangat tidak suka lembar data dan penomoran part Microchip. Saya memotong gigi saya pada desain tertanam dengan Microchip dan saya menyukainya untuk waktu yang sangat lama, tetapi ketika saya mencari mikro hari ini saya cenderung memulai dengan Atmel, meskipun mereka tidak tanpa kekurangan mereka juga. (SAM-BA adalah sampah untuk komponen SAM mereka, dan saya juga mengalami masalah dengan dukungan pabrik mereka.)
Sejauh yang digunakan ... coba keduanya, itu seperti perbedaan antara Coke dan Pepsi. Mereka sangat, sangat mirip dan pilihan biasanya turun ke harga dan alat yang Anda suka gunakan.
sumber