Hangi mikrodenetleyici doğrudan bir USB bağlantı noktasına bağlanabilir?


9

Aslında, sadece USB üzerinden mikrodenetleyiciye bazı veriler göndermem gerekiyor, sonra mikroişlemci verileri çözüyor ve 5V'de çalışan bir LED ışık şeridi kullanıyor. İş için doğru mikro denetleyiciyi bulmakta sorun yaşıyorum.

Mikrodenetleyici sadece USB iletişimi için 2 seri giriş portuna, LED şerit ile iletişim için iki seri çıkış portuna ve 5V'de çalışabilmelidir. İhtiyacım olan tek şey seri bir COM portu kurulduğunda USB iletişimi için özel bir IC'ye sahip olmak gereksiz görünüyor.

Örneğin, LPD8806 şeridine bir bayt yazan Arduino kod snippet'i:

void write8(uint8_t d) {
  for (uint8_t i=0; i<8; i++) {
    if (d & _BV(7-i))
      digitalWrite(dataPin, HIGH);
    else
      digitalWrite(dataPin, LOW);
   digitalWrite(clockPin, HIGH);
   digitalWrite(clockPin, LOW); 
  }
}

Verileri kilitlemek için şeride sıfırlar gönderirsiniz.


Sanırım bir USB bağlantısı (iki yönlüdür) ve bir seri bağlantı (ayrıca iki yönlü) demek istediniz. Eğer resme girerseniz, 18f4550 ailesi işi yapacak.
Scott Seidman

1
LED şeridi için protokol nedir? Şeridin veri sayfasına veya web sitesine bağlantı ekleyebilir misiniz?
Rocketmagnet

@Rocketmagnet Bu LED Şeridi . Veri sayfası Çince'dir, ancak sadece bir seri giriş ve saat girişi vardır ve satırdan sıfır göndererek kilitlersiniz.
Steve Barna

Yanıtlar:


7

