-
        

Ergebnis 1 bis 10 von 10

Thema: Kommunikation µP - PC via USB!

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.01.2010
    Beiträge
    20

    Kommunikation µP - PC via USB!

    Anzeige

    Hallo!
    Bin ein Anfänger der ein µP Board hat (Mega 32L) und ein wenig programmieren kann in C im AVR-Studio!
    Nun möchte ich einmal versuchen, einen Portpin am µP auszulesen und am PC anzeigen zu lassen. Zum Bsp. mittels Text "Port-Pin 1 gesetzt!"
    Wie gehe ich da vor?
    Was braucht man an HW & SW um dieses Projekt zu verwirklichen?
    Oder ist das zu schwierig für einen Anfänger, oder gibt es bessere Lösungen?
    Danke schon mal vorab

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Du brauchst eine UART - USB Bridge

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es reicht eine USB - UART brücke (z.B. mit FT232). Allerdings ist hier ein selbstbau schon etwas schwieriger.

    Es gibt aber günstig fertige USB-RS232 Adapter. Ist zwar ein Umweg über RS232, aber etwas einfacher. Der Übergang UART-RS232 ist relativ einfach, z.B. mit einem IC max232 oder auch, nicht ganz normgerecht mit 2 Transistoren. Viel µC Boards haben auch schon den max232 mit drauf.

    An software braucht man da eigentlich nichts besonderes. Am PC ein Terminalprogramm wie Hyperterm (ist bei Windows mit dabei).

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557

    Re: Kommunikation µP - PC via USB!

    Zitat Zitat von madangdive
    ... versuchen, einen Portpin am µP auszulesen und am PC anzeigen zu lassen ...
    Die erste Übung ist also überhaupt etwas vom Controller zu seinem UART zu senden. Dafür gibts hier im Forum etliche Code-Beispiele.

    Zitat Zitat von madangdive
    ... Was braucht man an HW & SW um dieses Projekt zu verwirklichen? Oder ist das zu schwierig für einen Anfänger, oder gibt es bessere Lösungen? ...
    Es gibt etliche Controller der ATMELFamilie mit UART - das ist eine "kleine" RS232 , eben auf TTL-Niveau. Und mit TTL kann USB "im Prinzip" was anfangen, aber das Protokoll passt nicht.

    Möglichkeiten sind diese schön dokumentierte Lösung. So etwas Ähnliches

    ................
    ................Genaueres durch Link im Bild.

    habe ich auch gemacht. Nachteil: nicht wirklich anfängergerecht - man sollte schon eher anspruchsvoll (feine Dinge) löten können.

    Eine der vielen möglichen Lösungen ist sehr einfach: Du nimmst Dir den LAB von christian. Das ist eigentlich ein Programmierwerkzeug zum Flashen von Controllern, also etwas, das Du sowieso brauchst. Vorteil ist der recht niedrige Preis - aber vor allem: die vielfältigen zusätzlichen Möglichkeiten. Eine davon: Du kannst das Ding als UART-Transceiver benutzen - kannst also "RS232"-Daten vom Controller empfangen oder vom PC an den Controller senden. Und das läuft bei mir auch wirklich *ggg*.

    Schließlich kann man sich auch ne Platine mit einem max232 bauen. Dazu gibts hier ein Beispiel - siehe Schaltplan rechts im Link. Oder hier eine beispielhafte, separate Platine. Dieses letzte Beispiel ist von der Art "Anfängerarbeit". Du hast die Auswahl.
    Ciao sagt der JoeamBerg

  6. #6
    Oder direkt an USB drangehauen

    Schau dir mal die OBDev Seite an! Es sind auch einige Beispiele vorhanden. Da erspart man sich den ganzen Ärger mit dem 232.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    02.01.2010
    Beiträge
    20
    Hi Draconix!
    So einfach wie möglich wäre das Beste!
    VUSB klingt gut! Allerdings möchte ich mit meinem µP-Port (M32L, 3 Taster, 3 Led's eine Kommunikation aufbauen. Wenn ich es richtig verstehe, kann ich die USB direkt an den Mega 32L anschließen. Nur ein paar R,L,C's und schon wäre die Komm. fertig bereit.
    Wie aufwendig sie dann das Programmieren auf der µP Seite im AVR-Studio in C?
    Danke Mad

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    02.01.2010
    Beiträge
    20
    Hi Oberallgeier!
    Danke für deine ausführlichen Info's!
    Das mit dem "LAB von Christian" gefällt mir gut. Für meine selbstgebaute Platine (M32L + 3 Taster + 3 Led's) die im via AVR-Studio in C über den mk II von Atmel programmiere, wäre das von Christian nicht schlecht!

    Kann ich dann sozusagen einen Pin vom µP auslesen --> diese Bit dann via USB AVR-Lab dann zum PC bringen und dann anzeigen lassen. Mit welchen Programm am PC geht das? Gibt es ein Programm, das mir die Daten, die vom µP kommen aufbereitet. Z.B: wenn das Bit auf High steht, der Text am PC "erster Eingang gesetzt" angezeigt wird? Oder ist das sehr schwierig, für mich als Anfänger zu realisieren!
    Danke
    vG Mad

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.02.2009
    Beiträge
    195
    Hi,

    Du kannst vom PC entweder die Pins direkt mit iener programmiersprache über eine DLL auslesen/ setzen, oder das selbe im USB AVR Lab Tool. Dort hast du für jeden Ausgang eine Checkbox mit der du die Pins allerdings nur setzen kannst. Ist aber auch z.b. ein Beispiel für Lazarus dabei das du einfach umbasteln kannst um die Pins selbst zu setzen / lesen.

    lg
    Christian

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    02.01.2010
    Beiträge
    20

    USB-AVR-Lab-Tool (Probleme beim Ansteuern einer LED)

    Hi,
    hab mir den USB-AVR-Lab besorgt und bin gerade beim Testen.
    Nur so ganz funktioniert es noch nicht! Habe im AVR-Studio für den Mega 8 ein kleine Programm (Toggle PB3) geschrieben und möchte dieses hex-File mit dem USB-AVR-Lab-Tool V.5.03 in den µP übertragen. Vorgang: USB anstecken--> Progr. (USB-AVR-Lab-Tool) aufrufen --> bei "Benutzerfirmware" das hex-File hereinholen --> programmieren --> Start, und es sollte laufen.

    oder bin ich da ganz falsch?
    Danke Mad

    PS: das Programm lt. Experiment1 von Christian Ulrich

    #include "avrlab.h"
    #include "gpio.h"

    //#define SIMULATION

    int main(void)
    {
    AvrLabInit();

    //your code goes here

    PortB.DataDirection.Bit3 = DataDirectionOutput;
    PortB.Output.Bit3 = 1;

    while (1)
    {

    //or here


    // _delay_us(100);

    PORTB ^= (1 << PB3); //Bit B3 toggeln

    AvrLabPoll(); //must be called at least every 40 ms
    //muss mindestens alle 40 ms aufgerufen werden

    }
    }

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •