Bir ARM Cortex M3 mikroişlemcisi nasıl seçilir?


26

36 ila 72 MHz aralığında, 16kb + SRAM, 128kb + flaş, C de programlanabilir olma zorlu gereksinimlerime dayanarak, başvurum için bir ARM Cortex M3 MCU kullanmak istediğime karar verdim.

Sorun şu ki, insanlar hangi M3 versiyonunu kullanacaklarını belirlemek için hangi kriterleri kullanıyorlar? TI, ST, NXP, Freescale, vb. Gibi birçok olası satıcı vardır.

Benim bakış açımdan temel bir farklılaştırıcı, programlama kolaylığı olacaktır. İdeal olarak, bir koparma / geliştirme kartı üzerinde test ettim ve ardından kendi PCB'mde uygulama yapıldı.


11
Bu yararlı bir soru, kimse, lütfen öncelikle bu görüşü temel alan olarak kapatmayın .
Dzarda

2
Çip satıcısını seçmek sorunun yalnızca bir kısmı. Hangi geliştirme aracı zincirini kullanacağınızı düşündünüz mü?
kkrambo

5
Bu gibi bir durumda uç yongayı seçmenin öneminin çok abartıldığını söyleyebilirim. Temel gereklilikleri yerine getiren tüm cipsler yapacaktır. C veya C ++ 'a sadık kalıyorsunuz ve daha sonra çok az çabayla açabileceğiniz şık çevre birimlerine ihtiyacınız yok. Seçimimi, kolayca erişebileceğiniz www, satıcı, (kullanıcı) grupları, listeler, forumlar vb. Üzerinden alabileceğiniz destek miktarına dayandırırdım.
Wouter van Ooijen

5
“Aynı çekirdeğin bir düzine üreticisi var. İnsanlar birisini seçmelerine yardımcı olmak için ne gibi şeylere bakıyorlar?” bana iyi bir soru gibi geliyor.
Scott Seidman

5
Üç favori etiketiyle en yeni 250 listemizdeki en yüksek puanlama sorusu. Bu istatistiklerle, eğer bu OT ise, nedenini sormayı düşünebiliriz. Posterin şu anda kullanmakta olduğu kriterlerden BİRİN olduğu için "programlama kolaylığı" olarak gördüğü ve daha fazlasını istediği açık. Dört cevaptan sadece bir tanesi denetleyici için net bir öneride bulunur ve diğerleri seçim yapmak için hangi kriterleri kullandıklarını tartışır. Soruyu konuyla ilgili daha fazla yapması gereken küçük bir düzenleme yaptım, ancak düzenlemeden önce bana oldukça açık görünüyordu.
Scott Seidman

Yanıtlar:


19

@Markt'ın kesinlikle doğru yerde olduğunu düşünüyorum: Alet zinciri, çevre birimleri, paketler, aygıtlar.

Birkaç tane ekleyeceğim ve belki birkaç tane çıkaracağım. Alet zinciri kesinlikle önemlidir, ancak ÜCRETSİZ olabilir veya olmayabilir. Bazen, gerçek bir destek olmadan çalışmak, sandığınızdan daha pahalı olabilir ve makul bir ticari paket kullanmak, belirli bir durum için buna değer olabilir. Bazen kapsamlı bir lisans denetimini geçebilmek de önemlidir ve kısıtlayıcı bir lisansla ücretsiz bir araç kullanmak sizi daha sonra ısırır.

Mikrodenetleyiciyi desteklemek için iyi bir CMSIS kütüphanesi benim için bir zorunluluktur. CMSIS - Cortex Mikrodenetleyici Yazılım Arabirimi Standardı - arm.com/products/processors/cortex-m/… - Cortex-M serisi mikrodenetleyiciler için bir donanım soyutlama katmanıdır. Teoride, eğer bir kütüphane CMSIS uyumlu ise, satıcıdan bağımsızdır ve farklı aileleri değiştirmek kolaydır ve kütüphaneyi kullanabilmek için sıfırdan bir ortam öğrenmenize gerek yoktur. ARM Cortex ortamının çekici yönlerinden biri, bir sürü ter olmadan platformları değiştirebilme yeteneğidir. CMSIS yapısına girmeyen bir platform seçerseniz, rahatça hareket edemeyebilirsiniz.

Benim için ucuz ve kullanışlı geliştirme tahtaları bir zorunluluktur, ancak bu diğer şeyler kadar önemli olabilir veya olmayabilir (sanırım STM32 serisinin harika bağlantı noktaları var). Ailenin çok kullanışlı ve ucuz geliştirme panoları varsa, ihtiyacınız olursa daha büyük bir kullanıcı tabanından yardım bulma olasılığınız daha yüksektir. Ayrıca, bu çipler SMT paketlerinde olma eğilimindedir. Kaçınılmaz olarak bir yongayı veya bir yonga üzerindeki bir portu veya bir yonga üzerindeki bir portu biraz patlattığınızda, yonganın değiştirilmesi SMD'nin yeniden çalışmasını içeren bir PITA'dır. Her biri 10-15 dolar olan iki veya üç tahtayı satın alabilir ve onları yerleştikçe yenisiyle değiştirirseniz, bu SMD işini yapmayı bile düşünmeyeceksiniz!

"Ekstralar" düşünün. “Çevresel” olarak kabul edilen şeyin üstünde ve ötesinde bir şeye ihtiyacınız olabilir. Örneğin, belki de ağır bluetooth gereksinimleriniz vardır ve bu tür bir destek için Nordic Semiconductor ile gitmeyi seçebilirsiniz. Önyüklemenin ne kadar kolay olduğu gibi başka şeyler de düşünebilirsiniz.

Belgeleri düşünün. Bazı STM belgelerini gözden geçirmenin ne kadar zor olacağından biraz daha az etkilendim.


+1 Tamamen katılıyorum. Geçen yıl STM32 kullanarak ARM Cortex-M3 / M4 ile başladım. STM32F407'ye geçiş yaparken fiyat / müsaitlik durumuna göre neredeyse bir STM32F207 tasarımını tamamlamıştım. Donanım için bir düşüş oldu ve yazılım değişiklikleri önemsizdi. Belgelendirme ve karmaşıklık öğrenmeyi biraz zorlaştırdı, ancak tasarım sağlam ve iyi bir soruna değer. Test kodu yazmak için GCC derleyicisini (ücretsiz) ve örnek sürücüleri yazmak / test etmek için Keil'in kod boyutu sınırlı ücretsiz eval versiyonunu kullanıyorum. Programcımızın Keil derleyicisinin tamamı için lisansı vardır. Her ikisi de sağlam görünüyor.
Tut

1
@NickHalden, "ARM", ARM çekirdeğini, bunları paketleyen ve çevre birimlerini ekleyen yonga üreticilerine lisans veriyor. CMSIS - Cortex Mikrodenetleyici Yazılım Arabirimi Standardı - arm.com/products/processors/cortex-m/… - Cortex-M serisi mikrodenetleyiciler için bir donanım soyutlama katmanıdır. Teoride, eğer bir kütüphane CMSIS uyumlu ise, satıcıdan bağımsızdır ve farklı aileleri değiştirmek kolaydır ve kütüphaneyi kullanabilmek için sıfırdan bir ortam öğrenmenize gerek yoktur.
Scott Seidman

1
@YoungMoney Size ihtiyacınız olacağını düşündüğünüz kaynakların en az iki katı verecek en ucuza gidin.
markt

1
İşleri sıkışmamak için büyük geliştirin. İhtiyacınız olan kaynakları iyi kavradıktan sonra, geri çekilin.
Scott Seidman

1
Ücretsiz araç zincirleri, profesyonel bir bağlamda, maliyet nedeniyle değil , erişim güvenliği nedeniyle önemlidir - kilitli bir araç zinciri ile gidin ve projeyi sürdürme yeteneğinizin kullanım süresi dolan ya da kullanamayacağınız lisanslar tarafından engellenmesi veya iş arkadaşı, kaybolabilecek dongle'lar, birkaç yıl sonra çıkarılabilecek lisans sunucuları vb. Gömülü tasarımların çoğu, bunları geliştirmek için kullanılan masaüstü donanım ve işletim sistemi sürümlerinin çok ötesinde ve orijinali yeniden yönlendirebilir. Gelecekteki araçlar önemlidir!
Chris Stratton,

14
  1. Ücretsiz takım zinciri, RTOS ve düşük maliyetli JTAG / SWD desteği arayın .
  2. Hangi paketlerle çalışabileceğinizi / istediğinizi düşünün - DIP bir zorunluluktursa, DIP paketleri sunmayan silikon satıcılarını dışlayın.
  3. Hangi çevre birimlerinin teklif edildiğine ve ne isteyip istemediğinize bakın.
  4. Şaşırdamak için bak - elmaları elmalarla karşılaştırmak için bir veya daha fazla büyük elektronik satıcısının web sitesini kullanın.

Dev kurullarına duyduğun istek göz önüne alındığında, orada uygun olanı düşün.

Başka bir platformdan (PIC, Atmel, vb.) Geliyorsanız, ARM'e geçişte birçok alanda adil bir öğrenme eğrisi olacağını kabul ediyorum , ama buna değer ve gerçekten buna değer.


