PIC'den AVR'ye geçiş [kapalı]


14

PIC16 ve PIC18s ile üç yıldır çalışıyorum ve AVR'yi de tanımak istiyorum. Aklımda belirli bir projem yok, ancak farklı mimarileri denemek istiyorum. PIC ve AVR hakkında bir uyumluluk raporu almak istiyorum.

uC yazılımı
PIC16 ve PIC18 için Assembly ve C'yi biliyorum. AVR mikrodenetleyicileri için Assembly ve C varyantları PIC varyantlarından nasıl farklıdır? Çok fazla fark var mı?

PC'nin yazılımı
AVR çipleri için programlarımı derlemek ve birleştirmek için hangi yazılıma ihtiyacım olacak? Ücretsiz mi ve nereden indirebilirim?

Programlama donanımı PIC'leri programlamak için
VOTI's Wisp648 kullandım , ancak bu kart AVR'ları programlayamıyor. Bir programcı satın almak zorunda mıyım yoksa web'de kendim oluşturabileceğim herhangi bir devre var mı?

uC'nin donanımı
PIC'ler için PIC18F4620'yi çok kullandım. Benzer özelliklere sahip bir AVR arıyorum. Sevdiğim özellikler:

  • Dahili Osilatör
  • Zamanlayıcılar
  • 5V ve 3.3V versiyonu
  • ADC
  • I2C ve SPI destekli MSSP
  • (E) USART
  • PWM
  • Fazla I / O pinleri
  • > = 32kB program belleği,> = 2kB RAM
  • DIP paketi

Hangi AVR yongası aynı özelliklere sahip olurdu? Paket bir anlaşma kırıcı, gerçekten DIP, PDIP veya SPDIP istiyorum. Karşılaştırılabilir özelliklere sahip bir AVR ne olurdu?

SPI ve I2C varyantları
Microchip'in SPI ve I2C protokolünde kendi varyantlarına sahip olduğu söylendi. Genellikle bir mikroişlemeden SPI ve I2C bağımlı cihazları bir PIC ile birlikte kullanırım. Bu yongaları (23K256, RTC, ENC28J60, ...) bir AVR ile birlikte kullanabilir miyim? Buna ek olarak, bir AVR ve bir PIC çipini I2C veya SPI kullanarak bağlamak mümkün müdür?


@LeonHeller açık değildi, aklımda belirli bir projem yok, ancak farklı mimariyi tanımak için biraz oynamak istiyorum.

5
Bu soru çok geniş ve Q + A formatımız için uygun değil, ancak genel olarak kullanmayı düşündüğünüz işlemcilerin veri sayfalarını okudunuz. Karanlık Yüzde neye benzediğini bilmiyorum, ama Atmel muhtemelen Microchip'in yaptığı gibi bir seçim rehberine sahip. Bu şirketlerin aklında tutması gereken çok fazla mikro var. Profesyonel olarak 15 yıldan fazla bir süredir 100'den fazla PIC projesi yaptım, ancak yine de yeni bir tane seçerken seçici kılavuzuna danışın.
Olin Lathrop

1
AVR'nin kullanım ve geliştirme araçlarını vb. Belirleyen talimatlar kolayca araştırılabilir. Bunlar PIC gibi iyi desteklenmektedir. Bu eğlenceli videoyu öneririm: youtube.com/watch?v=DBftApUQ8QI
Kaz

Electronics.stackexchange.com/a/66163/8627 adresine bakın ve Windows için Linux'u değiştirin. Takım zinciri büyük ölçüde aynıdır. Aynı değil, ancak Google ile ilgili şeylerle dolu.
jippie

@jippie güzel! Numunelerim geldiğinde yer

Yanıtlar:


8

uC yazılımı

PIC ve AVR komut setleri benzer, ancak montajda bir AVR programlamaya başlamam. Atmel Studio ile C program. Gcc'nin AVR sürümü ile birlikte gelir ve yazdığınız C satırını ve bunun altında ortaya çıkan montaj talimatlarını çok kullanışlı gösteren gerçekten iyi bir sökücüye sahiptir. WinAVR'ı da indirirdim .

PC yazılımı

Atmel Studio'yu kullanın . Eclipse, Programmer's Notepad veya insanların kullandığı diğer rastgele IDE'lerle uğraşmayın. Atmel Studio, Visual Studio'yu temel alır, Atmel'den her türlü eklentiye sahiptir ve yerleşik iyi bir simülatöre sahiptir.

Programlama donanımı

Bus Pirate gibi birçok ucuz AVR programcısı var, ancak Atmel ICSP edinin . Birden fazla AVR projesi yapmayı planlıyorsanız, tamamen ekstra harcamaya değer. USB kullanır ve Atmel Studio içinden kontrol edilebilir.

uC donanımı

Bir seçim aracı vardır , ancak genel olarak, alt uç AtMega tipik donanımı:

Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers

Daha yüksek performanslı yongalara gitmek size daha fazla zamanlayıcı ve PWM satın alacak. Ne kadar flash bellek ve SRAM'iniz bulunduğuna bağlı olarak özel çip bağlıdır. AtMega parça parçalarının çoğu PDIP'te mevcuttur ve gerçekten yüksek pim sayısı şeyler QFP'dir.

SPI ve I2C varyantları

