Bilgisayarsız ISS olarak Arduino


12

Herkes bir isp olarak çalışmak üzere ayarlanmış bir arduino üzerine bir firmware önyükleme (bir bilgisayar veya herhangi bir şey kullanarak) bir yöntem gördü veya bilen ve daha sonra bu arduino kullanarak isp arayüzü başka bir fiş ve firmware yükleyin.

Açık olmak gerekirse - tam üflemeli bir bilgisayara doğrudan bağlantı olmadan arduino skeçlerini yüklemeyi mümkün kılmak için bir yol arıyorum.

İdeal olarak, ilgili adımlar:

  1. Yeni çizim / bellenim yazma
  2. Ürün yazılımını derleyin
  3. Veri olarak Arduino A'ya bir kopya ürün yazılımı yazın (Arduino A, ISS olarak çalışacak şekilde ayarlanmıştır)
  4. Arduino A'yı bilgisayardan ayırın
  5. Ayrı bir yerde ISP başlıklarını kullanarak Arduino A'yı Arduino B'ye takın
  6. Önceden yüklenmiş ürün yazılımını Arduino B'ye yüklemek için bir yöntem (belki de bir düğme) kullanarak Arduino A'yı tetikleyin.

Firmware yüklemek sadece SPI arayüzü üzerinden bayt alışverişi sadece teorik olarak işe yarayacağını varsayıyorum ama gerçeklik hakkında emin değilim.

Düşündüğüm senaryo, bilgisayarımdan uzak bir yere bir arduino (kalıcı olarak) kuracak olsaydım (bir dizüstü bilgisayarım yok ya da bir tane almak istemiyorum) yeniden programlamak zahmetli olurdu o.

Düşündüğüm diğer yöntem, daha sonra tahtadan çıkarıp bilgisayardan programlayabildiğim ve tahtaya geri dönebileceğim DIL paketli ATMEGA'yı kullanmaktır - ancak pimlerin bükülmesi ve çıkarılması zorluğu riskini tercih etmemeyi tercih ederim. her yeniden programlamak istediğimde.


Sonuç olarak, diğer Arduino'ları yalnızca programlayıcıya yüklenmiş tam çizim / ürün yazılımı ile programlayabileceksiniz (Arduino A). Bu yüzden sadece bir üretim hattında olduğu gibi kopya yapmak yararlı olur, değil mi? Çizimdeki herhangi bir şeyi değiştirmeniz gerekirse, değiştirmek ve tekrar yüklemek için bilgisayara geri dönmeniz gerekir. Bunu doğru anladım mı?
Ricardo

1
"Flash görüntü" ünün başka bir destekle (SD kart gibi) hedefe kopyalanmasını sağlamak mümkün değil mi?
jfpoilpret

Evet. Bir üretim hattı için de iyi olacağını düşünüyorum. Benim durumum, taşınması zor bir kasaya yapıştırılmış bir arduino'm var ve bilgisayarımdan farklı bir odada (taşınması da zor). Bu yüzden, her değiştirmek istediğimde çizimi Arduino A'ya yüklemekten mutluluk duyarım.
m3z

2
Bir bootloader ( github.com/WestfW/OptiLoader) programlamanın sınırlı bir amacı için yapılmıştır, ancak aracın boyutu eksi kullanılabilir flaştan daha küçük herhangi bir yük için çalışmalıdır. Daha büyük bir yük yazılımı için harici bir depolama cihazı (veya sadece bir Arduino Mega?) Çalışmalıdır.
Chris Stratton

@ChrisStratton benim için mükemmel görünüyor. Teşekkürler
m3z

Yanıtlar:


5

Sanırım µProg - SD'li küçük, hızlı, taşınabilir AVR programcısı ne isterse yapar. SD karta birden fazla dosya (onaltılık, eep vb.) Kaydedebilir ve bir PC'ye ihtiyaç duymadan hedef MCU'ya yazılacak cihaz menüsünden seçim yapabilirsiniz.
En iyi bölüm ücretsiz (PCB, şematik, bellenim vb.)

