Forum: Mikrocontroller und Digitale Elektronik Atmega32A mit MCP2551


von Anselm 6. (anselm68)


Lesenswert?

Hallo, ich habe die oben angeführte Kombination auf einer Platine 
verbunden und versuche nun schon länger mittels eines RS485-USB Adapters 
mit dem PC zu kommunizieren.
Mein Programmcode ist auf das minimalste reduziert:
1
$regfile = "m32def.dat"                                     'verwendeter Prozessor
2
$crystal = 14745600                                         'eingebauter Oszillator
3
$hwstack = 100                                              ' default use 32 for the hardware stack
4
$swstack = 100                                              ' default use 10 for the SW stack
5
$framesize = 100                                            'default Use 40 For The Frame Space
6
'---------------------------------------------------------
7
$baud = 9600
8
Dim A As Byte
9
10
Do
11
12
  A = Ischarwaiting()
13
14
  If A = 1 Then                                           'we got something
15
16
     A = Waitkey()                                         'get it
17
18
    Print "ASCII code " ; A
19
  End If
20
21
Loop Until A = 27
22
23
End                                                         'end program
Das "normale" print funktioniert immer zu 100% einwandfrei,
sobald ich jedoch versuche vom PC aus etwas zu übertragen und es 
zurückzusenden kommt nur Unfug dabei heraus.

Wenn noch nichts gesendet wird, ist der Bus ruhig (Speicheroszi dran).
Auch wenn ich 1 Zeichen vom PC aus sende ist der Bus danach ruhig.
Gebe ich das aber automatisch retour schein ein übersprechen von TX nach 
RX zu geschehen.
Der Bus ist ordentlich terminiert und die Spannungspegel entsprechen dem 
erwarteten.
Ein Kurzschluss Rx-Tx am µC ist auch nicht vorhanden.

Der Beispielcode ist aus der Bascomhilfe und sollte funktionieren.
Andere selbstgeschrieben codes machen das selbe.

Für einen Tip wäre ich sehr dankbar.

Gruß Anselm

Hier das von Hterm reportete lange nachdem der PC nichtmehr sendet.
1
ASCII code 55<\r><\n>
2
ASCII code 57<\r><\n>
3
ASCII code 55<\r><\n>
4
ASCII code 53<\r><\n>
5
ASCII code 55<\r><\n>
6
ASCII code 53<\r><\n>
7
ASCII code 51<\r><\n>
8
ASCII code 53<\r><\n>
9
ASCII code 51<\r><\n>

von H.Joachim S. (crazyhorse)


Lesenswert?

CAN-Treiber als RS485?

von robert (Gast)


Lesenswert?

H.Joachim Seifert schrieb:
> CAN-Treiber als RS485?

Ja, wunderte mich auch.
Der MCP2551 ist ein CAN-Transceiver!?

von Anselm 6. (anselm68)


Lesenswert?

Mein Gedanke dahinter war dass CAN ja auch RS485 aufsetzt und so ein 
Transceiver ausreichen müsste.
CAN ist doch "nur" Ein Protokoll auf dem RS485-Bus, oder?

von Frank K. (fchk)


Lesenswert?

Anselm 68 schrieb:
> Mein Gedanke dahinter war dass CAN ja auch RS485 aufsetzt und so ein
> Transceiver ausreichen müsste.
> CAN ist doch "nur" Ein Protokoll auf dem RS485-Bus, oder?

nein, CAN hat einen ganz anderen Physical Layer und mit 485 nichts 
gemein. Nur wo 485 drauf steht, ist auch 485 drin.

ZB hier

http://www.maximintegrated.com/datasheet/index.mvp/id/1111

fchk

von Anselm 6. (anselm68)


Lesenswert?

Oh verdammt, da habe ich wohl nicht aufgepasst.

Danke

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.