Wie USB an Atmega1281 ?

Knickohr

BASCOM-Experte
29. Feb. 2008
465
0
16
Sprachen
Hallo,

ich weiß nicht, ob das hier in der richtigen Kategorie ist. Aber wie bekomme ich die USB-Schnittstelle mit einem 1281 zum laufen. Ich möchte gerne Logdaten über ein USB-Kabel an den PC senden oder anders herum, vom PC die Logdaten auslesen.

Ist das überhaupt möglich ? Braucht man noch spezielle ICs ?

Thomas
 
Hallo Thomas,

der ATmega1281 hat kein USB-Interface, du müsstest hier also entweder auf einen AVR mit USB umsteigen (siehe AVR-PRAXiS-Database) oder eine UART-USB-Bridge verwenden.

Hier gibt es zum Beispiel Lösungen von FTDI oder Silabs. (Im Shop haben wir ein ATmega128-Mikrocontrollermodul, welches den CP2102 von Silabs nutzt).

Bei FTDI und Silabs kann man über eine virtuelle COM-Schnittstelle kommunizieren, das heißt es wird eine COM-Schnittstelle emuliert. Eine Kommunikation via direktem USB-Treiber (DLL) ist ebenfalls möglich.

Am besten du schaust dir einmal die Seiten der Hersteller an, da findest du eigentlich alle Informationen die du benötigst.

Grüße,
Dirk
 
Hallo Dirk,

habe gerade die Datenblätter durchgewälzt. So wie ich das sehe, ist der Atmega1281 fast pinkompatibel mit dem AT90USB1287. Ich muß noch rausfinden, was der Unterschied zwischen 1286 und 1287 ist. Der 1287 wird von BASCOM unterstützt. Leider bring BASCOM eine Fehlermeldung beim compilieren. Ist keine unbekannte Meldung :
Error : 232 Line : 275 Not supported for the selected micro , in File : D:\ASTRO WETTERSTATION\BASCOM\PROZESSOR\128K\WETTER.BAS

Die kommt mir beim Atmega645 auch. Da habe ich bereits ein Ticket an MCS geschrieben. Das Problem ist immer das gleiche. Die Softclock wird nicht unterstützt :

Config Clock = Soft , Gosub = Sectic

Ich hoffe, MCS wird das Problem schnell lösen.

Ansonsten könnte ich ersatzlos den 1281 gegen den 1287 austauschen. Nun ja, PortG und PortE sind umbenannt, aber macht nix, wie die nun wirklich heißen. Glück gehabt, ich habe genau die richtigen Pins bei meiner Wetterstation noch frei gelassen. So ist die Änderung des Layouts minimal.

Ähmmm, wenn ich richtig gelesen habe, muß ich dem 1287 ein 8MHz-Quarz spendieren. USB läuft anscheinend nicht über den internen RC-Oszillator ?

Nun muß halt erst MCS den Softclock-Fehler beseitigen.

Thomas
 
Hallo Thomas,

ich kenne mich mit Bascom leider nicht so aus. Gibt es denn bei Bascom eine USB-Software-Lösung? Alleine die USB-Hardware des ATmega wird dir nicht reichen, hier ist noch relativ viel Software im AVR nötig. Es gibt von Atmel Bespiele in C (siehe USBKey). Für die Übertragung der Daten wäre die HID Klasse geeignet.

Wenn du eine ganz einfache und schnelle Lösung brauchst und keine großen Stückzahlen erreichst, könntest du auch einfach ein USB-nach-COM (RS232) Computerkabel verwenden.

Grüße,
Dirk
 
Guten Abend.

Au weia, ist das ein Durcheinander ! :eek: Ich hatte eigentlich gedacht, die Programmierschlacht wäre erledingt, aber USB ist noch viel schlimmer. Was soll das eigentlich mit den doofen Lizenzen ? Wird man da wieder mal für einen Standard abgezockt ? Naja, so wie das aussieht, lasse ich wohl eher die Finger davon. Es ist zwar ein Beispiel in BASCOM dabei, ist mir aber zu stressig. Das Datenlogging per SD-Karte funktioniert ja prima. Auch wenn er bis jetzt nur eine SanDisk 256MB Karte erkennt und beschreibt.

Thomas
 
Hallo !
Was soll das eigentlich mit den doofen Lizenzen ? Wird man da wieder mal für einen Standard abgezockt ?
Das ist genau so, wie bei den MAC-Adressen für Netzwerkkarten.
Für die Erkennung der Geräte wird eine eindeutige ID benötigt. Und der,
der diese IDs verwaltet, macht das nicht für umsonst :D