AVR uC'leri olan MCP I2C (AVR için TWI) ve SPI cihazlarını kullanmak mümkündür. AVR veri sayfasının SPI ve TWI bölümlerini dikkatlice okumalısınız, bir satırı atlamayın. Her arabirim için veri sırası, saat polaritesi vb. İçin çoklu kontrol kayıtları vardır. Hepsi veri sayfalarında düzenlenmiştir ve çok okunabilir. Bir AVR ve PIC'yi bağlamak zor olmaz. İletişim kurulana kadar SPI veya TWI modlarıyla oynamanız yeterlidir.


3
ATtiny, ATmega'nın küçük erkek kardeşidir. Bunları programlamak konusunda çok benzerler. Makefile'deki parça türünü değiştirerek yazılımı mega'den küçüğe 'taşıdım'.
jippie

@CamilStaps jippie iyi bir noktaya değiniyor. Bunun PIC ile bir benzerlik olup olmadığını bilmiyorum, ancak çoğunlukla AVR işlemcileri kayıt adlarını ve bit siparişlerini paylaşıyor. Bazı istisnalar vardır, daha yetenekli bir işlemci kontrol kaydını iki parçaya bölebilir. Veri sayfalarının her birinde karşılaştırmayı kolaylaştıran bir kayıt açıklaması bölümü vardır.
Matt Young

PIC'ler de en azından bir ailede (PIC16, PIC18, ..) bunu yapar. Bahşiş için teşekkürler (@jippie)!

Bu harika bir açıklama. En sevdiğim AVR çipleri ATmega328p ve ATtiny24. Diğer yaygın çizgiler tinyx5 ve tiny2313'tür. Bunların hepsi DIP'de mevcuttur ve hepsi aynı SPI tabanlı programlama arayüzüne sahiptir: ISP. Ucuz ve hızlı bir başlangıç ​​için bu USB programlayıcıyı Sparkfun'dan deneyin: sparkfun.com/products/9825 Ayrıca Windows için WinAVR olarak bilinen popüler bir program paketidir: winavr.sourceforge.net Herhangi bir geliştirme gerekmez kart, sadece bir güç kaynağı, baypas kapakları ve belki bir kristal.
Kurt E. Clothier

12

PIC ve AVR (ve diğerleri) üzerinde eşit derecede iyi çalışıyorum.

AVR'leri büyük ölçüde AVR-libc yüzünden seviyorum . Açık kaynak ve gayet iyi belgelenmiş iyi gömülü kütüphanesi ( AKSİNE Microchip'in PLib ama PLib ben gerçekten takdir dolu kaynağı var). AVR'ler normal eski gcc ve gdb kullanır, bu da benim idiotik IDE'lerin yoluma girmediği anlamına gelir. Aynı araçlar Windows, OSX ve Linux'ta çalışır ve kaynak ağacımı kendi çöpleriyle kirletmek veya kirletmek için Java ve Netbeans veya Eclipse ile 600MB + IDE'ye ihtiyacım yok.

AVR'lerin programlanması genellikle ISS veya JTAG (bu konuda yeni bir soru vardı) ile yapılır ve bir programlama açısından, diğer mikrolardan çok farklı değildir.

Kişisel bir bakış açısıyla, Microchip'in veri sayfalarını ve parça numaralandırmasını çok sevmedim. Dişlerimi Microchip ile gömülü tasarıma kestim ve onları uzun, uzun bir süre sevdim, ama bu günlerde bir mikro ararken, kusurları olmasa da Atmel ile başlamaya eğilimliyim. (SAM-BA, SAM parçaları için çöptür ve fabrika desteklerinde de sorun yaşadım.)

Hangisini kullanacağım ... ikisini de deneyin, Kok ve Pepsi arasındaki fark gibi. Çok, çok benzerler ve seçim genellikle fiyata ve kullanmayı tercih ettiğiniz araçlara düşer.


11
  • C, bazı küçük derleyici farkları ile aynı olacaktır. Farklı bir mimari olduğu için montaj oldukça farklı olacak. C ile gitmenizi tavsiye ederim ve belki de bazı önemli rutinleri sıralamak için yeterli montajı alın.

  • IDE ve programcı için Atmel, Microchip'e benzer tekliflere sahip, sadece web sitelerine bir göz atın, ücretsiz IDE'yi indirin ve bir programcı seçin.

  • 18F'ye benzer bir çip ATMega328 (Arduinos'ta kullanılan) gibi bir şey olabilir. DIP paket sürümlerine sahip olduklarına inanıyorum.

  • Evet, I2C ve SPI aynı şekilde çalışmalıdır. Bir AVR ve PIC'yi bağlamak sorun olmamalı.

Feragatname - Uzun süredir AVR kullanmadım. Bugünlerde çoğunlukla PIC'leri ve ARM'leri kullanıyorum, ancak geçmişte SPI / I2C ile herhangi bir şey bağlamakta hiç sorun yaşamadım, örneğin PIC / Atmel EEPROM / Cortex-M3 / FPGA arasında bağlanmak için sık sık SPI kullandım. SPI, neredeyse tüm modern mikroların donanımda yapabilmesi gereken çok temel bir protokoldür.
I2C biraz daha karmaşıktır. Lisanslama / adlandırma hikayesini (örneğin 2 telli, I2C, SMBus) kafamın üstünden hatırlayamıyorum, ancak çoğu çevre birimi farkında olduğum kadarıyla temel düzeyde uyumlu. Daha fazla ayrıntı için Wiki sayfalarını okuyun .


Atmel'in TWI (İki Telli Arabirim) I2C ile uyumludur. I2C, NXP'den (eski Philips teknolojisi) lisanslanabilir, ancak Atmel lisans ücretini çözmeyi başardı.
jippie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.