Attiny85 per USB steuern?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Der Attiny hat kein USB Modul drinnen die einzige Möglichkeit USB Support zu bekommen besteht also entweder darin eine FT232RL oder eine ähnliche USB UART Brigdge zu verwenden oder V-USB auf dem Controller zu verwenden.

Da V-USB Bitbanging verwendet um die USB Schnittstelle zu emulieren musst du allerdings damit rechnen, dass das ganze ziemlich rechenintensiv ist, besonders wenn du viele Daten über die USB Schnittstelle schieben willst oder der Controller voll ausgelastet werden soll würde ich die anbindung mittels FT232RL vorziehen.

Wie du die USB Buchse anschließt entnimmst du am besten dem Datenblatt des FT232 oder du kopierst das Layout des Digispark.


CompilerBauer  01.10.2018, 17:04

Super Antwort!

Als Ergänzung könnte man noch hinzufügen, dass es auch AVRs mit eingebautem USB-Controller gibt. Da hat man dann alles schön in einem einzigen Gehäuse verpackt, alles ist effizient aufeinander abgestimmt und VID / PID kann man konfigurieren, wie man lustig ist. :)

CompilerBauer  01.10.2018, 19:21
@Sp4ghett1C0de

Direkt bei Atmel. Einfach die Filter in der Feature-Tabelle setzen, und dir werden alle entspr. Modelle angezeigt.

PeterKremsner  02.10.2018, 12:21
@CompilerBauer

Richtig die größeren AVR bzw ATXMega haben Hardware USB drinnen. Ich dachte dem Fragesteller gings hier dezidiert um den Attiny85, sonst hätte ich direkt einen STM32F0 vorgeschlagen.

Die Nucleo Boards sind unschlagbar billig und mit CubeMX ist der Initialisierungscode für die USB Schnittstelle schnell "geschrieben". Dauerte bei mir nur ein paar Minuten bis zum ersten fertigen Virtual Com Port.

Ich möchte dabei aber anmerken, dass man mit der VID und PID aufpassen muss. Diese muss für jedes USB Gerät einer funktionalität weltweit eindeutig sein, daher muss man sich eine VID auch kaufen, bzw einige anbieter verkaufen auch nur PIDs wobe die VID dann auf die gebranded ist.

Einfach irgendeine VID und PID eintragen ist nicht erlaubt!

Sp4ghett1C0de 
Beitragsersteller
 02.10.2018, 13:20
@PeterKremsner

STM32F0 was genau ist das? Wo bekomm ich ihn her?Es tut mir leid das ich so viele Fragen stelle das liegt daran das ich normaler weise der Typ bin dem gesagt wird das hat so und so zu laufen über die und die Schnittstelle mach das. Ich hab mich mit dem Hardware Technischen noch nie so richtig auseinander gesetzt die Schaltpläne kann ich lesen und verstehen aber welche chips und welche boards ich wie verwenden soll geht über mein aktuelles wissen hinaus. DANKE FÜR EURE HILFE :D

PeterKremsner  03.10.2018, 12:07
@Sp4ghett1C0de

Den STM32F0 bekommst du bei jedem Elektronik Distributor, also Farnell, Rs, Mouser, Digikey etc.

https://at.farnell.com/stmicroelectronics/stm32f0discovery/evaluationskit-f0-mit-st-link/dp/2096251?st=stm32f0

Das wäre ein Evaluationboard für den Prozessor.

USB Schnittstelle ist bei dem jetzt nicht herausgeführt sondern nur der Programmer du kannst aber ein USB Kabel abschneiden und zum Test D+ und D- mit den entsprechenden Pins am Board verbinden. Wenn du Hardware dafür entwickelst solltest du natürlich schon die USB Specs einhalten.

Allerdings als Anmerkung dazu:

Den STM32 gibt es nur in LQFP BGA und ähnlichen Gehäusen, damit du damit ein Produkt machen kannst muss dir also erstmal jemand eine Leiterplatte erstellen und die Schaltung löten. Zudem musst du auch selbst die Beschaltung für dich entwickeln können.

Von der Komplexität sind die F0 bzw alle µC auf ARM Cortex Basis weitaus komplexer als die AVR, dafür haben sie mehr Rechenleistung und oftmals ein größeres Set an Peripherie.

Wenns von der Hardware einfach bleiben muss, dann wirst du wohl oder übel einen Atmega zb Atmega328 im DIP Gehäuse verwenden müssen und die Kommunikation über UART - FT232 - USB machen müssen.