Gruß
Dino
 
Guten Abend,

ich habe übers Wochenende ein wenig mit dem FT232 theoretisiert. Sollte das wirklich so einfach sein ? Einfach an TxD und RxD den Atmega dran und kreuzweise mit dem FT232 verbinden. Der FT232R braucht, wenn ich das richtig verstanden habe, keinen Quarz und das interne EPROM ist anscheinend für meine Bedürfnisse richtig konfiguriert. Etwas Kopfzerbrechen hat mir die Versorgung des FT232 bereitet. Er soll Buspowered sein, aber der Pegel der I/Os sollte sich der Akkuspannung und und somit des Atmels anpassen. Ich denke, das es so richtig verdrahtet ist.

Hat schon jemand Erfahrung mit dem FT232 gemacht ? Sieht jemand irgendwelche groben Fehler im Schaltplan ? Braucht man die Handshake-Leitungen unbedingt ? Ich denke (hoffentlich) nicht.

Thomas
 

Anhänge

  • Bild.gif
    Bild.gif
    97,3 KB · Aufrufe: 33
Hallo Thomas,

mit dem FT232 habe ich selber noch nicht gearbeitet, ich verwende den Silabs CP2102, ich gehe aber mal davon aus, dass die sehr ähnlich sind.

Auch wenn der FT232 buspowered ist (5V VBUS vom USB), wird er intern bestimmt mit 3V oder 3,3V versorgt, das heisst die Logikpegel für Low und High orientieren sich nach der internen Versorgungsspannung. Ich vermute auch, dass alle Pins zum Target, also der UART und RESET\, 5V tolerant sind, das ist wichtig, wenn dein AVR mit 5V VCC läuft.

Versorgst du den AVR mit weniger als die interne Versorgungsspannung des FT232, kann es Probleme geben, da der AVR keine höhere Spannung als sein VCC an IO-Pins toleriert (im Datenblatt: Absolute maximum ratings).

Ist die Betriebsspannung des AVR gleich oder größer als die interne Betriebsspannung des FT232, dürfte es keine Probleme geben. Der AVR erkennt ein Low bei etwa 0,3*VCC (oder kleiner) und ein High bei etwa 0,7*VCC (oder höher), der zweite Wert ist hier kritisch, da der FT232 sein TXD nur bis zur seiner internen Betriebsspannung treiben kann.
Von AVR in Richtung FT232 gibt es dann keine Probleme, wenn der FT232 höhre Spannungen toleriert. Aber wie gesagt, ob der das macht, weiss ich nicht, ich vermute es zwar, aber da müsstest du nocheinmal in das Datenblatt sehen.

Ich vermute auch, dass man asynchron ohne Hanshake-Signale übertragen kann, aber hier auch mal ins Datenblatt schauen, oder vielleicht weiss hier ja noch jemand besser bescheid.

Grüße,
Dirk
 
Hallo Dirk,

also ich habe vor, den FT232 buspowered zu versorgen, da er doch relativ viel Strom zieht und somit nur aktiv wäre, wenn ein USB-Kabel dran steckt. Ansonsten zieht der Reset-Eingang ihn in den Tristate-Modus, womit auch alle Ein- und Ausgänge des FT232 deaktiviert wären.

Der Atmel wird mit 3,3 bis 4,2V versorgt, also von einem LiPo-Akku. Dieser wird zwar über den USB geladen und ist somit auch die meißte Zeit am oberen Ende seine Spannung, aber kann auch mal auf 3,3V absacken. Halt je nach Akkuladung.

Der FT232 hat einen Versorgungspin für die UART-Schnittstelle (VCCIO). Mit dem kann man die Logikpegel der Ein- Ausgänge anpassen :

"+1.8V to +5.25V supply to the UART Interface and CBUS group pins (1...3, 5, 6, 9...14, 22, 23). In USB bus powered designs connect this pin to 3V3OUT pin to drive out at +3.3V levels, or connect to VCC to drive out at 5V CMOS level. This pin can also be supplied with an external +1.8V to +2.8V supply in order to drive outputs at lower levels. It should be noted that in this case this supply should originate from the same source as the supply to VCC. This means that in bus powered designs a regulator which is supplied by the +5V on the USB bus should be used."

Ich möchte halt mit diesem Pin die Versorgungspannung des UARTs dem des Atmels anpassen. Das Datenblatt ist leider nicht sehr aufschlußreich. Sind auch nur 40 Seiten, wobei das meiste auf Tabellen, Zeichnungen und dem Index fällt.

Thomas
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)