Bir ATMega328P programlayın ve Arduino kartı olmadan kullanın


13

Projem için bir ATMega328P kullanmak istiyorum, bunu Arduino kartı olmadan yapmayı umuyorum.

Arduino IDE ve Arduino kartı ile mikrodenetleyiciyi programlayabileceğimi biliyorum. Ancak, Arduino IDE + Arduino kartı ile programı programlayıp hata ayıkladıktan sonra, mikro denetleyiciyi Arduino kartından alıp ATMega328P'yi kart olmadan ayrı olarak kullanmak mümkün olabilir mi?

Evetse, breadega üzerinde düzgün çalışması için ATMega328P'yi hangi ek yapılandırmalar yapmalıyım?


Arduino UNO önyükleyici ile ATMEGA328 P-PU kullanın .... hobi mağazalarında ve çevrimiçi ve eşyalarda bulabilirsiniz ☺
Arthur

Çıplak çipin kullanılması kesinlikle mümkündür ve herhangi bir sorun yoktur.
dannyf

Bu seninle aynı soru değil, ama ondan biraz bilgi alabilirsin. arduino.stackexchange.com/questions/32970/…
Code Gorilla

Yanıtlar:


7

Bir ATMEGA'yı bir Arduino'dan çıkarabilir ve kendi tahtanızda kullanabilirsiniz, ancak tipik bir Arduino tahtasında kullanıldığında çip, harici bir kristal için (daha basit ama daha az doğru) dahili saat yerine saat kaynağı olarak kaynaştırılır.

Çipin beklediği saat kaynağı çalışmadığı sürece saat kaynağını ISS üzerinden değiştiremezsiniz, bu nedenle saat seçimini değiştirmek isterseniz, çipi Arduino'dan çıkarmadan önce bunu yapmak isteyeceksiniz.

Bununla birlikte, harici kartınıza bir saat kristali ve iki kondansatörünü (veya genellikle yerleşik olan bir yedek rezonatörü) da sağlayabilirsiniz.

Tipik olarak yongalar (bir kolaylık olarak bir önyükleyici ile önceden parlatılanlar bile) tahtalardan daha ucuzdur, bu yüzden aynı çipi neden başka bir tane kullanmak yerine Arduino'dan çıkarmak istediğiniz açık değildir. Yine de bir USB-mantıksal seviye seri adaptör isteyeceksiniz ve bunu yaptıktan sonra, Arduino'da ilk test yapsanız bile, kartınızdaki çıplak yonga üzerinde geliştirme yapabilirsiniz. USB dönüştürücünüz yoksa, çipi bir Arduino kartından çekebilir ve D1 ve D0'dan kablolar çalıştırabilir veya bu seri hatlarını ödünç almadan ödünç almanıza izin vermek için yerleşik çipi sıfırlayabilirsiniz. girişim.


1
Benim fikrim sadece kartı olmayan bir mikro denetleyici kullanmaktır. Bir Arduino programlamak kolay olduğu için bir ATMega seçebileceğimi düşündüm. Yani, bir Arduino uno'm var, benim fikrim sadece bir ATMega satın almak ve programlamak ve uno kartını kullanarak hata ayıklamak. Ancak, ATMega'yı Arduino'dan ayırırsam, bileşenler eklemem gerektiğine (kristal, dirençleri çekin ..) güvence verdim. Gönderinizin son paragrafında ne demek istediğinizi açıklayabilir misiniz? Arduino IDE kullanmadan doğrudan bir ATMega (veya başka bir mikrodenetleyici) programlamanın basit bir yolu var mı? Teşekkürler.
George

IDE'yi atlayabilmenize rağmen, IDE'yi kullanarak ya da harici bir saati olan bir devre ile ya da USB kullanarak, seriyi hedef kartınızda, kabloda veya çiziminizi bir ISS programcısıyla programlayarak. Bir yongadan bir yonga yanking yapmak, sadece bir önyükleyici ile ya da kendiniz olmadan bir yonga satın almak ve kendiniz yüklemek, potansiyel olarak sağlam Arduino'nuzu bir ISS programcısı olarak kullanmak veya taslağınızı bir bootloader olmadan doğrudan yüklemek için ISS kullanmakla karşılaştırıldığında hiçbir şey almaz.
Chris Stratton

7

Evet ATMega328Parduino kurulu olmadan kullanabilirsiniz . IC'yi her zaman arduino olmadan kullanırım. Bunu yapmanın iki yolu vardır.

  1. IC ile arduino kartını kullanabilirsiniz. IC'yi programlayın ve çıkarın ve devrenizde kullanın. 16MHZ OscillatorKapasitörlerle kullanmanız gerekecek .
  2. Arduino USBaspkartınız yoksa, programlamak istediğiniz diğer programcıları kullanabilirsiniz Atmega328p. Bu durumda, doğrudan karşıya yükle düğmesini kullanmayın, bunun yerine dosya menüsünden programcı seçeneklerini kullanarak karşıya yükle seçeneğini kullanın. Pano olarak Arduino Pro or Pro Mini (5v, 16mhz) With ATmega328ve programlayıcı olarak seçmeyi unutmayın USBasp.

NOT : Atmega328p Pin Eşleme'ye bakın ve cihazınızı buna göre programlayın. Zevk almak!


2

"Arduino İnşa Et" için arama yapın - sadece bununla ilgili tonlarca nasıl yapılır makalesi bulacaksınız. Baskılı devre kartındaki bağlantıları lehimlemeniz gerekir (ve lehimsiz bir breadboard kullanmak isteseniz bile değil), ama gerçekten basittir. İlk önce onu bile oluşturabilir ve bir FTDI kablosu kullanarak MCU'yu PCB üzerinde programlayabilirsiniz. Bilmediğiniz parçaları denemek için bir Arduino kartı ve lehimsiz bir breadboard kullanıyorum, ancak kullanacağım tüm bileşenleri öğrendikten sonra genellikle hemen el yapımı bir panoya gidiyorum.

Arduino kartıyla prototip oluşturma, bir sürü parçayı bir araya getirmenize ve hızlı bir şekilde çalışmanıza izin verir ve Arduino nihai hedefinizden (f / ex, Mega 2650) daha yetenekli ise, belleği ve G / Ç kısıtlamalarını geçici olarak göz ardı edebilirsiniz. küçük cihaz.


0

Bağımsız bir Arduino çip kullanmak oldukça kolaydır. Resmi kartlar için kullanılan yonga ile ilgili zor olan tek şey, tahtaya monte edilen daha hızlı (ve daha doğru) harici osilatörü kullanmak için kaynaşmalarıdır. Bu, gevşek yongaları satın aldığınızda bile geçerlidir, çünkü çoğu, belki de Digikey'den olanlar hariç, yanmış olanı değiştirmek için bir Arduino kartına monte edilmek amacıyla satılmaktadır.

Uyarılar: Arduino bir prototip tahtası olarak tasarlanmıştır ve birkaç şey bu görevde olduğundan daha iyi sonuç verir. Devre tasarımını ve testini tamamlayana kadar çipi Arduino kartında bırakmak isteyebilirsiniz. Ancak o zaman doğrudan bağlarsınız. Yerinde bir saat devreniz varsa yerinde kullanılabilir veya sigortaları değiştirebilir (daha sonra bakın) ve Arduino'yu bir ISS adaptörü ve 8 mhz'lik bir saat hızı ile yeniden programlayabilirsiniz (PlatformIO bunu yapmanızı sağlar ( ve doğrudan izin verir) Bir Arduino taslağının ithalatı) - Atmel AVR eklentisi için doküman sayfalarını kontrol edin, ancak Arduino'ya çıplak bir yonga için 8mhz seçeneğini kullanmasını söylemek için bir tahta dosyasının nasıl ekleneceğine dair bir dizi kılavuz da arayabilirsiniz)

Farklı bir devrede kullanmak için çipi çıkarırsanız, saat devresinin tekrar eklenmesi veya sigortalarının değiştirilmesi gerekir (bir dakika içinde buna geçeceğim). Ayrıca, çeşitli nedenlerden dolayı programlamak zor olacaktır, bu yüzden biraz ucuz donanım satın almak isteyeceksiniz:

Bağımsız bir yonga programlama : Arduino'nun CPU'su bir bilgisayarla konuşmak için doğal olarak tasarlanmamıştır. Bir aracıya ihtiyacınız var. Uno'da bu, USB özelliğine sahip ikinci bir Atmel çipi ve ana çipte bir önyükleyici ile yapılır. Bu, USB yongası bilgisayarın mesajlarını UART sinyallerine dönüştürürken programın yüklenmesi için UART'ı kullanmasıdır. Önyükleyici, çip kendi başına olduğunda biraz acı çektiği için (UART seçici olduğu ve takıldığı için çipi harici bir saat kullanacak şekilde ayarladığı için), Arduino için bir ISS programcısı satın almak isteyeceksiniz (veya Arduino-is-ISP çizimini ve kendi yapmak için talimatları takip edin, bu da çip bulunan bir Arduino gerektirir, bu yüzden programlanması için bir saniyeye ihtiyacınız olacaktır).

Bunlar, ATMega 328'i önyükleyici olmadan doğrudan SPI üzerinden programlayabilir (İnternette birçok talimat vardır; örneğin, "USBAsp ile çıplak ATMega 328P programını arayın"). Bu, yongayı orijinal Arduino kartına geri göndermek dışında programınızı değiştirmeyi ve hata ayıklamayı çok daha kolay hale getirir. Harici bir kristal kullanmak istemiyorsanız saat ayarlarını değiştirmek için bir taneye ihtiyacınız vardır.

Çipte hata ayıklamak istiyorsanız , bir FTDI adaptörü veya başka bir USB-UART dönüştürücü satın almak da yararlıdır. Yine de kartın sıfırlama devresi parçası olmadan (veya tekrar kendinizinkini ekleyerek), ATMega'yı bootloader ile bile programlamanıza izin vermeyeceğinizi unutmayın. Bunun için toprak, RX ve TX pimlerini adaptöre bağlayın. VCC hattını bağlamak isteyebilir veya istemeyebilirsiniz, ancak çipe bağlı bir çok şey varsa ve / veya kendi güç kaynağı varsa bunu yapmamanız önerilir . RX ve TX'in bağlandığınızda değiştirilmeleri gerektiğini unutmayın; yani, RX'den TX'e ve TX'den RX'e - çipin adaptörün TX (iletim) ne olduğunu RX (alma) ve tam tersi olmasını istersiniz.

Saat devresini oluşturmak zor değildir, ancak sahip olmadığınız birkaç bileşen gerektirir. Yani, hiç saat kaynağı değiştirmek , gidin http://www.engbedded.com/fusecalc/ ve ATMega 328P seçin. Varsayılan değerler iyidir, ancak EEPROM silmeye devam et özelliğini etkinleştirmek ve saat 8'e bölünmeyi devre dışı bırakmak veya göz atma ayarlarını değiştirmek isteyebilirsiniz. Başka hiçbir şeye dokunmayın (sıfırlama veya SPI'yi devre dışı bırakmak veya DebugWire'ı etkinleştirmek, bir YG programcısının düzeltilmesini gerektiren "eğlence" ile sonuçlanır). Tamamlandığında, sağladığı komutu AVRDude komutuna yapıştırın. -C seçeneklerini değiştirmeniz gerekir (-p zaten ATMega 328P olarak ayarlanmıştır, ancak P 328 olmayanlar için başarısız olacaktır - bunları satın almayın) ve belki de -P seçeneğini (Bağlantı Noktası için) ekleyin. Küçük harf -u seçeneğini atlamayın, aksi takdirde sigortaları güncellemeyi reddeder.

avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]

Not onlar benim favori programcısı tüm bu bir USBASP satın alırsanız ki (emin olunuz jumper üç grup vardır!), Onlar güncellenmiş firmware sahip olmayabilir destekleri -B seçeneği (eğer olacak muhtemelen ihtiyaç). Bu, onu Arduino'nun önyükleyicisini programlamak için kullandığınız şekilde altı iğneli programlama bağlantı noktası aracılığıyla bir Arduino'ya bağlamanız gerektiği, ancak daha sonra yeni programlamak için Arduino olarak ISS çizimini kullanmanız gerektiği anlamına gelir programcıya firmware (arama "usbasp firmware'i arduino-is-isp üzerinden güncelleyin")! Referans olarak, bu genellikle kablonun kartın gövdesinden uzağa baktığı anlamına gelir ve muhtemelen çizimi daha önce programlamanız gerekirkabloyu bağlayın. Ayrıca USBASP (5V) ve "kendi kendine programlanan" programlayıcıdan gelen güç atlama telini etkinleştirin. ( güç ve program atlama telleri (JP2) için https://forum.arduino.cc/index.php?topic=560719.0 adresine bakın ).

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.