Forum: Mikrocontroller und Digitale Elektronik Attiny2313 + RS232 + VB6


von Christoph S. (christoph_s94)


Lesenswert?

hallo zusammen,

ich habe mir auf einer lochrasterplatine eine versuchsschaltung mit 
einem max232, einem attiny2313 und 2 leds gebastlt


http://www.mikrocontroller.net/wikifiles/e/ee/AVR-RS232.png

nach dem plan hab ich den max beschalten

vom pc zum board benutze ich einen usb-seriell adapter

wenn ich jetzt in bascom mit dem terminalemulator den port öffne, liest 
er die zahlen (zB 1,2,3,4,5,6,7,8,9,0) richtig aus
wenn ich jetzt jedoch in VB6 und folgendem code-:


[code]
Private Sub Form_Load()
  txtDisplay.Text = "" 'Enable Port
  MSComm1.PortOpen = True 'Open port
End Sub

Private Sub tmrTimer_Timer()
  txtDisplay.Text = MSComm1.Input
End Sub

[/ code]

Bascom code:

[basic]

$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 32
$swstack = 8
$framesize = 16
$baud = 9600


Config Clockdiv = 2


Config Portb.0 = Output
Portb.0 = 1
Dim X As Word

X = 0

Do

   Portb.0 = 0
   Waitms 500
   Portb.0 = 1
   X = X + 1
   Waitms 500
   Print X

Loop

End
[/basic]

auslesen will kommt immer "error reading comm device" obwohl es wie 
gesagt in bascom geht.

ich benutze K E I N E N Quarz!!! ist auf der endgültigen platine kein 
platz mehr!

kann mir jmd helfen bitte?!


LG christoph

von Till (Gast)


Lesenswert?

Versuchs erst mal ohne den Controller mit nem Hyperterm und Brücke Pin 
2/3. an der rs232.

Dann solltest du ein Echo erhalten.

Tipp 0 Modem Kabel

Der Fehler liegt eher an dem Konstrukt USB seriell und deine 
Kabelbelegung.

von wendelsberg (Gast)


Lesenswert?

Christoph S. schrieb:
> ich benutze K E I N E N Quarz!!!

Und wiso erzaehlst Du dem Compiler dann das:

Christoph S. schrieb:
> $crystal = 4000000

P.S. Groß- und Kleinschreibung verwenden

wendelsberg

von Christoph S. (christoph_s94)


Lesenswert?

@Till:
das mit der Brücke habe ich versucht. Geht aber auch nicht!
und das nullmodemkabel hab ich auch schon versucht

Ich MUSS einen USB adapter verwenden, da das board dann an einem acer 
aspire one funktionieren muss!

@wendelsberg:
was müsste ich ihm denn sagen bei $crystal ?


LG und danke

von Till (Gast)


Lesenswert?

Na wenn bei Brückung kein Echo kommt ,liegt der Fehler nicht am AVR.

Ist das zu schwer für Dich zu verstehen?

von Sven (Gast)


Lesenswert?

wendelsberg schrieb:
> Christoph S. schrieb:
>> ich benutze K E I N E N Quarz!!!
>
> Und wiso erzaehlst Du dem Compiler dann das:
>
> Christoph S. schrieb:
>> $crystal = 4000000

Weil Bascom auch ohne Externen Quarz wissen muss wie schnell der Avr 
arbeitet.
Ist aber die angabe $crystal = 4000000 richtig ? Im originalzustand ist 
ein 2313 auf 1 Mhz eingestellt.

Lade dir mal ein simples Terminalprogramm runter zb Htherm. Damit kannst 
du Ohne Visual Basic schonmal die Rs232 testen.
http://www.heise.de/download/hterm.html

Wenn es damit und der Brücke pin 2und3 am Usb2rs232 noch kein Echo gibt 
hast du ein anderes Problem Treiber z.b.

von Christoph S. (Gast)


Lesenswert?

hey

mit der brücke bekomme ich kein echo mit einem terminalprog schon ( 
iwelche undefinierbaren buchstaben zahl kombinationen).
(https://sites.google.com/site/terminalbpp/)
ok ich stelle ihn mal auf 1mhz wieder um.

von Heinz (Gast)


Lesenswert?

Du scheinst es nicht zu begreifen.

Till hat Dir doch schon dein Problem erläutert.
Du suchst an der völlig falschen Ecke.

Beende erst mal die Baustelle PC/ rs232

von Sven (Gast)


Lesenswert?

Nochmal langsam.
Dein Avr schaltest du erstml aus und machst ihn von deinem Comport ab.
Dann alle Programme welche den Com stören beenden.

Terminalprogramm öffnen.
Am usb com adapter pin 2 und 3 verbinden
Im terminal programm etwas senden und gucken ob du genau das auch im 
Terminalprogramm zurückbekommst.

Nur so kannst du testen ob dein Com wirklich arbeitet.
Wenn du dann da dein Echo bekommst machst du den gleichen test mit dem 
Max232 am comport nochmal( dann bitte die verbindung txd rxd nach dem 
)max232 um zu prüfen ob auch dieser arbeitet.
Wenn auch das klappt kannst du deinen Avr anschlißen und gucken ob 
dieser arbeitet.

von J. L. (lindenbaum)


Lesenswert?

Christoph S. schrieb:
> [code]
> Private Sub Form_Load()
>   txtDisplay.Text = "" 'Enable Port
>   MSComm1.PortOpen = True 'Open port
> End Sub
>
> Private Sub tmrTimer_Timer()
>   txtDisplay.Text = MSComm1.Input
> End Sub
>
> [/ code]

An welcher Stelle schmeißt Visual Basic den Error? Beim Öffnen des Ports 
oder beim Auslesen des Empfangspuffers?

Im Falle von letzterem gibt (gab?) es bei VB6 mal Probleme mit nicht von 
Windows bereitgestellten RS232-Treibern, eventuell trifft das auch auf 
deinen USB-Adapter zu. Hier kann es zu der von dir beschriebenen 
Fehlermeldung kommen (Error 8020 bzw. 'error reading comm device') wenn 
versucht wird den Empfangspuffer mit 'Input' auszulesen, dieser aber 
leer ist.

von Christoph S. (christoph_s94)


Lesenswert?

hey

Er schimpft beim öffnen des empfangsbuffers.
wie kann ich rausfinden, dass das mein problem ist?

also mit einem Backloop-Stecker hab ich gerade versucht, funktioniert es 
einwandfrei!

Also @Till es liegt nicht am Port sondern an VB oder dem µC





ach ja fast vergessen, so sieht das ausgegebene aus :"71 79 0D 0A"
Lg

: Bearbeitet durch User
von J. L. (lindenbaum)


Lesenswert?

Christoph S. schrieb:
> Er schimpft beim öffnen des empfangsbuffers.
> wie kann ich rausfinden, dass das mein problem ist?

Kann ich dir leider auch nicht sagen, mich hat das ganze nur an nen 
ollen Artikel von Microsoft erinnert 
(http://support.microsoft.com/kb/318784/en-us) - scheint ja auch 
irgendwie zu passen. Leider habe ich VB6 nie genutzt, ich frage mich 
auch grad ob es wirklich so sinnvoll ist eine Sprache die seit 15 Jahren 
nicht mehr gepflegt (ist doch irgendwann 1998 rausgekommen oder ?) wird 
zu verwenden.
Kannst du vor Verwendung der .Input-Methode nicht irgendwie prüfen ob 
Bytes im Puffer sind und dann nur Lesen wenn auch wirklich was da ist? 
Damit könnte man zumindest den Fehler aus dem Microsoft-Artikel 
ausschließen. Ansonsten vergrößer doch mal den Zeitwert des Timers mal 
auf z.B. das doppelte dessen was du im µC wartest.

: Bearbeitet durch User
von hans (Gast)


Lesenswert?

Hallo Christoph,

schau mal hier nach:

http://www.activevb.de/startseite/index.html

Besonderst:

http://www.activevb.de/tutorials/tut_com/com.html

Ausreichend erklärt und laufähig.

Hans

von Till (Gast)


Lesenswert?

Flow control disablen (property com Objekt) oder schnittstellenpins 
richtig setzen (0-Modem)

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
Noch kein Account? Hier anmelden.