İçindekiler:
- Gereçler
- 1. Adım: Donanım Ara Bağlantıları
- Adım 2: Programlama ve Test Etme
- Adım 3: Diğer ARMbasic Hedefler ve Çeşitli Müzikler için Kaynağın Değiştirilmesi
Video: Metin Okuma ARMbasic Powered UChip ve Diğer ARMbasic Powered SBC'ler üzerine tıklayın: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Giriş: İyi günler. Benim adım Tod. Ben de biraz inek olan bir havacılık ve savunma uzmanıyım.
İlham: Çevirmeli BBS, 8-bit Mikrodenetleyiciler, Kaypro/Commodore/Tandy/TI-994A kişisel bilgisayarlar çağından selamlar, Radio Shack mağazalarının bol olduğu zamanlarda (iyi günler), ilk hobi gömülü projelerimden biri MSU EE laboratuvarlarında kooperatif olarak çalışırken satın aldığım MEK6800D2 Motorola Mikroişlemci Eğitim Kiti ile çalışmak (Güney Aşağı MI'da Lise Elektronik VoTech eğitimimi tamamladıktan sonra). Bu proje benim Radio Shack SP0256 NARRATOR™ KONUŞMA İŞLEMCİSİ'ni MEK6800D2 üzerine prototiplememi, kablolamamı ve 6800'ü sahte konuşma yayması için programlamamı içeriyordu (SP0256 tabanlı HW ile çalışanlar tam olarak neyi kastettiğimi biliyorlardı).). Harika çalıştı ve gömülü mikrodenetleyicilerde ve Montajda dişlerimi kesme yolunda ilerledim. Liseden sonra araya giren hayat, Askerlik, Savaş, Eşler, Çocuklar, sivil sektöre girmek, mesleğe başlamak vs. hobilerimi rafa kaldırarak Batı kültüründe hayatın çabalarını sürdürmek adına bir araya geldi (burada ABD'de).
20 yıl ileri atlayın, çocukların olgunlaştığı, gelinin ve benim dikkatimizin dağıldığı, ipotek/araç/üniversite faturalarının yavaş yavaş ödendiği, kazançların ilerlemelerle daha iyi hale geldiği ve yeterince paramın olduğu noktaya kadar olgunlaştığı kaçınılmaz zamana geliyoruz. Bazı bencil çabalara yeniden odaklanmaya başlayabildiğim noktaya gelince, tekrar hobi elektroniği işine başladım. Her neyse, soyuma ve geçmişime bakılırsa, çabucak bağlandığım bir geliştirici ortamı aradım ve buldum - ARMbasic - BASIC benim ilk aşkımdı ve bu sadece kendimi programlamaya yeniden alıştırmakla kalmayıp aynı zamanda çılgınca daha fazla donanımla çalışma faturasına da uyuyordu. Onlarca yıl önce başladığımdan daha güçlüydü ve böylece yolculuk başladı.
Bu 2006-2009 dolaylarındaydı. Sonra, kontrolümüz dışındaki nedenlerle hayat değişti (o yıllarda birçokları için olduğu gibi). Hobiler rafa kaldırıldı - yeni bir kariyere odaklanın, finansal sıkıntılardan kurtulun (gayrimenkul alanına büyük ölçüde kazandırıldı ve biz bunu kısa sürdük ve gençler Kolej finansmanının bir zorunluluk olduğu noktaya geliyorlardı). Temel olarak, Yaşam ve Birinci Dünya sorunları (dünyanın diğer bölgelerindeki insanların günlük olarak mücadele ettiği zorluklar ve meşakkatler göz önüne alındığında gerçekten kutsanmış durumdayız) kendilerini gösterdi ve… hobi rafa kaldırıldı. 2011-2012-ish'te kısaca geri aldım, sonra başka bir kariyer değişikliği ile karşılandım - hobi yine rafa kaldırıldı.
Bir on yıl daha hızlı ileri sar ve … Geri döndüm ve, Tanrım, umarım bu süre boyunca (o meşhur toprak şekerlemeyi yapıp papatyaları aşağıdan yukarı itmeye başlayana kadar). İşte buradayız. Vay canına - Arduino (bu garip kelime ne?) piyasaya hücum etmişti. Yapıcılar?? Ne halt bunlar? …:) Coridium Corp'taki arkadaşlarım (ARMbasic ve ARM-tabanlı mikrodenetleyici geliştirme kartlarının sahipleri) sadık ve sadık kaldılar. Şimdi, LPC2xxx serisi kontrolörler yerine, bu yeni (bana göre) ARM ve Cortex M0/M3/M4 ve Arduino varlığı var ve … WOW! Kültür biraz değişti ve birçok harika şekilde. Peep'ler uzaktan ve gerçekten de küresel olarak işbirliği yapıyor. Donanım inanılmaz derecede hızlı ve güçlü hale geliyor ve birçok farklı silikon ailesinde istihdamla olgunlaşan ve kararlı bir şekilde sertleşen ARMbasic, benim ve diğerleri için güzel bir şey.
Bu yüzden çok uzun bir kısa hikaye yaparak, geçenlerde MikroElectronika'nın TTS tıklamasına rastladım ve üzerimde bir nostalji dalgası hissettim. Biri birkaç dakika içinde sipariş vermişti ve ünite elinize ulaşana kadar sonraki günlerde endişeliydi. Böylece hikaye başlar…
Gereçler
- 1 adet MikroElectronika Text To Speech Click, modülün TTS ASIC'i olan Epson S1V30120'yi içerir
- 1 adet ARMbasic Target, TTS Host rolünü yerine getiriyor
- 1 adet Uno Breakout Shield (veya prototip ekmek tahtası veya…)
- 1 adet hoparlör veya bir dizi hoparlör, üzerinde 1/8" TRS fişi bulunan masaüstü bilgisayar destekli hoparlörleri önerir
- 1 lot Prototipleme ürünleri tel, lehim, flux, fitil, havya, başlıklar, IC prizleri ve benzerleri..
- 1 lot Gömülü Geliştirme Araçları DMM, Logic Probe, Logic Analyzer, Scope, vb. - yeni TTS Host MCU'ları için
1. Adım: Donanım Ara Bağlantıları
Bunu bir Uno form faktöründe bir ARMbasic hedefi kullanarak veya bir Itaca uChip ile çoğaltmak için, yukarıdaki resimlerde yaptığım gibi (düz amazon bağlantısı) bir prototip kalkanı kullanmak muhtemelen en iyi şekilde sunulur.
Bazıları bükülmüş tel sarma telini görecek ve nedenini merak edecek - ortak mod gürültü reddi basit cevaptır. Evet, burada dengeli sinyallerle uğraşmıyoruz, ama zarar vermeyeceğini düşündüm(?) bu yüzden tahtayı kurarken bunu yaptım.
Oldukça iyi huylu bir tasarımdır. Baskılar buraya bir grafik biçiminde eklenmiştir (AutoCAD 2D en çok alıştığım şeydir - on yıllardır günlük işimde onunla çalıştım - hala KiCAD dişlerimi kesiyorum ve bu çok basit bir çabaydı. öğrenme eğrisini KiCAD'deki ilk proje olarak doğrulayın). Her neyse, uChip'i ana bilgisayar olarak kullanırken bağımsız bir kullanım durumunu etkinleştirmek için uChip soketini doğrudan kalkana monte etmeyi seçtim. İstersem pille güç sağlamak için bir JST ekledim ve birkaç ekstraya sahip olduğum için, gerektiğinde Segger J-Link EDU Hata Ayıklama Sondamı kullanmamı sağlamak için bir Adafruit SWD Breakout'u yıldızladım. Olmadı, ancak gelecekteki projelerde kullanmak için üzerinde bulunduğum SWD'yi tutuyorum.
Castellated, bu bağlamda, PCB'nin kenarlarını aşağı doğru törpülemek, böylece kaplanmış açık deliklerin yarım silindirlere indirgenmesi ve bir taşıma PCB'sine lehimlemenin sağlanması anlamına gelir - bu durumda kalkan koparma kartı. Bunu, kalkanın düz paket yayma bölümleri, SWD BOB'deki iki başlık sırası arasındaki sıra aralığı ile tam olarak hizalanmadığından yapmayı seçtim. Düz bir dosya ve 5 dakikalık dosyalama ve sorun çözüldü.
Adım 2: Programlama ve Test Etme
Donanım oluşturulduktan sonra, kablolamanın iyi olduğunu doğrulamak için tam bir zil çalması gerekecektir. Ardından, her zaman bir Güç ve Toprak kontrolü yaparım. Bu, yalnızca Güç ve Toprak'ın olması gereken yerde olmasını sağlamakla kalmaz, aynı zamanda orada güç/toprağa sahip olmaması gereken diğer sonlandırmaların da olmamasını sağlar. Bunun gibi küçük bir projede sıkıcı bir görev değildir, ancak daha büyük sistem sistemlerinde, gerçekten sıkıcı bir adım olsa da, hiçbir alt montajın veya bağlı sistemin aptalca bir hatayla ortadan kaldırılmasını sağlamak için kesinlikle gereklidir. yakalanabilirdi ve yakalanmalıydı. Genellikle, kartta güç üretilmesi için minimum minimum ürün takılır ve daha sonra alt montajları, yongaları vb. (5V toleranslı olmayan cihazlar/IO, 1v8 ve 3v3 gereksinimleri vb. dikkate alındığında) ve bu zemin olması gereken ve yalnızca olması gereken yerdir. Uygun ön bağlantı kontrollerini yapmayan insanlardan bir uçakta bir dizi arızaya tanık oldum. Bir durumda, 100.000 doların üzerinde LRU aldı - bir projeden sorumlu olmak ve birisi süreci kısa devre yaptığı için bir anda yanlara gitmek için eğlenceli bir zaman değil. Suçlu olduğum başka bir şey de sıkıcı 'yakın kontroller' yapmak - temasların/sonlandırmaların bitişik temaslara/sonlandırmalara kısa devre yapmadığından emin olmak. Koaksiyel montajlar, çok iletkenli/korumalı koşum takımları vb. ile uğraşıyorsanız bu kritik hale gelir. Tamam, sabun kutusundan çıktım…
Güvenlik sağlandıktan sonra, bir şeyleri bağlayın, açın ve ardından TTS Ana Bilgisayarını (ARMbasic Target MCU) tıpkı birçok gömülü MCU hedefinde olduğu gibi programlamaya başlayın. TTS Click'in programlanmasını ve basit kullanımını gösteren bir video kaydettim. Burada görüntüleyebilirsiniz.
ARMbasic kaynak kodu buradan indirilebilir - ek ayrıntılar içeren bir forum gönderisi. Coridium bu çalışmalarla ilgili bir blog yazısı yayınladı, buraya tıklayarak ulaşabilirsiniz.
Adım 3: Diğer ARMbasic Hedefler ve Çeşitli Müzikler için Kaynağın Değiştirilmesi
Kaynak kodunu diğer ARMbasic hedefleriyle çalışacak şekilde değiştirmek için gereken adımlarla sizi oyalamayacağım, bunun için orada çok sayıda kaynak kodu yorumuyla uğraştığımı belirtmekten başka. Lütfen tts.bas dosyasını açmak için zaman ayırın ve kodu başka bir ARMbasic destekli kontrol cihazına taşımayı seçerseniz hangi değişikliklerin gerekli olduğunu okuyun.
Buraya ekte, bunun işe yaraması için geliştirme döngüsü sırasında çektiğim bazı resimler bulunmaktadır.
Dersler öğrenildi:
- Kullanılmayan girişlere sahip bir Logic Analyzer'ınız varsa ve elinizdeki iş için kullanılmayan fazladan hedef IO'larınız varsa, bu IO'ları hata ayıklama araçları olarak kullanmaktan korkmayın - kodun çeşitli noktalarına bir IO'nun kıpırdatılması olabilir. Neyin beklendiği gibi çalışıp çalışmadığını takip etmede, aptal zamanlama sorunlarını (yani, bit-çarpmalı seri iletişimi etkileyen kesintiler) belirlemede ve genel olarak çabalarınızı bir bütün olarak daha iyi anlamada büyük bir yardım.
- Tüm ARM kontrolörleri aynı değildir. Bu apaçık. Ancak, ilk geliştirmeyi bir LPC1765 Coridium SuperPRO üzerinde yaparak biraz ısırıldım. Geriye dönüp bakıldığında, bunu kötü bir seçim yapan şey, bu ARM çekirdeğinin uygulamasının belleğe kelime hizalı olmayan erişime izin vermesidir. C kodunu ARMbasic'e taşırken, onu bir SAMD21 hedefiyle kullanmayı deneyene kadar işler oldukça sorunsuz gitti - arabellekleri doldururken, bayrakları değiştirirken, ARMbasic sürümüyle çalışırken hizasız erişim nedeniyle her şey inanılır gibi değildi. ortaya çıkardığım yapılar/birlikler vs. Acı verici bir dersti. Buradaki çıkarım: Biri taşınabilir koda sahip olmak istiyorsa, en kısıtlayıcı aday hedef üzerinde geliştirin, sadece projenin sonunda, meyvelerini kullanmaktan en çok heyecanlandığı zaman, kişinin drama ile karşı karşıya kalmamasını sağlamak için. onlarin çabaları..:)
- C kodunu ARMbasic'e taşımak imkansız DEĞİLDİR. Bu çaba, büyük ölçüde devasa bir taşıma eğitimi evrimiydi. Orijinal C kaynaklarını benim oluşturduğum ARMbasic koduyla karşılaştırmak için zaman ayırırsa, ARMbasic'in temel tasarımının (yani Yapılar) parçası olmayabilecek şeylerin nasıl uygulanacağı konusunda bazı fikirler edinebilir.
- Bunun gibi şeyleri yönetilebilir parçalar halinde ele alın. Varsayılan olarak, tatmini düzenli olarak görmekten hoşlanan biriyim. Bu taşıma ve geliştirme çabaları gibi bir çabanın, tek bir gecede gerçekleştirilebilecek bir şey olması muhtemel değildir. Gerçekçi hedefler belirleyin ve 'büyük resim' karşısında bunalmamaya çalışarak aynı doğrultuda çalışın.
- Bu çabada bir Mantık Analizörü çok önemliydi. Evet, daha düşük bir orta sınıf DS-Logic+ birimim var, ancak Amazonia'dan 12,50 $'lık ucuz bir 24MHz Bant Genişliği LA'nın fazlasıyla yeterli olacağını vurgulayabilirim. Sigrok'un PulseView'ı (ücretsiz) (protokol kod çözme yapar) ile birleştiğinde, bu projeyle üstlenmeye çalıştığım gibi çok sayıda senaryoda çalışması gereken çok sağlam bir sisteme sahip olacak. Test klipleri olan bir ünite aldığınızdan veya test kliplerini ayrı olarak sipariş ettiğinizden emin olun, çünkü bunlar çok (Trumpfeldian'ın ne kadar) faydalıdır.
- Basit bir mantık araştırması da çok kullanışlı bir araçtır. Çalışma alanının genel bakış resminde, görüntünün sağ alt köşesinde eski bir Archer (Radio Shack) mantık sondası göreceksiniz. İyi donanımlı bir laboratuvarda bile böyle bir şeyin günlük olarak ne kadar yararlı olduğunu öğrenmek beni gerçekten şaşırttı.
Bunlarla daha önce bağlantı kurmuş olabilirim ama hatırlayamıyorum ve bakmak için çok tembelim. İşte TTS modülünün (o sırada onu barındıran Itaca uChip'in) bir videosunu içeren bir blog gönderisi ve taşınan ARMbasic kaynak kodunu indirebileceğiniz ARMbasic Forum gönderisi.
Kendine iyi bak ve hacklemenin tadını çıkar!
-MHz
Önerilen:
Makey Makey için Brick Switch'e tıklayın: 4 Adım (Resimlerle)
Makey Makey için Click Brick Switch: Bu 3D baskılı anahtar, kullanıcının Makey Makey'i bir "parmak kaydırmasına" çevirmesine olanak tanır; bir "tık" için; oyunlarda veya sunumlar arasında gezinmek için sağ/sol oklar olabilir. Sağ ve sol terminal bağlantılarının eklenmesi
Oceania Midi Controller (Make Noise 0-Coast ve Diğer Synth'ler için): 6 Adım (Resimlerle)
Oceania Midi Controller (Make Noise 0-Coast ve Diğer Synth'ler için): Son birkaç yılda, bir dizi sentezleyici üreticisi "masaüstü yarı modüler"; enstrümanlar. Genellikle Eurorack modüler sentezleyici formatı ile aynı form faktörünü alırlar ve çoğu muhtemelen bir g
'Deodorino' - Boş Deodorant Çubuğunda Kızılötesi Kontrollü Arduino ile Tanışın. 1. Fotoğrafa tıklayın: 7 Adım
'Deodorino' - Boş Deodorant Çubuğunda Kızılötesi Kontrollü Arduino ile Tanışın. 1. Fotoğrafa tıklayın: Şimdi ayrıntılara inin
Herhangi Bir Proje için En İyi RGB LED'ler (WS2812, Diğer adıyla NeoPixels): 6 Adım (Resimlerle)
Herhangi Bir Proje için En İyi RGB LED'ler (WS2812, Aka NeoPixels): LED'lerle çalışırken, genellikle durumlarını (açık/kapalı), parlaklıklarını ve renklerini kontrol etmeyi severiz. Bununla ilgili pek çok farklı yol var, ancak hiçbiri WS2812 RGB LED kadar kompakt bir çözüm değil. Minik 5mm x 5mm paketinde
Tek Kullanımlık Kamera Flaş Tüpünü Harici Olarak Diğer Nesnelerin Üzerine Monte Edin.: 4 Adım
Tek Kullanımlık Kamera Flaş Tüpünü Harici Olarak Diğer Nesnelere Monte Edin.: Bazılarınız Tek Kullanımlık bir kameranın devre kartıyla yapabileceğiniz birçok eğlenceli şeye aşina olabilirsiniz. Bunlardan biri, flaş tüpünü devre kartından harici olarak monte etmek sizin için sorunlu olabilir. Sorunlarınızın nedeni