Bir tür taşınabilir AVR programcısı! Hedef aygıtın erişilmesi zor bir konumda olduğu ve dizüstü bilgisayarınızı bir grup kabloyla birlikte getiremeyeceğiniz (veya istemediğiniz) aygıt ürün yazılımını güncellemeniz gereken her yerde yardımcı olur. Kullanımı son derece kolay, süper ucuz, süper küçük, süper hızlı, SD kart kullanıyor…

Özellikleri:

  • süper küçük - boyutlar 44 x 39 x 5,5 mm
  • süper hızlı - 12,5kB / s'ye kadar yazma, 14,5kB / s'ye kadar okuma
  • ucuz depolama ortamı kullanır - küçük MICRO SD kartlar
  • FAT16 ve FAT32 dosya sistemlerini destekler
  • flash ve eeprom belleği okuyabilir, yazabilir, doğrulayabilir
  • fusebits ve lockbits okuyabilir, yazabilir, doğrulayabilir
  • BIN, HEX ve TXT dosyalarına yazma ve okuma
  • varsayılan fusebits değerlerini ayarlayabilir, anıları silebilir
  • ucuz, elde edilmesi kolay, LPH7779 grafik ekran
  • her işlemden sonra komik animasyonlar gösterir
  • standart programlama başlığı - Atmel 6-PIN ISP
  • kendi bellenimini otomatik olarak güncelleme işlevi vardır (SD'den)
  • kullanımı çok basit, 4 düğmeli navigasyon
  • kullanıcı ayar menüsü
  • programlama hızı otomatik seçimi (4MHz'e kadar)
  • 3V'de çalışır, 3V'den 5V'ye sağlanan yongaları programlar

Desteklenen çip listesi

resim açıklamasını buraya girin


İyi görünüyor. Hafta sonu araştıracak.
m3z

Geçen gün bu soruyu nasıl kaçırdığımı bilmiyorum. Bir arkadaşımla sadece bu projeyi kendimiz yaratma hakkında konuştum. Ve sonra cevabınızı görüyorum.
Madivad

4

Ne istediğiniz için doğrudan bir çözümüm yok, ama evet bunu yapmak mümkün. Bir önyükleyici bellenimini, bellenim flash kodunu okuyacak ve ISS üzerinden yükleyecek şekilde hackleyebilirsiniz.

Her iki arduino'nun MCU'larında sadece 32k toplam flaş varsa 32k firmware'i hedef AVR'ye yükleyemeseniz de, bunu yapmak istiyorsanız flaşörün hedeften daha fazla flaşa sahip olması gerekir (1284p veya 2560 Mega yeterince uzak olacak veya bir 328 / 32u4 168 veya bir attiny'yi flaşlamak için kodlanacaktır). Tek istisna, bellenimin toplam bellekten daha küçük bir şekilde yanıp sönmesi (göz kırpma çizimi gibi) olacaktır.

Sonunda, bu kolay olmayacak,% 100 saf AVR kodu, ancak bunu yapabilirsiniz. Bir bak bakalım:

Uygulamanın yolu, her şeyi flaşör cihazının önyükleyicisine sığdırmaktır, böylece bellenimi (0x00'den önyükleyici başlangıç ​​adresine kadar her şey) okur ve AVRISP'yi Optiboot ile birleştirerek ISS aracılığıyla yanıp söner.

Her neyse, yerel hackerspace'imde önerebileceğim bootloaders ve AVR'ler hakkında bir atölye için ilginç bir proje! ;-)

HTH


Teşekkürler, AVRISP kaynak kodu beklediğim kadar karmaşık görünmüyor. Hafta sonu biraz daha derinlemesine bakacağım
m3z

Yerel bilgisayar korsanınız nerede? :)
Madivad

Fransa'da Le Loop
zmo

sorun değil, oy vermek için ne olduğunu ;-)
zmo
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.