Oder du verwendest einen größeren AVR bzw einen ATXmega mit nativer USB Schnittstelle, allerdings bin ich mir nicht sicher wie viel aufwand es ist da einen Virtual Com Port Treiber für Windows und Linux zu bekommen. An dieser Stelle möchte ich aber anmerken, dass auch die größeren AVR von der Hardwarekomplexität in die Richtung der STM32er geht.

Sp4ghett1C0de 
Beitragsersteller
 01.10.2018, 12:53

Da das was ich vorhabe nicht rechen intensiv ist finde ich die V-USB Lösung ganz gut. Das Problem ist an V-USB das das unter GPL läuft was mir nicht ganz so passt gibt es da vielleicht andere Projekte? Wenn ich gar nichts finde werde ich den FT232RL benutzen. kennst du ein FT232RL attiny85 USB Projekt bei dem ich mir was abschauen kann? Ich bin was Microcontroller angeht ein absoluter Anfänger.

PeterKremsner  01.10.2018, 13:08
@Sp4ghett1C0de
das das unter GPL läuft was mir nicht ganz so passt gibt es da vielleicht andere Projekte?

Mir sind keine anderen Projekte bekannt, es gab mal was von Igor Cesko aber da findet man nichts mehr. Lizenz war aber denke ich mal die selbe.

Welches Problem hast du denn mit der GPL? Sofern du nur für dich Privat etwas machst gibt es da gar keine Probleme, es sei denn du planst ein kommerzielles Projekt.

kennst du ein FT232RL attiny85 USB Projekt bei dem ich mir was abschauen kann?

Nein, aber die Anbindung des FT232RL ist unabhängig vom µC immer gleich und im Datenblatt des Chips beschrieben.

Ich denke mal der Arduino Nano verwendet ebenfalls den FT232RL. Zwar nicht den Attiny aber einen anderen AVR.

Sp4ghett1C0de 
Beitragsersteller
 01.10.2018, 13:15
@PeterKremsner
kommerzielles Projekt.

Mein Ziel. Ich habe ein fast fertiges Projekt inklusive Software und Extensions den Controller,Firmware etc... hab ich nicht selbst gemacht sondern bezogen. (https://www.blinkstick.com/) Da das Projekt aber unter CC lizenziert ist kann ich das nicht weiter verwenden und deswegen versuche ich ein eigenes Design und Firmware zu machen Firmware läuft auch schon fehlt nur der USB Input.

PeterKremsner  01.10.2018, 13:37
@Sp4ghett1C0de

Dann nimm den FT232RL.

Die default VID und PID kannst du hier beibehalten und du musst dir keine Produkt oder Vendor ID kaufen. Nachteil ist hald, dass dein Produkt im Windows Gerätemanager immer als FTDI Chip angezeigt wird und es daher keine Möglichkeit für ein Programm am PC gibt dein Gerät zu erkennen wenn andere FTDI Chips angeschlossen sind. Der Nutzer muss dann eben zur USB Kommunikation immer selbst den richtigen USB Port heraus finden.

Oder du nimmst die Kommerzielle Lizenz von V-USB da ist ein eindeutiges VID/PID Paar dabei.

Sp4ghett1C0de 
Beitragsersteller
 01.10.2018, 13:56
@PeterKremsner
FT232RL

Wo finde ich den(kauf link)? Und wie benutz ich ihn ist da bootloader etc.. schon drauf? Wie verbinde ich den mit dem Attiny85? Sorry aber ich finde nichts hilfreiches

PeterKremsner  02.10.2018, 12:15
@PeterKremsner

Btw wenn du selbst Hardware erstellen willst musst du dich schon etwas in die Elektronik und die Verwendung von ICs einlesen. Das Datenblatt des FT232 solltest du dir eben komplett durchlesen damit du den Chip kennst.

Ebenso wie die wesentlichen Stellen im Datenblatt des Attiny:

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf

ZB die USI, hier ist eine anleitung wie du die USI als UART verwendest:

http://www.technoblogy.com/show?RPY

Ich möchte hierbei allerdings anmerken, dass der Attiny anscheinend keine wirkliche UART hat also auch die Lösung mittels FTDI verkommt da eher zu einem "Trick". Muss es denn ein Attiny sein? Wenn nein kannst du auch einen größeren AVR verwenden zB den Atmega328. Den gibts auch in einem DIP Gehäuse.

Der hätte dann auch eine Hardware UART drinnen, als Oszillator solltest du dann aber einen Baudratenquarz vorsehen.