1 telli cihazları taklit etme


10

Yapmak istediğim, ATTiny IC'nin 1 telli veri yolunda, kendi S / N ve özel işlevleri için komut listesi ile bir köle haline getirmektir.

Bilmek istediğim, köle olarak veri göndermek için arduino sitesinden bir tel kütüphanesini kullanabilmem .

Örneğin, bir odada, talep edilen bilgiler konusunda ustaya rapor verecek birden fazla sensör türüne sahip bir köleniz olabilir veya master, panjur gibi bir şeyi kontrol etmesini söyleyebilir.

Soru Bus hattını izlemeli ve master'dan gelen bir talebe cevap vermeli ve ayrıca normal bir sensörün veri gönderme şeklini dikkate almam gerekir mi? En iyi işlevselliği elde etmek için slave'i hangi sıklıkta çalıştırmalıyım?

Parazit gücü not olarak kullanmayacağım.



@Gerben - Bunu daha önce bir aramada buldum. İçinden geçti. Ama endişelendim çünkü bazı hatalar vardı, çözülmüş olsa da, güvenilirliği bilmiyorum. Ayrıca özel köleler kullanarak düşman tasarımları arama ortak bir şey gibi görünmüyordu, bu nedenle yukarıdaki soru.
RSM

Kütüphane bunu destekliyor gibi görünüyor. İşte bence özel bir kütüphane . Hız 15kbps civarında görünüyor. CPU hızının gerçekten önemli olmadığını düşünüyorum, ancak bu kütüphaneye bağlı. Pille çalışmazsa, 8mhz veya 16mhz'de çalıştırın ve iyi olmalı.
Gerben

@Gerben Nasıl çalıştığını görmek için kütüphaneyi test edeceğim. Hala elde edemediğim bir şey, bazı şeylerin tek telli köle kullanmamasının neden bu kadar nadir olduğu?
RSM

@RSM Bu kütüphaneyi kontrol etmelisiniz github.com/MarkusLange/OneWireSlave
Ryu_hayabusa

Yanıtlar:


3

Bildiğim kadarıyla, sorunuzda bağladığınız 1 telli kütüphane, bir köle olarak değil, sadece bir usta olarak hareket etmenizi sağlar.

Bir Arduino kartını 1 telli bir köle haline getirmek için bir kütüphane yayınladım, burada: https://github.com/neuoy/OneWireArduinoSlave (değiştir: buraya taşındı https://gitea.youb.fr/youen/OneWireArduinoSlave ). Özel ev otomasyon sistemimde kullanıyorum ve kurulumumda kusursuz çalışıyor (1 telli master, DS9490R, bir dizüstü bilgisayara USB yoluyla bağlı ve aynı zamanda Arduino Uno olan Arduino'ya güç sağlıyor). Kütüphane düşük seviyeli ayrıntıları ele alır: maç romu, bayt gönderme ve alma (gerçekten doğru olması oldukça zordur, bir mantık analizörü olmadan genellikle imkansızdır). Gerisi size kalmış.

Tamamen kesmelerle uygulanır, tüm iletişimler arka planda gerçekleştirilir, diğer kodları her zamanki gibi paralel olarak yürütebilir ve bayt alındığında vb. Geri çağrılarla bildirilir. Master'a bayt gönderme de asenkronize olur.

Ayrıca yukarıda Ryu_hayabusa tarafından yorumlandığı gibi, en az bir başka kütüphane daha olduğunu biliyorum: https://github.com/MarkusLange/OneWireSlave . Benim için işe yaramadı (donanım kurulumumdan mı yoksa başka bir nedenden dolayı mı bilmiyorum), ama kesinlikle başkaları için de çalışıyor, bu yüzden denemeye değer. Bu kütüphane kesintilerle uygulanmamış gibi görünüyor, bu nedenle programınız ana etkinlik beklenirken engelleniyor (birçok senaryoda mükemmel kabul edilebilir).



1
@JonasBerlin Gerçekten de, depoyu taşıdım (cevabı sadece bunu yansıtacak şekilde düzenledim). Eski bağlantıyı her ihtimale karşı bir yedek olarak ve GitHub'da diğer insanların çatallarını bulmak için bir referans olarak bırakıyorum.
Youen

Sorunlar belki kopyalanmalı mı?
Jonas Berlin
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.