Evet - ücretsiz alet takımları, alet zincirine gelecekteki / alternatif bilgisayar / alternatif mühendis erişiminin güvenliği için maliyetten daha önemlidir. Cortex parçaları için, araç zincirleri oldukça evrenseldir, bu yüzden onları kullanması kolay veya yeniden yaratılabilir ve şu anki (ve gelecekteki) işletim sisteminizden yönlendirilebilecek, kullanımı kolay bir SWD arabirim aygıtıyla programlayabileceğiniz daha çok şey bilmektedir. tercih.
Chris Stratton,

5

Güçlü bir tercihiniz yoksa (örneğin, fiyat, boyut, güç, artı diğerlerinin listelenmesi gibi), sizi kimin desteklediğini düşünürdüm. Üretici sorularınızı yanıtlamazsa, bu bir sorun olabilir. Yoksa, kendilerine sorabilirsiniz bir FAE (Saha Uygulama Mühendisi) ile yerel bir distribütörü var mı? Bu özellikle küçük şirketler ve hobistler için önemlidir.

Bazı parçalar küçük miktarlarda bulunmayabilir. Örneğin, aynı pakette DRAM olan kişiler büyük alıcılara yöneliktir (> 10 k birim).


2

Muhtemelen STM32L151VBT6 ihtiyaçlarınızı karşılar. Şirketimizde bile kullandık, ılımlı maliyete sahip ve güç tüketimi açısından iyi. Ayrıca, tasarım kaynaklarının çoğunu http://www.st.com adresinde bulabilirsiniz .

STM32L151VB MCU’nun Temel Özellikleri:

Ultra düşük güçlü platform 1,65 V - 3,6 V güç kaynağı

-40 ° C ila 85 ° C / 105 ° C sıcaklık aralığı

0.3 μA Bekleme modu (3 uyandırma pini)

0.9 μA Bekleme modu + RTC

0.57 μA Durdurma modu (16 uyandırma satırı)

1.2 μA Durdurma modu + RTC

9 μA Düşük Güçlü Çalışma modu

214 μA / MHz Çalışma modu

10 nA ultra düşük I / O sızıntısı

<8 w uyanma süresi

Çekirdek: ARM®Cortex ™ -M3 32-bit CPU

32 kHz'den 32 MHz'e kadar

33,3 DMIPS tepe noktası (Dhrystone 2.1)

Hafıza koruma ünitesi

Sıfırlama ve tedarik yönetimi

5 seçilebilir eşik ile ultra güvenli, düşük güçlü BOR (kararma sıfırlama)

Ultra düşük güçlü POR / PDR

Programlanabilir voltaj dedektörü (PVD)

Saat kaynakları

1 ila 24 MHz kristal osilatör

RTC için 32 kHz osilatör, kalibrasyonlu

Yüksek Hızlı Dahili 16 MHz fabrika ayarlı RC (+/- 1%)

Dahili Düşük Güç 37 kHz RC

Dahili çok hızlı düşük güç 65 kHz - 4.2 MHz

CPU saati ve USB için PLL (48 MHz)

Önceden programlanmış önyükleyici

USART desteklenir

Geliştirme desteği

Seri kablo hata ayıklaması desteklenir

JTAG ve izleme desteklenir

Tümü 16 harici kesme vektöründe eşlenebilir, 83 hızlı I / O'ya (73 I / Os 5V toleranslı) kadar

Anılar:

ECC ile 128 KB'a kadar Flash

16 KB'a kadar RAM

ECC ile 4 KB'a kadar gerçek EEPROM

80 Byte Yedekleme Kaydı

8x40 segmente kadar LCD Sürücü

Kontrast ayarını destekler

Yanıp sönen modu destekleyin

Gemide yükseltici dönüştürücü

Zengin analog çevre birimleri (1.8 V'a kadar)

12-bit ADC 1 24 kanala kadar msps

Çıkış tamponlu 12 bit DAC 2 kanal

2x Ultra düşük güçlü karşılaştırıcılar (pencere modu ve uyanma yeteneği)

DMA denetleyicisi 7x kanal

8x çevre birimleri iletişim arayüzü

1x USB 2.0 (dahili 48 MHz PLL)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mbits / s

2x I2C (SMBus / PMBus)

10x zamanlayıcı: 4 adete kadar IC / OC / PWM kanallı 6x 16-bit, 2x 16-bit temel zamanlayıcı, 2x bekçi zamanlayıcı (bağımsız ve pencere)

Dokunmatik anahtarı, doğrusal ve döner dokunmatik sensörleri destekleyen 20 adede kadar kapasitif algılama kanalı CRC hesaplama ünitesi, 96 bit benzersiz kimlik

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.