Sanırım "iki seri çıkış portu" ile bir UART demek istediniz (USB'yi 2 port olarak da tanımladığınızdan). Rocketmagmet birçok LED dizesinin SPI kullandığını, ancak bunun en az 3 kablo gerektirdiğini gösterir. Hangi protokole ihtiyacınız olduğunu belirleyebilir misiniz?

Genel olarak Microchip, bu sefer de en düşük maliyetli mikrodenetleyicilere sahiptir. Ve Microchip'in DIL paketinde de birçok mikro denetleyicisi var, diğerleri ise bunu terk etti. DIY için önemli olabilir. PIC18F13K50

  • hem DIL-20 hem de SMT paketlerinde bulunur
  • 5 V'da çalışır (LED şeridi ile arabirim için)
  • 2,5 ABD doları olarak düşük maliyet (Tamam, bu göreceli, ancak USB özellikli denetleyiciler olan daha temel tipler biraz daha pahalı)
  • UART arayüzü için Geliştirilmiş USART
  • bir SPI arayüzü var.
  • 25 mA kaynağı ve lavabo G / Ç özelliğine sahiptir, böylece gerekirse birkaç gösterge LED'ini doğrudan kullanabilirsiniz


Gömülü Aygıtta USB Genel İşlevinin daha fazla okunması , Mikroçip Uygulama Notu AN1166


LED şeritlerden bahsediyor, bu yüzden senkronize bir protokol olduğunu varsayıyorum (temelde veri dönüş pini olmadan SPI). Bu PIC sadece 1 SPI portuna sahiptir, bu yüzden uygun olmaz. Her ne kadar protokolü vurabilir biraz.
Rocketmagnet

@Rocket - SPI nerede diyor? Ve iki SPI veriyoluna ihtiyacı olmayacak: SPI çok köle. Scott'ın yorumladığı ve cevabımın başında söylediğim gibi, iki liman ile iki pim anlamına geldiğini düşünüyorum, bu yüzden önce UART'ı düşündüm.
stevenvh

Belki PIC18F24J50? Ama bu 3.3v bir bölüm, bu yüzden LED şeridine arayüz olup olmayacağını bilmiyorum.
Rocketmagnet

1
SPI olduğunu söylemiyor, ama daha önce LED şeritleri kullandım ve her zaman senkronize oldular. Yanlış olabilirim. Daha önce hiç görmediğim başka bir LED şerit anlamına gelebilir. Sanırım saat ve veri için iki iğne demek.
Rocketmagnet

Aslında, soruyu yanlış okudum ve iki LED şerit söylediğini düşündüm! Aslında bir LED şeridi için iki pim dedi. Yani, er, orijinal öneride olduğu gibi.
Rocketmagnet

4

LED şeridinizin basit bir seri arayüzü vardır. Sadece bir bilgisayarla kontrol etmeye çalışıyorsanız, pinleri hareket ettirmek için bir FTDI yongası kullanabilirsiniz: http://www.ftdichip.com/Products/ICs/FT232R.htm

Sonra karmaşıklığı kullanarak PC tarafında libftdi veya D2XX kütüphaneleri. Ancak Arduino örneğinize çok kötü değil, benzer karmaşıklık.

Donanım yapmak istemiyorsanız, FTDI yongalı önceden hazırlanmış kabloları Mouser gibi FTDI distribütörlerinden veya Sparkfun vb. Satın alabilirsiniz. Kablolar farklı voltaj konfigürasyonlarında mevcuttur, bu yüzden dikkatlice sipariş verin.

Tabii ki, projenin bir şekilde bağımsız veya özerk olmasını istiyorsanız, tam bir mikrodenetleyici çözümü isteyeceksiniz.


Bir USB Denetleyici aracılığıyla LED şeridine ham SPI verileri göndermeyi düşünmeliyim. FTDI çipleri VCOM veya D2XX iken Microchip kendini bir HID cihazı olarak ayarlayan bir USB-SPI yapar ve henüz bir c ++ programından bir ışık şeridi çalıştırmak için en uygun olandan emin değilim.
Steve Barna

USB <-> UART köprü yongaları gibi sanal bir seri bağlantı noktası olarak görünen bir USB <-> SPI köprüsünün farkında değilim. Bunun yerine, SPI için kolay olan bit beceriyor kodunu yazmanız gerekecektir.
markrages

3

PSoC3'ü kullanmayı düşünün .

PSoc3

USB ve neredeyse istediğiniz çevre birimleri ile kullanılabilirler. (Yazılımda yapılandırılmışlardır) Kesinlikle LED şeritleri için iki seri bağlantı noktasına sahip olabilirsiniz. İsterseniz 20 tane olabilir.

Geliştirme ortamı da kullanmaktan mutluluk duyuyor.

PSoC Oluşturan


3
Bu biraz abartılı görünüyor. Ama içine bakacağım.
Steve Barna

8
@Rocket - Digikey'de bir PSOC'nin bahsettiğim PIC'nin iki katından daha pahalı olduğunu görüyorum. Tüm bu yapılandırılabilir çevre birimlerine ihtiyacınız varsa , altın olarak ağırlıklarına değer olduklarından şüphe etmiyorum , 16 UART veya benzeri başka bir mikrodenetleyicide bulamayacağınız çözümler için. Ancak OP'nin sadece bir USB bağlantı noktasına ve bir seri bağlantı noktasına (UART, SPI veya I2C) ihtiyacı var gibi görünüyor, o zaman sadece nispeten düşük uçlu bir denetleyici seçmek çok daha ucuz.
stevenvh

@stevenvh - Kabul ediyorum, PSoC'ler acı verici olabilir. Üretim için sadece çok işlevlerinden yararlanabileceğinizde buna değer. Ancak prototipleme için tamamen buna değerler. Sadece doğru çevre birimleri kombinasyonuna sahip özel PIC için avlanmak zorunda kalmazsınız ve bir düğmeye tıklayarak donanım değişikliklerini uygulayabilirsiniz !
Rocketmagnet

@Rocket - "bir düğmeye tıklayarak donanım değişikliklerini uygula". Evet, Selvi adamlar bana bunu söylediler. Anlamadım (bunu meslektaşlarımla kapsamlı bir şekilde tartıştım ve onlar da anlamıyorlar): Örneğin uygulama şansımda bir zamanlayıcıya ihtiyacım varsa, her zaman ihtiyacım var, bir süre dışarı atmam çünkü donanım ile farklı bir şey yapmak istiyorum. Ben do ... senin ekran görüntüsünde olduğu gibi, yapılandırma araçları takdir ve onların HC05 kontrolörler için küçük bir FPGA eklemek için (bunlar Freescale'i olmadan önce) bir rhousand kez Motorola yalvardım, ama değildi
stevenvh

@Rocket - (devam ediyor) ... uygulama içi yeniden yapılandırma için bu geliştirme sırasında daha esnek bir denetleyiciye sahip olacaktı . O zamanlar büyük bir Motorola müşterisiydik ve HC05 karmaşasını nasıl temizleyeceğimiz konusunda bize danıştılar; yüzlerce farklı tür vardı, bazıları diğerlerinden daha başarılı. Bu yüzden 1) FPGA ve / veya 2) seçilen çevre birimlerini (sınırlı) G / Ç'ye bağlamanızı sağlayan bir çapraz nokta anahtar dizisi; donanım yine de kalıptaydı. Ne oldu, ve Motorola artık kontrolör yapmıyor ...
stevenvh

0

Bundan daha basit olamaz: ATmega8U2 .

Üstüne üstlük, Arduino bootloader ile bile kullanabilirsiniz ...

Veri sayfası: http://www.atmel.com/Images/doc7799.pdf

(biraz özlü olduğum için üzgünüm, telefondan yazıyorum)


2
PC'nizin arkasına döndüğünüzde ("önünde" olmamalı mı?) Ayrıntılı olarak açıklayabilirsiniz: bu en basit çözüm nasıldır? ATmega8U2 PIC'den% 50 daha pahalı olduğu için iyi bir hikaye :-) olmalı.
stevenvh

1
AVR hattını (özellikle ATmega) tercih ediyorum, çünkü hızlı prototipleme için Arduino ortamını kullanabilir (poster buna aşinadır!) Ve hızlı test sabitleme döngülerine izin verir. Sonra kodu manuel olarak optimize ediyorum, hatta Tiny2313 gibi daha küçük bir AVR uC kullanıyorum (BTW, AVR'ler için yumuşak USB kütüphaneleri var). PIC'leri sevmek istedim, ancak onlara baktığımda (Arduino başlamadan hemen önce) AVR'ları seçtim: Dokümanlarını daha iyi ve topluluk daha güçlü buldum - Macaristan'da buna rağmen, PIC'ler tarihsel olarak daha destekleniyor. Düşük hacimli üretimde maliyeti düşürmek için daha kısa bir cihaz seçtim.
ppeterka

1
Tam olarak neden iniş vekili? Açıklamak ister misiniz?
ppeterka
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.