PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommunikation µP - PC via USB!



madangdive
02.01.2010, 15:44
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

KingTobi
02.01.2010, 16:06
Du brauchst eine UART - USB Bridge

Besserwessi
02.01.2010, 17:11
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).

BurningWave
02.01.2010, 17:13
Z.B. sowas wie den CP2102 (https://www.silabs.com/Support%20Documents/TechnicalDocs/cp2102.pdf)

oberallgeier
02.01.2010, 17:40
... 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.


... 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 (https://www.roboternetz.de/phpBB2/viewtopic.php?t=19054&sid=4f98c508ceb9fe20508669d0c9f20418). So etwas Ähnliches

................http://oberallgeier.ob.funpic.de/USB232_x76_kl.jpg (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=473646&sid=1c220d58bbba07ac134196a7ad8d0000#473646)
................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. (http://shop.ullihome.de/catalog/product_info.php/products_id/67) 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 (http://www.rn-wissen.de/index.php/RN-Control)- siehe Schaltplan rechts im Link. Oder hier eine beispielhafte, (https://www.roboternetz.de/phpBB2/viewtopic.php?p=378165#378165&sid=4f98c508ceb9fe20508669d0c9f20418) separate Platine. Dieses letzte Beispiel ist von der Art "Anfängerarbeit". Du hast die Auswahl.

Draconix
02.01.2010, 23:34
Oder direkt an USB drangehauen ;)

Schau dir mal die OBDev (http://www.obdev.at/products/vusb/index-de.html) Seite an! Es sind auch einige Beispiele vorhanden. Da erspart man sich den ganzen Ärger mit dem 232.

madangdive
04.01.2010, 18:07
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

madangdive
04.01.2010, 19:10
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

christian_u
05.01.2010, 20:34
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

madangdive
28.01.2010, 09:16
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

}
}