Programlama mikrodenetleyicileri: JTAG, SPI, USB oh my !?


52

Mikrodenetleyicilerle ilgili olarak, onları programlamanın birkaç yolu olduğunu fark ettim. Arduino'm USB üzerinden programlanabildiği için USB konusunda bilgim var.

JTAG veya SPI arayüzü nedir?

Nihayetinde bu arayüzlerin yongayı yeni talimatlarla parlatmak için bir araç sağladığını biliyorum, ama ne kadar farklılar? Birinin diğerine üstünlüğü var mı?

Yanıtlar:


39

Doğrudan fabrikadan gelen arduinodaki gibi ATMEGA mikrodenetleyicileri yalnızca SPI veya JTAG arabirimi kullanılarak programlanabilir.

SPI , Seri Çevre Birim Arayüzü anlamına gelir ve mikrodenetleyicilerin birbirleriyle veya dış dünyayla iletişim kurmasının bir yoludur. Aynı zamanda bazen 3 telli olarak da adlandırılır, çünkü iletişim kurmak için üç tel kullanır. Bir yongayı programlamak için, SPI hatlarını yonga programlamak için USB'den komutları okuyan özel bir programlayıcıya ihtiyacınız olacaktır. Popüler bir adafruit gelen USBTinyISP gibi görünüyor . SPI programlamaya çok iyi bir giriş SparkFun'da. Programlama için en popüler uygulamalar Atmel AVR yongaları avrdude (cmd line), ponyprog (daha yeni programlayıcılarla çalışmaz) ve bazı durumlarda AVR Studio'dur (programcınız destekliyorsa). SPI programlamanın avantajı, herhangi bir Atmel yongasını doğrudan fabrikadan programlayabilmenizdir, böylece projelerinizde her zaman bir Arduino'ya ihtiyaç duymazsınız.

SPI "başka bir" seri protokol olduğunda, JTAG özellikle mikrodenetleyicileri programlamak ve hata ayıklamak için tasarlanmış bir protokoldür. Tüm Atmel Micro'lar JTAG'ı desteklemiyor, Arduino'da kullanılanları destekliyor. JTAG protokolü, "devre emülasyonunda" ve hata ayıklama gibi harika şeyler için kullanılabilir; bu, program çalışırken mikrodenetleyicinizdeki durumunu görmenizi sağlar. Bunu yapmak için özel bir programlayıcıya ihtiyacınız olacak. Başka bir soru için cevabımı gördüm .

USB kullanarak bir çip programlamak için önce SPI veya JTAG kullanarak bir "önyükleyici" ile programlamanız gerekir. Bootloader'a yüklendikten sonra, sistem USB Seri dönüştürücü kullanan herhangi bir PC'den programlanabilir. Dezavantajı, bootloader'ın biraz hafıza alanı kaplaması ve bu yöntem çalışırken çipin durumunu görmenize izin vermemesi.


10
Seri bir önyükleyicinin yeni bir ATMEGA'da bulunmadığı fikrinde doğru olmasına rağmen (birçok diğer mikro denetleyicide olmasına rağmen), SPI veya JTAG'ın kullanılması gerektiği iddiası yanlıştır. ATMEGA'lar ayrıca, daha popüler devre içi programlama yöntemlerini çalıştırılamaz hale getirecek bazı sigorta ayarlarını aşma kabiliyetine sahip olan yüksek voltajlı paralel programlama modunu da destekler. JTAG, mikro programlama için değil, PC kartlarını IO pin yazmaçlarına giriş ve çıkış değerleri kullanarak test etmek için tasarlandı. Programlama veya hata ayıklama için çekirdek işlevleri genişletmek daha sonra kesmek oldu.
Chris Stratton,

SPI ve Sistem İçi Programlama / Seri programlama farklıdır. Ben de daha küçük Atmega MCU'ların çoğunun SPI arabiriminde seri programlama pinlerine sahip olduğu gerçeğine alıştım, ancak bazı daha büyük Atmega MCU'larında seri programlama pinlerinin SPI arabiriminde olmadığı gerçeği ile ısırıldım.
fest

30

Mevcut çeşitli programlama yöntemlerine dalmayı çok isterdim, ama zaten bir başkası var. İşte Dean Kamera AVRFreaks, üzerinde 'ın öğretici AVR Programlama Yöntemleri :

AVR mikroişlemcilerini programlamanın birçok yolu vardır. Birçok insan bir defada bir başkası hakkında sorular sorduğundan, sorularını hızlı ve verimli bir şekilde cevaplandırmak için onları burada özetleyeceğimi düşündüm. Bir yöntemi kaçırırsam veya hata yaparsam lütfen beni affet.

YÖNTEM 1: Sistem Programlamada (ISS)

Destekleyen: AVR'lerin büyük çoğunluğu (aşağıdaki yazılara bakın)
Desteklenen Programcılar: AVRISP MKI / II, JTAG MKII, STK500, STK600, Ejderha, AVRISP klonları, AVR910 Programcıları, AVRONE

Sistem Programlamada belki de tüm AVR hattının flaş, EEPROM, sigorta ve lockbyte'lerini programlamanın en yaygın yöntemidir. ISS, AVR'leri son derece yüksek saat hızlarında programlayabilir (hedef AVR'nin yüksek bir frekansta çalıştığını ve programcının desteklediğini varsayar) ve hemen hemen tüm AVR hobileri için tercih edilen bir yöntemdir. Bilgisayarınızın paralel bağlantı noktasına bağlanan basit kendin-yap kiliselerine ek olarak piyasada birçok, birçok AVRISP klonu ve AVR910 programcısı vardır.

Son zamanlarda ortaya çıkan yeni dongle tasarımları bilgisayarın seri portunu kullanabilir, ancak fıkra delilleri bu yöntemin teknik kısıtlamalar nedeniyle çok yavaş olduğunu belirtti .

ISS, hedef AVR'nin, ISS saatinin en az dört katı bir saat hızında çalışmasını gerektirir. Bu, AVR’ler için pek çok yeninin ortak bir tuzağı ve bir karışıklık kaynağıdır.

YÖNTEM 2: JTAG

Destekleyen: MKI ve MKII cihaz desteği için AVRStudio Tools yardımına bakın
Desteklenen Programcılar: JTAG-ICE, JTAG-ICE MKII, Ejderha, JTAG-ICE klonları, AVRONE, STK600 (yalnızca programlama)

Teknik olarak JTAG bir programlama yöntemi değil, hata ayıklama sistemidir. Yine de, JTAG arayüzü onu destekleyen bir AVR'nin programlanmasına izin verir.

JTAG, bir devrede çalışırken desteklenen bir AVR'nin durumunu yönetmenize ve incelemenize olanak sağlayan bir sistem içi hata ayıklama aracıdır. JTAG, kullanıcının herhangi bir zamanda yürütmeyi durdurmasına, AVR'nin dahili kayıtlarının manipülasyonuna ve daha fazlasına izin verir.

ATMEL'in resmi JTAG-ICE birimleri, AVR serisi DebugWire hata ayıklama protokolünün yanı sıra ISP yöntemi ile programlamada daha yeni ve daha yaygın olarak desteklenen JTAG-ICE MKII tarafından değiştirildi (yukarıya bakın).

JTAG-ICE klonları düşük fiyatlar için mevcuttur, ancak yalnızca bir avuç AVR ile sınırlı uyumlulukları kullanışlılıklarını sınırlar. Bundan bağımsız olarak, AVR'niz JTAG arayüzünü destekliyorsa, JTAG-ICE çok güzel ve etkili bir hata ayıklama yöntemi ve programcısı olarak kalır.

YÖNTEM 3: DebugWire

Destekleyen: Birçok küçük AVR
Desteklenen Programcı: JTAG-ICE MKII, Dragon, AVRONE

Yine DebugWire, bir programlama arayüzü yerine bir hata ayıklamadır, ancak programları desteklenen AVR'lere yüklemek için kullanılabilir. DW arayüzü, tüm iletişimler için tek bir AVR pinini (/ / RESET hattı) kullanır ve düşük pin sayımlı AVR cihazları için idealdir.

YÖNTEM 4: Bootloader

Destekleyen: En yeni AVR'ler
Desteklenen Programcılar: Yok

Yine teknik olarak bir programlama yöntemi değil. Bir önyükleyici, normal flaşın kullanıcı tarafından ayarlanabilen bir ayrılmış bölümüne oturan küçük bir AVR programıdır. Bootloader'lar, AVR'nin harici bir kaynaktan yüklenen program verileri üzerinden programlamasına izin vermek için yeni AVR'lerde bulunan flaş kendi kendini değiştirme özelliklerini kullanır. Bootloader'lar verilerini herhangi bir konumdan (örneğin harici dataflash veya SD kart) alabilir, ancak bugüne kadar en yaygın Bootloader türü AVR'nin RS-232 (seri) portu üzerinden bir PC ile iletişim kurar.

Önyükleyiciler flaş alanı tüketmeleri (AVR'nin uygulamasında mevcut olan flaşın boyutunu sınırlandırması) ve AVR'lerin fusebitlerini değiştirememeleri ile sınırlıdır.

Önyükleyiciler internette indirilmek üzere yaygın olarak bulunur, ancak bir "tavuk ve yumurta" sorunu yaşarlar; Bootloader'da programlamak için burada listelenen başka bir programlayıcı türüne ihtiyacınız var. Bu genellikle basit bir paralel port dongle yapımı (ISP bölümüne bakınız) veya zaten bir bootloader (önceden AVRButterfly kartı) ile önceden yüklenmiş bir AVR satın alınmasıyla çözülür.

YÖNTEM 5: Yüksek Gerilim Paralel Programlama (HVPP)

Destekleyen: Çoğu TINY olmayan AVR (istisna hariç)
Desteklenen Programcılar: STK500, STK600, Dragon, Homebrew Dongles, AVRONE

Yüksek Gerilim Paralel Programlama, kurulması gereken güçlük nedeniyle nadiren kullanılan bir programlama yöntemidir. Buna rağmen, HVPP programlaması, sigortaları yanlış yapılandırılmış AVR'leri başka bir programlama yöntemi ile "yeniden diriltmek" için kullanılır.

Hem STK500 hem de Dragon, HVPP'yi destekliyor. HVPP sırasında, hedefin / RESET pimi, dahili paralel programlama devresine giren alışılmadık derecede yüksek 12V değerine yükseltilir. / RESET pimi, AVR'nin (HVPP destekli AVR'lerde) bu seviyeye güvenle yükseltilebilen tek pimidir.

Bunun gibi çevrimiçi planları kullanarak kendi HVPP dongle'ınızı yapabilirsiniz.

YÖNTEM 6: Yüksek Gerilim Seri Programlama (HVSP)

Destekleyen: Birçok TINY AVR (istisna hariç)
Desteklenen Programcılar: STK500, STK600, Dragon, Homebrew Dongles, AVRONE

HVSP, HVPP'ye benzer, ancak veri aktarımı paralel değil seri olarak gerçekleştirilir. Bu, HVPP için yeterli pin bulunmayan birçok TINY serisi AVR'de kullanılan alternatif programlama yöntemidir.

YÖNTEM 7: PDI

Destekleyen: XMEGA AVR'ler
Desteklenen Programcılar: STK600, AVRONE, JTAG MKII, Dragon, AVRISP MKII

PDI, AVR'lerin XMEGA hattı için debugWire protokolünü temel alan yeni programlama arayüzüdür. Şu anda diğer 8 bit AVR mikroişlemcilerinde kullanılmamaktadır.

YÖNTEM 8: TPE

Destekleyen: 6 Pimli TINY AVR'ler (ATTINY10, vb.)
Desteklenen Programcılar: STK600, Dragon, AVRISP MKII

TPI, 6 pinli ATTINY10 gibi sınırlı pinli AVR'lerin yeni TINY serisi için çok küçük bir programlama arayüzüdür. DW gibi, TPI da cihazın / RESET hattını iletişim arayüzünün bir parçası olarak kullanır, ancak orada benzerlik biter. Pint boyutunda TINY AVR'ler çip üzerinde hata ayıklama devresi içermediğinden, TPI protokolü, yarım çift yönlü protokolde üç pinli yeni bir programlama arabirimi kullanır. Cihazın RSTDSB pimi ayarlandığında programlama için / RESET hattının + 12V'a yükseltilmesi gerektiğinden, şu anda yalnızca yeni STK600 programlama kartı tarafından desteklenmektedir.

Bonus SSS Bölümü!

  1. En iyi yöntem hangisi?
    Evrensel "en iyi" yöntem yoktur. ISS programlaması basit ve son derece popülerdir, ancak yukarıdaki tüm yöntemler işe yarayacaktır. İki yüksek gerilim programlama modu (hangisi cihazınıza uygulanabilirse), sigortaları yanlış yapılandırılmış bir AVR'nin onarımına izin verdiği için en zengin özelliklere sahiptir. Ancak, bu yöntemler kurmak için bir acı, bu nedenle çoğu kullanıcının ISS ile birlikte gitme nedeni.

  2. Paralel bir bağlantı noktası dongle yaptım. AVRStudio ile kullanabilir miyim?
    Korkarım ki hayır. AVRStudio, gönderdiği iletişim protokolünü deşifre etmek için herhangi bir "aptal" dongle ile arayüzleyemez - bir mikrodenetleyicinin kendisini içeren - akıllı bir programlama cihazı gerektirir. Mikrodenetleyicisiz basit dongle'lar "bit çarpması" (yani, dongle aracılığıyla bilgisayar aracılığıyla simüle edilen uygun sinyaller) kendisi olmalıdır.

  3. Yani dongle o zaman işe yaramaz mı?
    Hayır. Hala bir üçüncü parti programlama yazılımı aracıyla ev yapımı bir dongle üzerinden programlayabilirsiniz. AVRDude iyi, bilinen, ücretsiz bir komut satırı yardımcı programıdır - ve WinAVR paketi ile birlikte gelir.

  4. Programcımın AVRStudio ile çalışmasını istersem seçeneklerim nelerdir?
    AVRStudio destekli bir protokol kullanan bir programlayıcı seçin. Bu, basit "AVR910" protokolü (kullanımdan kaldırılmış) veya STK500 / AVRISP tarafından kullanılan protokolün özel bir uygulaması olabilir. Bu programcıların içlerinde mikro kontrolör gerektirdiğini ve bu durumun dikkat çekici bir duruma neden olduğunu unutmayın. Bu, programlayicinin AVR'sini satin alindiginda uygun cihaz yazilimi ile programlanmis olarak veya AVR'yi bir önyükleyici ile önceden programlanmis olarak çözerek çözülebilir.

  5. Tamam, bir bootloader kullanmak istiyorum. İlk başta oraya nasıl girerim ?!
    Bir AVR'de bir bootloader kullanmak için, önce bootloader'ın programlanmış olması gerekir. Mevcut bir programcınız yoksa (ilk programlama için basit bir aptal donanım kilidi bile yeterli olacaktır), alternatif olarak önceden programlanmış AVR'leri satın alabilirsiniz. birçok tedarikçiden bootloader.
    Atmel ayrıca MEGA169 AVR'sine AVR-Studio uyumlu bir bootloader ile önceden yüklenmiş olarak gelen Butterfly demo kartını da üretiyor.

  6. Yardım! Sigortaları karıştırdım ve ISS kullanırken AVR'mi kullandım! En yaygın hata, saat seçimi sigortalarını geçersiz bir ayara getirmektir. AVR'nin XTAL1 pimine harici bir saat koymayı deneyin ve bunun yardımcı olup olmadığına bakın.
    Bunun mümkün olmadığı durumlarda yüksek voltaj yöntemlerinden birini kullanın. Bunlar, yüksek voltaj yöntemleri programlama için AVR'ye kendi saatini sağladığından, saat kaynağını içerenler de dahil olmak üzere yanlış yapılandırmaları düzeltir.

  7. Programcımla nasıl arayüz kurabilirim?
    Programlayıcınızla arabirim oluşturmak için hangi yazılımı kullandığınız programcının türüne bağlıdır.
    Basit "aptal" dongles, PonyProg veya AVRDude gibi üçüncü taraf yazılımları gerektirir. Bunlar komut satırı veya GUI araçları olabilir - web’de etrafa bakın, gereksinimlerinize uyacak şekilde para cezası verin.
    AVR910 protokolünü temel alan programlayıcılar ve önyükleyiciler AVRStudio içinde kullanılabilir. Araçlar menüsünden, programlayıcınızla arabirim oluşturmak üzere bir GUI ekranı açmak için "AVRProg" seçeneğini seçin. Alternatif olarak, AVRDude gibi üçüncü parti araçlar da AVR910 ile uyumludur.
    Resmi araçlar, özellikle hata ayıklama varyantları durumunda (JTAG / Dragon / etc), AVRStudio'ya sıkıca entegre edilmiştir. AVRStudio Tools menüsünden "Program AVR ..." alt menüsünü seçin ve "Bağlan" öğesini tıklayın. Yeni pencereden aracınızı ve bağlantı arayüzünü seçin ve Tamam'a tıklayın.
    Aptal dongle ve AVR910 programcılarında olduğu gibi, resmi araçlar üçüncü parti programlama yazılımıyla da kullanılabilir.

(C) Dean Camera, 2009. Tüm hakları saklıdır. Önceden açıkça izin alınmadan AVRFreaks.net'ten başka hiçbir web sitesinde çoğaltılması için uygun değildir.

Çoğaltılan ile tabii ki, önce açık iznine!


5

Tartışmaya bir şey daha eklemek istiyorum.

SPI, yongalar için çok yaygın bir arayüzdür. 3 telli yayılma, çipin seçim pimini kullanmadığınız SPI modudur.

I2C, yonga sayısından bağımsız olarak sadece 2 kablo kullandığından arayüz için ana yarışmadır, SPI ise arayüz başına başka bir kablo gerektirir, ancak daha yavaştır.

Öğretirken arayüzler hakkında öğretmeyi düşünüyorum en önemli görevlerden biri.

Bilgilerimi genişletmek isteyenler için mevcut topluluk wiki'si.


2
I2C'nin bir mikrodenetleyicide yerel bir flaş programlama arabirimi olarak kullanıldığını hiç duymadım, sanırım bir önyükleyiciye giriş noktası olmamasının bir nedeni yoktu ...
vicatcu

@ vicatcu, sadece çok yaygın bir arayüz olarak ekliyordum.
Kortuk

3

Genel bakış açısından bu arayüzler sadece hangi programlayıcıların ve hangi mikro kontrolörlerin onları desteklediği konusunda farklılık gösterir. Programlayıcı ve mikro denetleyici arasında bir eşleşme olduğu sürece endişelenmem.

Daha fazla girdiğinizde, arayüzün mikro denetleyicide daha önemli olan pinleri olduğunu göreceksiniz - bu pinleri sensörler için kullanıyorsanız, cihazı programlarken sinyaller karışabilir. En basit çözüm, bunun bir problem olması halinde programlama sırasında sensörlerin bağlantısını kesmektir.

Bazı arayüzler (JTAG dahil) cihazın hata ayıklamasını sağlar - ancak daha sonra bunu destekleyen bir programlayıcıya (ve onu sürecek yazılımlara) ihtiyacınız vardır. Daha önceki bir soruda , AVR cihazlarının hatalarını ayıklamak için Dragon'a yönlendirildim - şu anki projelerim tamamlanmaya başladığında bir tane almak ve oynamak niyetindeyim.


2

Seriden bahsettiğiniz gibi spi (2 tel, 3 tel?), Usb, jtag, swd vb.

Evet artıları ve eksileri var. Örneğin Jtag, donanımda yerleşik olarak tanıdığım, aslında ve öncelikle işlemci hata ayıklaması dışındaki bir şey için kullanılan tüm durumlar için, ancak bunun için de kullanılıyor. Eğer jtag mevcutsa, genellikle bu sebeple en iyi arayüzdür, ancak istisnalar da vardır. Örneğin, pinler jtag'a adanmamışsa, kodda bir hata olabilir ve / veya kasetli olarak bu pinlerden birini kullanarak, jtag kullanarak yongaya erişmeyi mümkün kılmayan başka bir şey için kullanabilirsiniz (yazılımı flaşla önlüyorsa, bu pinleri yeniden konumlandırır). Başka bir istisna, işlemci çekirdeğinin, flaştaki yazılımdaki bir hatayla asılabilmesi ve asılı çekirdeğin jtag aracılığıyla hata ayıklanmamasıdır. Ben buna donanım tasarımında bir hata diyecektim, fakat son zamanlarda ticari olarak bununla ilgilendi.

Örneğin AVR'de, sanırım PDI, millet burada spi çağırıyor olabilir, belki de değil. En azından xmega'da, pdi ve harici jtag'ın dahili olarak ortak bir pdi arayüzüne beslendiği görülmektedir. Böylece pdi pimleri, jtag ek yükü yerine buna doğrudan erişim sağlar. Bu arayüz flaşlı yazılım çekirdeği kapattığında çalıştığı sürece, bu aile için ideal bir arayüz olacaktır. Protokol yayınlandı ve nispeten basit ve donanım içine yerleştirildi. i2c gibi bir çift yönlü veri yolunun dezavantajına sahiptir.

Kol, mutlaka açık bir şekilde yayınlanmasını istemedikleri, swd adı verilen daha az kablo içeren bir jtag'a sahiptir. açık kaynak araçları olsa uyguluyor. bu teoride bir seri jtag'dir, farklı jtag sinyalleri birçok telde paralel olarak bir şekilde sırayla bir telde gönderilir. Parçanın içinde, tekrar paralelleştirildiğini ve normal jtag mantığını beslediğini varsayıyorum. Bu, ARM'in yarı sır olarak kalmasını isteme dezavantajına sahiptir ve ARM'lerin hata ayıklayıcılarını yine de kullanmak için kraliyet acısı olarak etiketler. Yani bu çok iş. Eğer / openocd çalışmaya başladığında farklı bir hikaye olabilir. Ayrıca, yeniden yapılandırılmış pimler ve asılı bir çekirdekte ne olduğu konusunda hala endişelenmeniz gerekir.

Bir satıcı, bir veya iki veya üçün hangi yöne çekildiğine bağlı olarak hangi flaştan başlattığınıza bağlı olarak, bir veya daha fazla önyükleme flaş alanı bulunan bir çözüm kullanır. Böylece kullanıcı flaşından önyükleme yapabilir ya da en azından fabrikadan seri port tabanlı bir önyükleyici ya da usb tabanlı önyükleyici olan bir önyükleme yapabilirsiniz. Her satıcı için, bu yazılım çözümleri değişebilir ve değişebilir, seri protokol ince veya daha ince yöntemlerle değişir, usb çözümü biraz değişebilir. İyi ve kötü, bu flaşların bir kısmına ulaşabileceğinizdir, bu yüzden seri önyükleyiciyi değiştirmeyi seçebilirsiniz, bu hem iyi hem de kötüdür, ürününüze göre kişiselleştirmeyi seçebileceğiniz için iyi, kötü olabilir yanlışlıkla silmek ve parçayı tuğlalamak için en azından bu arabirim için tuğlalayın.

Jtag araçları binlerce dolara maloldu, şimdi kullanmıyorlar, yaklaşık 15 $ 'a bir ftdi koparma tahtası elde edip openocd ile yeniden konumlandırabilirsiniz. 50 $ artı veya eksi için bir miktar openocd ile çalışan bir ftdi tabanlı usb çözümü alabilirsiniz. 75-80 dolar gibi ticari olmayan bir j-link alabilirsiniz. Ve sonra hızlı, kesin fakat genel olarak paraya değmeyecek olan çok sayıda bin dolar var. Çok fazla para harcayacağınız ve destek için ödeme yapmak istediğiniz büyük bir şirket olduğunuzda satın alırsınız. Bu fiyatları ödediğinizde istediğiniz ürünü alırsınız ve hemen teknik destek sorularına cevap alırsınız. Örneğin, ücretsiz linux - windows veya RHEL gibi, linux desteği ücretsizdir fakat ne elde ederseniz edin. Her neyse, bu jtag'ı çok daha çekici kılıyor.

Ne zaman ve nerede uygun fiyatlı hata ayıklama ve geliştirme cephaneli jtag araçlarına sahip olmalısınız. sparkfun seri kartlara ftdi tabanlı usb'e sahiptir ve ftdi parçaları büyük üreticilere iade edilebilir, bunları spi veya i2c veya pdi veya jtag veya diğer arayüzler için kullanabilirsiniz. İdeal olarak ilgilendiğiniz veri yolu / parça için yapılmış panoları almak ve beraberinde gelen ücretsiz / açık kaynaklı yazılımı kullanmak. Ayrıca, bu seri kartların kullanılması, ideal olarak bir çeşit seri protokolü olan çeşitli mikroskoplar için seri portlara bağlanmak için 3.3V ve 5V (yaklaşık lillypadler ve arduino minis için kullandığınız her biri için yaklaşık 15 $) bir tedarik kaynağına sahiptir. Bu protokollere dayanarak kendi yükleyicimi yazmayı daha kolay buluyorum, özellikle bootloader kaynağının yayınlandığı arduino / avr milletine benziyor ve destekledikleri standartlardan kayda değer bir alt küme. YMMV.

Kısacası, tek bir iyi çözüm yok, hepsinin artıları ve eksileri var. En az ikisini desteklemeye hazır olun. Usb ve seri veya usb ve jtag veya jtag ve seri, vb. Sadece tahtaya pedleri veya pim deliklerini döşeyin ve mutlaka doldurmayın. Kişisel veya laboratuar gelişiminiz için eksiksiz bir alet takımına sahip olun ve tuğlaları kırdığınızda ve panoları kurtarırken veya kendi önyükleyicinizi, usb bellenimini vb. Geliştirirken birinden diğerine geçmeye hazır olun.

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.