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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.