Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 Datenmüll bei tiny2313
EDatabaseError
12.04.2007, 13:33
$crystal = 16000000
$regfile = "ATtiny2313.DAT"
$baud = 9600
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer1_irq
Const Timervorgabe = 3036
Enable Timer1
Enable Interrupts
Config Portd.3 = Output 'LED red
Ledred Alias Portd.3
Config Portd.4 = Output 'LED yellow
Ledyellow Alias Portd.4
Config Portd.5 = Output 'LED green
Ledgreen Alias Portd.5
Do
Print "HALLO"
Waitms 400
Loop
End
Timer1_irq:
Timer1 = Timervorgabe
Toggle Ledred
Return
Ich sende so ständig ein HALLO
am PC bekomme ich aber nur müll (irgentwelche ascii zeichen)
Baudraten stimmen (9600)
Wo könnte sich noch ein Fehler eingeschlichen haben?
Läuft der Tiny auch mit 16MHz, oder mit internen 8MHz? D.h. sind dur Fuses richtig gesetzt?
gomaman
EDatabaseError
12.04.2007, 14:53
das hatten wir schon (anderer Post)
16 MHz stimmen.
Entschuldige bitte die Frage. Den anderen Thread hab ich mir angesehen, ist der Teiler auch ausgeschaltet?
EDatabaseError
12.04.2007, 16:39
Jap. Die Fuses stimmen alle. Teiler aus.
EDatabaseError
12.04.2007, 18:50
Kleines Update...
So sachen wie Print "." funktionieren...sobald es länger wird ist es müll.
Die Eingabe funktioniert auch nicht.
Mfg
Schwingt der Quartz/Schwingkreis auch wirklich it 16MHz? Probier doch mal das ganze mit den internen 8MHz aus. Vielleicht liegt dort der Fehler.
Wenn ich dazu komme progge ich mal einen meiner Tinys. Dieser läuft aber nur mit 8MHz-Quartz.
gomaman
EDatabaseError
12.04.2007, 19:10
Ok ich geh auf internal 8 Mhz runter und meld mich nochmal
EDatabaseError
12.04.2007, 19:12
Was mich eben auch noch auffiel ist:
Ich kann alle prints wegkommentieren ABER sobald ich eine Taste drücke kommt immer noch eine Ausgabe von Müll??? Echo ist aus.
Wenn ich das Progrämmchen anschaue ist es doch eigentlich völlig egal ob du eine Taste drückst oder nicht, die Daten die evtl. über die Schnittstelle zum Tiny gehen interessieren Letzteren doch überhaupt nicht.
Ist evtl. das Terminalprog. Müll?
EDatabaseError
12.04.2007, 19:16
$crystal = 8000000
$regfile = "ATtiny2313.DAT"
$baud = 9600
Echo Off
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer1_irq
On Urxc Isr_data 'On Urxc
Const Timervorgabe = 3036
Enable Urxc
Enable Timer1
Enable Interrupts
Config Portd.3 = Output 'LED red
Ledred Alias Portd.3
Config Portd.4 = Output 'LED yellow
Ledyellow Alias Portd.4
Config Portd.5 = Output 'LED green
Ledgreen Alias Portd.5
Dim B As Byte 'Buffer
Dim S As String * 5 'Buffer
Do
Toggle Ledgreen
If Ucase(s) = "PROG" Then
Print "entering programm mode"
End If
S = ""
Wait 2
Loop
End
Timer1_irq:
Timer1 = Timervorgabe
Toggle Ledred
Return
Isr_data:
Toggle Ledyellow
B = Udr
S = S + Chr(b)
Return
Aktueller Source...
Egal was ich drücke er antwortet sofort mit "Müll"
das Terminal ist ok...habe es mit einem anderen PC getestet,
Mfg
EDatabaseError
13.04.2007, 11:49
Biiittte wergft irgentwelche Gründe in den Raum an was es liegen könnte.
Ich hab hier noch mal das Prog:
$crystal = 8000000
$regfile = "ATtiny2313.DAT"
$baud = 9600
Echo Off
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer1_irq 'On Urxc
Const Timervorgabe = 3036
Enable Timer1
Enable Interrupts
Config Portd.3 = Output 'LED red
Ledred Alias Portd.3
Config Portd.4 = Output 'LED yellow
Ledyellow Alias Portd.4
Config Portd.5 = Output 'LED green
Ledgreen Alias Portd.5
Dim B As Byte 'Buffer
Dim S As String * 5 'Buffer
Do
B = Ischarwaiting()
If B = 1 Then
Input S
End If
Toggle Ledgreen
If Ucase(s) = "PROG" Then
Print "entering programm mode"
End If
S = ""
Wait 2
Loop
End
Timer1_irq:
Timer1 = Timervorgabe
Toggle Ledred
Return
Er sendet mir ständig wirre $08 zu. Auf die PROG abfrage reagiert er uch nicht.
Könnte es evtl. ein Hardwareproblem (treiber o. µC) sein
Mfg
EDatabaseError
13.04.2007, 12:29
UPDATE:
'004.BAS: UART-Empfänger ohne Interrupt
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
'---------------------------------------------------
$regfile = "tiny2313.dat" 'AT90S2313-Deklarationen
$crystal = 8000000 'Quarz: 3.6864 MHz
$baud = 9600 'Baudrate der UART: 9600 Baud
Dim i As Byte
Do
If Ucsra.7 = 1 Then 'Wenn Byte empfangen...
i = UDR 'Byte aus UART auslesen
Select Case i
Case "H"
Print "Hallo AVR"
Case "h"
Print "hallo avr"
Case Else
Print "Unbekannter Befehl"
End Select
End If
Waitms 200
Loop
End
Habe nun zum Spielen einfach mal diesen Code genommen.
ucsra.7 ist immer auf 1 obwohl ich dem Chip nichts sende!
Der String Unbekannter Befehl wird aber korrekt übertragen.
Das senden von "h" oder "H" wird aber nicht beachtet.
So funzt das bei mir
'004.BAS: UART-Empfänger ohne Interrupt
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
'---------------------------------------------------
$regfile = "ATtiny2313.dat" 'Tiny2313-Deklarationen
$crystal = 8000000 'Quarz: 8 MHz
$baud = 9600 'Baudrate der UART: 9600 Baud
Dim i As Byte
Do
If Usr.rxc = 1 Then 'Wenn Byte empfangen...
I = Udr 'Byte aus UART auslesen
Select Case I
Case "H"
Print "Hallo AVR"
Case "h"
Print "hallo avr"
Case Else
Print "Unbekannter Befehl"
End Select
End If
Waitms 200
Loop
End
MfG RoFo88
EDatabaseError
13.04.2007, 14:07
Bei mir nicht...ich bekomme ständig Unbekannter Befehl (Obwohl ich nichts in den Buffer sende)
Was soll ich sagen, ich habe das Prog von gestern Abend (18.16Uhr) mal auf meien Tiny geladen, 8MHz interner Takt und Teiler ausgeschalten.
Das genze läuft auf dem Pollin-Boad.
Wenn ich nun mit AVR Terminal "prog" sende kommt als Antwort zurück "entering prog mode" (so habe ich es im Prog hinterlegt.) - bei mir funktioniert das.
Hier der Code:
$crystal = 8000000
$regfile = "ATtiny2313.DAT"
$baud = 9600
Config Timer1 = Timer , Prescale = 256
On Timer1 Timer1_irq
On Urxc Isr_data
Const Timervorgabe = 3036
Enable Urxc
Enable Timer1
Enable Interrupts
Config Portd.5 = Output
Config Portd.6 = Output
Led1 Alias Portd.5
Led2 Alias Portd.6
Dim B As Byte
Dim S As String * 5
Do
Toggle Led1
If Ucase(s) = "PROG" Then
Print "entering prog mode"
End If
S = ""
Wait 2
Loop
End
Timer1_irq:
Return
Isr_data:
Toggle Led2
B = Udr
S = S + Chr(b)
Return
Gruß
gomaman
EDatabaseError
13.04.2007, 14:36
Bei mir nicht ;-)
also Hardware - oder...
Da das Programm ja funktioniert würde ich mal sagen JA. Hast Du irgendwelche Tauschteile?
Evtl. liegt auch ein Fehler in der Handhabung (glaube ich zwar nicht),. den Text (prog) sende ich mit AVR Terminal als Plain text. Ein nacheinander senden der Buchstaben funktioniert nicht (keinerlei Rückmeldung)
EDatabaseError
13.04.2007, 14:48
Ich habe es mit Docklight versucht. Negativ (ich habe eigentlich eine sehr große RS232 erfahrung deshalb war ich ja so verwundert)
Ich habe hier mal 2 Bilder von der Platine.
Ich habe beide ICs µc und max232 als ersatzteil hier. welchen soll ich zuerst ersetzen?
Mfg
Da ich davon ausgehe dass die LED funktionieren und somit auch der Tiny, würde ich mit dem MAX232 anfangen.
EDatabaseError
13.04.2007, 15:23
Mach ich...dieses mal sockle ich ihn aber von unten ;-)
Mfg
EDatabaseError
13.04.2007, 17:47
Das mit den Sockeln wird von unten nücht *grml*
Ich hab den MAX232 (neu) einfach nochmal wie auf dem Bild eingelötet - fehlanzeige - ich werde immer noch mit unbekannter Befehl zugemüllt.
Ich löte nun den Tiny um.
EDatabaseError
13.04.2007, 18:07
Den Tiny getauscht .. :shock:
Immer noch das selbe Prob.
:cry:
Mir fallen keine Gründe mehr ein
So auch die anderen Programme habe ich ausprobiert erst das abgeänderte Programm von Roland Walter welches Du in den Tiny gespielt hast (ucsra.7 - wollte mein Bascom nicht) dann das Originalprog von Roland mit (if USR.RXC =1 then), wie auch schon Rofo88 geschrieben hat.
Läuft.
Das einzige was ich gesehen habe ist die Größe der Kondensatoren am Max232, die aber eigentlich nicht so tragisch sein sollten. An meinem MAX232 von TI sin 10µF Kondensatoren dran.
Ansonsten weiß ich auch nicht mehr weiter, außer die gesamte Verdrahtung zu kontrollieren, was du aber sicher schon mehrfach gemacht hast.
EDatabaseError
13.04.2007, 18:48
Jap habe ich...
Kann ein Kondensator vllt. kapputgegangen sein (banale idee)
Ich hab 4u7 er verbaut (mache ich immer und es tut...eigentlich)
Ich geh nochmal alles durch :-( und nochmal :-(
Falls irgentjemanden irgentetwas, seie es so unvorstellbar wies nur geht, einfällt. Bitte postet es. *bettel*
Mfg
EDatabaseError
13.04.2007, 21:02
Sodele...ich glaub ich hab den Geist gefunden!
Ich habe mal mit dem Component tester des Oszis die Kondensatoren geprüft...
Der zwischen Pin4 und 5 des maxims zeigt ein auffälliges Muster. (Beinahe Kurzschluss)
Ich werde diesen morgen ersetzen.
Mfg
EDatabaseError
14.04.2007, 20:06
So siehts aus:
Der Kondensator war ok...aber der MAX232 (der neue) war auch Putt!!!
Noch nen neuen rein...immer noch ein Fehler!
Er müllt mich zwar nicht mehr mit Unbekannter Befehl zu...dafür kann ich nun eine Taste drücken (egal welche) und er sendet mir nur:
Unbek
zurück. Danach bricht er das senden ab.
Könnte das am Tiny liegen??? Oder sonst irgentwo noch ein kleines Teufelchen sitzen?
Mfg
Tobi
So langsam stellst Du mich vor ein Rätsel.
Ich (ich betone ICH) würde mir das ganze nochmal komplett neu aufbauen (sieht schon etwas wild aus das Ganze).
Dass es am Tiny liegt glaube ich ehrlich gesagt nicht einmal. Üblicherweise gehen die Dinger oder gehen nicht aber was dazwischen ist eher selten (soll hier aber nicht ausgeschlossen werden).
gomaman
EDatabaseError
14.04.2007, 20:34
Ich messe jetzt noch mal ALLES durch und baue es dann nochmals auf :-(
Mfg
EDatabaseError
15.04.2007, 20:17
Ich hab das Ganze jetzt einen Kollegen aufbauen lassen...da der das aber nicht so frei Hand aus dem Schaltplan macht habe ich ihm ein Board generiert. (Vom eagle schaltplan)
Dann hat er das ganze gelötet. Als er fertig war schaute ich auf die Platine...beim MAX232 waren die Pins 15 und 16 belegt, welche im schaltplan nicht einmal erwhnt wurden!
Ich schaue verdutzt auf das Board...und da waren diese Pins mit +5V und GND verbunden! omg... :wall: Lauter schrei!!!!!!!!!!
Das war der verdammte Fehler!
-----------> und nu tuts :wall:
[warum sagt mir das niemand... ;-) ]
Glückwunsch,
ich habe anhand der Bilder versucht die Leitungsführung der Signale zu verfolgen, aber auf die SPannungsversorgung des Max habe ich auch nicht geachtet, da ich die Spannungsversorgung bei Lochrasterprojekten immer als erstes verdrahte.
EDatabaseError
15.04.2007, 20:51
Aber warum ist das nicht im eagle schaltplan vermerkt :wall:
Je nachdem wie das Bauteil in eagle hinterlegt ist sind die Versorgungsleitungen (VCC und GND) ausgeblendet, damit man bei größeren Plänen noch die Übersicht behalten kann.
Hat mich Anfangs auch gewundert, denn wenn kein VCC bzw. GND Potential definiert wird, werden die Verbindungen auf der Platine auch nicht gemacht. ](*,)
Ich habe auch schon versucht Bauteile mit versteckten Versorgungsanschlüssen zu erstellen, hat aber bei mir nicht funktioniert, also dann halt mit sichtbaren Anschlüssen.
Udo
EDatabaseError
15.04.2007, 21:07
Jeder muss einmal diese Erfahrung machen ;-) ... und ich hab sie nun...und dabei sind 4 MAX232 vernichtet worden :-(
ok...2 waren wirklich schrott *grml* billigzeug von reichelt
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.