Hallo zusammen, ich bin dabei mir eine USB - IO Platine zu bauen, genauer gesagt eine Platine über die ich vom PC aus, in diesem Fall Ausgänge, steuern möchte. Dazu habe ich mir den ATtiny2313A vorgenommen, meine Kriterien waren das er über den AVRISP mkII programmierbar ist, wenig kostet, wenig externe Bauteile benötigt und genügend Ausgänge hat (16). Da ich nicht in der Lage bin selber ein USB Interface zu programmieren habe ich mich dafür entschieden den CP2102 als USB - UART Umsetzer zu verwenden. Hier möchte ich gleich dazu sagen das ich normalerweiße die littlefuses eingebaut hätte, jedoch keinen Typ gefunden habe der von einem "normalen" Hersteller wie z.B. Reichelt oder Conrad angeboten wird. Aus diesem Grund habe ich die Dioden im Prototye jetzt erst mal weg gelassen, vielleicht kann mir ja jemand ein Bauteil entfehlen damit ich dieses dann in die final Version einbauen kann. Bei der Ausgangstreiberstufe habe ich mich für einen BSR14 entschieden, hierbei waren die Kriterien wie bei allen Bauteilen das er bei Herstellen wie Reichelt oder Conrad erhältlich ist, dazu sollte er einen Kollektorstrom von mind. 500mA aushalten und dabei eine ausreichende Verstärkung besitzen um nicht die max. 40mA an den Ausgängen des Controllers zu überlasten. Da das meine erste eigene Mikrocontroller Platine ist fände ich es gut wenn jemand erfahrenes mein Projekt mal durchschauen könnte und mir sagen kann ob alles so weit passt oder ob die ganze Schaltung so gar nicht funktionieren kann bevor ich das Layout erstelle und die Platine ätze. In meiner final Version möchte ich ggf. auch noch eine möglichkeit einbauen die Platine extern zu versorgen und nicht nur über USB. Kann mir jemand sagen was ich dabei alles beachten muss? Ich würde das ganze gerne ohne Umschalter realisieren. Kann ich einfach einen Spannungsregler mit 3,3V einbauen und den auf meinen 3,3V Zweig legen oder gibt das Probleme mit der USB Versorgung? Hatte auch schon darüber nachgedacht Dioden in die USB Versorung einzubauen damit kein Strom in Richtung USB fließen kann und irgend welche Bauteile im PC oder sonst wo zerstört. Vielen Dank schon mal für eure Hilfe.
>Dazu habe ich mir den ATtiny2313A vorgenommen, Nimm einen ATMega48, der hat einen USART und nicht son USI Geraffel. Hat nur 8 Pins mehr. >CP2102 als USB - UART Umsetzer zu verwenden. Ich würde einen FT232RL nehmen. Und tu dir selber einen Gefallen und papp nen Quarz an die CPU. Sonst baust du dir ein Schätzeisen.
Wenn es nur darum geht, Bits über USB an- und auszuschalten, ist ein FT2232D (Full Speed), FT2232H (High Speed) oder FT4232H (High Speed, pinkompatibel zum 2232H, aber 4 serielle Ports) sinnvoller. Da entfällt der AVR ganz, der FT2232 kann das alleine, und noch einiges mehr. Über High Speed USB kannst Du >10 MByte/s über diesen Chip rausblasen. Zum Thema "bus-powered vs self-powered" schaust Du einfach ins Datenblatt des FT2232(D/H) bzw FT4232H, da steht das alles drin. Vielleicht möchtest Du noch Optokoppler vor die Ausgangstreiber setzen, um Masseschleifen bei der externen Versorgung der Ausgangstreiber zu unterbinden. Dann wäre der FT2232 bus-powered via USB, die Ausgangstreiber würden von einem externen Netzteil gespeist. Meine FT4232-Platine sieht übrigens so aus. (siehe Bild) fchk
holger schrieb: > Und tu dir selber einen Gefallen und papp nen Quarz an die CPU. > Sonst baust du dir ein Schätzeisen. Quarz lässt sich einsparen, wenn man immer nur die niederwertigen 3 oder 4 Bits eines jeden empfangenen Datenworts nutzt. Dann gibts keine Probleme. Ansonsten wär VUSB hier gut einzusetzen (dann aber mit Quarz): http://www.obdev.at/products/vusb/index-de.html
Das mit dem ATMega48 klingt ganz gut, der ist auch über den AVRISP mkII programmierbar und hat genügend Pin's, vermutlich besitzt er auch noch deutlich mehr zusatzfunktionen was ich jetzt auf die schnelle sehen konnte. Aber was meinst du mit "USART und nicht son USI". Der ATtiny2313A hat doch auch ASART. Das mit dem FT4232H klingt richtig gut aber ist für mich vermutlich nicht so gut geeignet. Einerseits hat nur der Baustein schon einen stattlichen Preis von ca. 8€ (Klar wenn ich meinen Übersetzter und den Controller zusammen reche komme ich auch auf um die 6€) aber ich glaube nicht das er auch PWM Signale ausgeben kann, zumindest nicht der Baustein selber. Vermutlich ist es über hight speed USB auch möglich PWM Signale zu übertragen aber das verfehlt ja den Sinn der ganzen Sache, ich möchte das der Controller die ganze "Arbeit" übernimmt und der PC nur noch sagt Pin1 an, Pin1 PWM 80%, Pin1 Frequenz 40Hz, .... solche Sachen. Edit: VUSB hört sich ganz gut an, es kommt bei meinem Anwendungen ja nicht umbedingt auf µsec an. Durch die Platzersparnis am Übertrager könnte ich sogar einen Quarz entbehren :-) Wie lange dauert denn die Übertragung von z.B. 8bit? Und gibt es irgend welche besonderheiten bei VUSB? Wie wird das ganze angesteuert? Wie eine UART Schnittstelle? Und wie sende/empfange ich das Signal am PC, also brauche ich einen extra Treiber und wenn ja ist dieser auch für Linux erhältlich?
>Quarz lässt sich einsparen, Wenn man den USART verwenden möchte rate ich dringend zu einem Quarz. ATtiny2313A würde ich nicht nehmen wenn das Programm in C geschrieben wird. 128Byte RAM ist da ein Lacher. >VUSB hört sich ganz gut an, Dann nimm lieber gleich einen PIC18F2550. Sparst dir auch den USB-RS232 Baustein.
Was haltet ihr von der Kombination ATMega48 und VUSB? Ich denke das würde meine Anforderungen gut erfüllen, es ist platzsparend, wenig Hardwareaufwand was das ganze auch gleichzeitg güstig macht. Ps: Natürlich werde ich dann auch einen Quarz verwenden.
>Was haltet ihr von der Kombination ATMega48 und VUSB?
Nichts, nimm einen USB-RS232 Wandler und werde glücklich.
So einen proprietären Schrott würde kein erfahrener
Entwickler anfassen.
Klasse und schon sind wir wieder bei der Lösung die ich sowieso schon habe denn RS232 kommt nicht in Frage da die Schnittstelle zu viele PIN's weg nimmt. Dann können wir ja zu meiner ursprünglichen Frage zurück kommen, ich werde den ATtiny2313A gegen einen ATMega48 austauschen da der mehr Speicher bietet und sonst ist die Schaltung in Ordnung?
Samuel M. schrieb: > ich > werde den ATtiny2313A gegen einen ATMega48 austauschen da der mehr > Speicher bietet und sonst ist die Schaltung in Ordnung? Dein Konzept für die Anforderungen ist in Ordnung. Mach mal mit der aktuellen Idee weiter und lass Dich nicht von den Quatschköpfen durcheinander bringen. Viele Grüße
Samuel M. schrieb: > Klasse und schon sind wir wieder bei der Lösung die ich sowieso schon > habe denn RS232 kommt nicht in Frage da die Schnittstelle zu viele PIN's > weg nimmt. ??????
holger schrieb: > Wenn man den USART verwenden möchte rate ich dringend zu einem Quarz. Dazu wird jeder raten, aber notwendig ist es nicht. Siehe oben. Musst dann eben immer die Bits 4 bis 7 wegwerfen, aber das sollte kein Problem sein, du überträgst nur sehr wenig Daten. > ATtiny2313A würde ich nicht nehmen wenn das Programm in C geschrieben > wird. > 128Byte RAM ist da ein Lacher. Da hat holger absolut Recht. Wenn du in C programmieren willst, dann nimm mindestens den ATtiny4313 (nachfolger des ATtiny2313A). Der Neue hat 256 Bytes SRAM und ist lustigerweise billiger als der alte. Ich würd das kleine Programm lieber in Assembler schreiben als in C. Musst du aber selber wissen, geht beides. Samuel M. schrieb: > Dann können wir ja zu meiner ursprünglichen Frage zurück kommen, ich > werde den ATtiny2313A gegen einen ATMega48 austauschen da der mehr > Speicher bietet und sonst ist die Schaltung in Ordnung? Mir gefällt die Idee und die Schaltung, kenn mich aber mit der Elektronik nicht so gut aus. Natürlich kannst du statt des ATtiny4313 auch den ATmega48 nehmen, der bietet 512 Bytes SRAM, aber genauso viel Flash-Speicher wie der Attiny4313. Wenn du wirklich den ATmega48 nimmst und ihn neu einkaufst, empfiehlt sich der neuere ATmega328, der ist genauso groß, praktisch pinkompatibel, hat aber bei allem 8x so viel Speicher und kostet etwas das Gleiche wie der kleine ATmega48.
holger schrieb: > Ich würde einen FT232RL nehmen. > > Und tu dir selber einen Gefallen und papp nen Quarz an die CPU. Der FT232RL könnte dir sonst auch den Takt liefern... Läuft bei mir mit einem Atmega8 und serieller Kommunikation wunderbar. Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.