UART--> RS232 --> PC (Putty oder Termite)

Gast #4350082
Lesenswert?

Hallo,

ich habe folgendes Programm in BASCOM AVR erstell:
1
$regfile = "m8def.dat"
2
$crystal = 8000000
3
$baud = 9200
4

5

6
Config Portd.5 = Output
7

8
Dim Empfangen As String * 255
9

10
Do
11

12
   Empfangen = ""
13
   Input Empfangen
14

15
   Select Case Empfangen
16
      Case "0"
17
         Portd.5 = 0
18
         Print "LED ausgeschalet!"
19
      Case "1"
20
         Portd.5 = 1
21
         Print "LED eingeschalet!"
22
      End Select
23

24
Loop
25

26
End

Habe über Pony Prog das Fuse Bit CKOPT im ATMEGA 8 gesetzt. Da ich das 
Pollin Board nutze, wird nun der ATMEGA 8 mit 16MHZ Quarz betrieben.

Hatte im Forum gelesen, dass bei dem interen Takt die  Frequenz nicht 
genau genug ist und es daher Probleme geben kann.

Die erste Frage die ich habe, hoffe sie ist nicht zu peinlich,

Ich habe ein Modemkabel zur Programmierung über die ISP Schnittstelle.
Die Verkabelung ist 1:1. Sprich keine vertauschten Leitungen wie beim 
Null Modem Kabel.

Dieses Kabel kann ich auch für die RS232 Schnittstelle nutzen?

Wo könnte der Fehler liegen,dass ich mit Putty oder Termite keine 
Verbindung zum Pollin Board bekomme?

Bei Putty bekomme ich nur Straffierungen angezeigt. Laut dem Forum 
sollte dies an dem internen Takt und der Baud liegen. Aber ich denke das 
habe ich richtig eingestellt.

Man muss anmerken, dass ich noch einen USB --> RS232 Adapter nutze.

Kann dies zu Problemen führen? Der Adapter ist von Digitus.

Hoffe ihr könnt mir helfen.
Gast #4350126
Lesenswert?

Hallo,

habe den Code nun wie folgt verändert
1
$regfile = "m8def.dat"
2
$crystal = 16000000
3
$hwstack=40
4
$swstack=16
5
$framesize = 32
6
$baud = 9200
7

8

9
Config Portd.5 = Output
10

11
Dim Empfangen As String * 255
12

13
Do
14

15
   Empfangen = ""
16
   Input Empfangen
17

18
   Select Case Empfangen
19
      Case "0"
20
         Portd.5 = 0
21
         Print "LED ausgeschalet!"
22
      Case "1"
23
         Portd.5 = 1
24
         Print "LED eingeschalet!"
25
      End Select
26

27
Loop
28

29
End

Funktioniert trotzdem noch nicht.

termite kann nicht verbinden und Putty reagiert garnicht
Gast #4350188
Lesenswert?

Oh Mann,

habe es gelöst.

Fuse Bits können ja auch invertiert sein.

Nutze nun den internen Takt von 4MHZ.

Unter den folgenden Einstellungen läuft die Kommunikation zum UART
1
$regfile = "m8def.dat"
2
$crystal = 1000000
3
$hwstack=40
4
$swstack=16
5
$framesize = 32
6
$baud = 2400
7

8

9
Config Portd.5 = Output
10

11
Dim Empfangen As String * 255
12

13
Do
14

15
   Empfangen = ""
16
   Input Empfangen
17

18
   Select Case Empfangen
19
      Case "0"
20
         Portd.5 = 0
21
         Print "LED ausgeschalet!"
22
      Case "1"
23
         Portd.5 = 1
24
         Print "LED eingeschalet!"
25
      End Select
26

27
Loop
28

29
End

Musste mich auf 1MHZ begrenzen mit Baud 2400
#4350194
Lesenswert?

Wie bist du denn drauf? Ein Durcheinander nach dem nächsten.
Jetzt verwurstet du wieder 1MHz mit 4MHz...

Mit dem internen Takt wirst du bei UART-Kommunikation auf Dauer nicht 
froh, zumindest nicht auf die primitive Art von konstanter Frequenz 
auszugehen, da gibts hier ganz viel drüber zu lesen.

Hat der gegenüber eine konstante Bauddrate, kann man sich daran 
orientieren und nachregeln (via OSCAL und/oder Baudrate-Teiler). ABer 
davon scheinst du meilenweit weg zu sein.
Gast #4350334
Lesenswert?

Hi,

ist halt noch alles ein bißchen neu.

BASCOM ist noch relativ neu und dann die Funktion UART mit Fuse Bit.

Ich habe die Taktfrequenz soweit reduziert, bis es funktioniert.

Denn ich war mir nicht sicher, ob eventuell der USB-RS232 Adapter einen 
Einfluss hat.

Da ich aber immer gerne dazu lerne, anbei ein Screenshot von den 
Fuse-Bits,

vielleicht lese ich diese noch falsch und habe nur 1MHZ als 
Taktfrequenz.

Vielleich kannst du mir dieses erklären.

Wie muss ich das im Datenblatt deuten:

CKOPT =1 --> unprogrammiert oder programmiert?

Analog dazu die Fuse im Controller:

checked --> programmiert--> Bit =0;

Heißt das im Datenblatt die 1 =  programmiert  oder Bit = 1 --> was 
unprogrammiert bedeutet?

Ich gebe dir Recht dass es mehr Sinn macht mit einem externen Takt in 
Zukunt zu arbeiten.

Gruß,

Knebel
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren