Hey Leute,
ich habe vor aus einem bei Spiel aus nem Buch eine Softwarelösung für ne
UART Schnittstelle zu realisieren, da der Tiny13 ja keine Schnittstelle
hat.
Die Schnittstelle ist direket nur über je 1 Widerstand mit der RS232
Schnittstelle verbunden (TXD = 100k ; RXD = 1k).
Der Code ist folgender:
1
$regfile = "attiny13.dat"
2
$crystal = 4000000
3
$hwstack = 32
4
$swstack = 4
5
$framesize = 4
6
7
Dim I As Bit
8
9
Open "comb.3:9600,8,n,1,INVERTED" For Output As #2
10
11
Config Portb.2 = Output
12
13
Do
14
15
Print #2 , "Test"
16
17
If I = 1 Then
18
Portb.2 = 1
19
I = 0
20
Elseif I = 0 Then
21
Portb.2 = 0
22
I = 1
23
End If
24
25
Waitms 500
26
Loop
27
28
End
Das Problem, was sich hier gibt ist, er Zeit in Putty, welches ich als
Terminal Client nutze. Dort Zeigt er mir lediglich irgendwelche Zeichen
und gibt übern Lautsprecher nur ein kleines Geräusch aus dem
Computerlautsprecher.
Danke schon mal für Eure Hilfe.
Michael
Michael N. schrieb:> Hey Leute,>> ich habe vor aus einem bei Spiel aus nem Buch eine Softwarelösung für ne> UART Schnittstelle zu realisieren, da der Tiny13 ja keine Schnittstelle> hat.>> Die Schnittstelle ist direket nur über je 1 Widerstand mit der RS232> Schnittstelle verbunden (TXD = 100k ; RXD = 1k).
Ähm.
RS232 hat definierte Pegel. +12V und -12V.
Solange die Gegenstelle nicht eine sog. TTL-RS232 bereitstellt (bei der
die Pegel 0 und 5V sind und auch die Polarität umgedreht ist), wirst du
mit deinen Widerständen da nix reißen.
Und nein. Ein PC hat keine TTL-UART sondern eine ganz normale +-12V
UART.
Ja gut, wurde in dem Buch "Basiskurs - Bascom AVR" so beschrieben und
ich dachte da ich wäre nur dämlich. Aber mit dem Baustein "Max232" kann
man damit dann Arbeiten bei einer SoftwareUart?
Oder würden schon Z-Dioden reichen? mit 4,7 V hätte ich welche hier.
Michael
Michael N. schrieb:> Ja gut, wurde in dem Buch "Basiskurs - Bascom AVR" so beschrieben und> ich dachte da ich wäre nur dämlich. Aber mit dem Baustein "Max232" kann> man damit dann Arbeiten bei einer SoftwareUart?
Ja.
Ich muss mich allerdings trotzdem selbst an der Nase nehmen. Ich hab
hier
Open "comb.3:9600,8,n,1,INVERTED"
das INVERTED überlesen.
Trotzdem ist es fraglich ob eine 12V UART mit den Pegeln einer TTL-UART
klarkommt. Ein MAX232 zur Pegelanpassung ist auf jeden Fall die
sicherere Option.
Ja gut, sobald dann meine Bestellung mit den Max232 hier ankommen werde
ich es mal testen.
Nur es kommt was aus dem Tiny raus, nur eben nicht der gewünschte Text
sondern so komische Zeichenfolge.
Michael
Michael N. schrieb:> Ja gut, sobald dann meine Bestellung mit den Max232 hier ankommen werde> ich es mal testen.
Bin gespannt und überlege selber, ob ich das mit einem MAX232 mache.
Jetzt hab ich aber gelesen, dass der MAX233 bequemer ist, weil man da
Kondensatoren spart. Aber egal wie, beide Käfer gibt es in verschiedenen
Ausführungen: CPP, ACPP, CPE, ACPE, EEPE, ECPE...
Welchen nimmt man da??
Michael N. schrieb:> Nur es kommt was aus dem Tiny raus, nur eben nicht der gewünschte Text> sondern so komische Zeichenfolge.
Es kann sein, dass die Geschwindigkeit der Übertragung nicht stimmt.
Unabhängig von dem, was im Programm steht, kannst Du die
Übertragungsgeschwindigkeit im Terminalprogramm etwas nach oben oder
unten setzen und sehen, ob Du etwas sinnvolles empfängst.
Das hier ist ganz nett:
http://www.der-hammer.info/terminal/
Holgi schrieb:> Bin gespannt und überlege selber, ob ich das mit einem MAX232 mache.> Jetzt hab ich aber gelesen, dass der MAX233 bequemer ist, weil man da> Kondensatoren spart. Aber egal wie, beide Käfer gibt es in verschiedenen> Ausführungen: CPP, ACPP, CPE, ACPE, EEPE, ECPE...
Meine persönliche Meinung dazu ist, weg vom MAX hin zu FTDI. Wenn man
noch eine echte serielle Schnittelle hat, kann man auch den MAX nehmen,
bloß wie lange noch...
Ich habe mir im 5er Pack den Max232CP bestellt.
Denke für einfache Anwendungen im Hobbybereich dürfte die genauere
Typenauswahl nicht ganz soooo wichtig sein.
Und als Terminalprogramm benutze ich momentan Putty. Aber werde es mal
versuchen die Baud Rate deutlich zu reduzieren. Vielleicht mal auf 1/10
setzen. Einfach mal Testen.
Michael
PS: Ich habe ein eigenen alten PC für meine Bastelprojekte und der hat
sogar 4 Serielle Ports und in der Industrie wird die
Serielleschnittstelle ja immer noch ständig benutzt. Und notfalls kauft
man sich für paar Euro eine Erweiterungskarte für Serielleschnittstelle.
Michael N. schrieb:> Und notfalls kauft> man sich für paar Euro eine Erweiterungskarte für Serielleschnittstelle.
Da hast Du schon recht. Man wird sich aber halt immer etwas dazu kaufen
müssen. Bei einem Notebook ohne passenden Anschluss kaufst Du Dir dann
einen Adapter, wo letztendlich genau die Hardware verbaut ist, die Du
beim Projekt ausgespart hast.
Ich will Dir das jetzt nicht madig machen. Wenn Dein Rechner die
Schnittstelle hat, dann ist der MAX232 sinnvoll.
Jap.
Normal hatte der PC 2 Anschlüße gehabt, habe aber noch 2 erweitert.
Hatte es sogar schon mal in Verwendung.
2 Stück sind mit Pollinboard verbunden.
Und 1en für mein eigenes Programmiergerät für den ATTiny 13 und den 4ten
hatte ich mit der Software Schnittstelle vom ATTiny13 verbunden.
Hoffe ich bekomme es irgendwie zum laufen, auch wenn es nicht die
Ideallösung ist, aber z.B. der Attiny13 hat ja kein Hardware Uard und
wissen ist macht hab ich gehört, falls man mal sonst in solchen
Situation kommt.
Michael
Michael N. schrieb:> wissen ist macht
Nix wissen macht auch nix!
Spass beiseite:
Natürlich benutzt man vorrangig die nachgerüsteten COMs. Wer will sich
schon sein Motherboard zerschiessen?
Soweit ich weiß sind die COM Ports doch "kurzschlußfest" also so schnell
sollte da nix passieren.
Den Max232 haben sicher schon einige von euch verwendet? Kann mir jemand
kurz nen Tipp geben Wo die Datenleitung des Ports hin kommen und wo dann
die Ausgänge zum µC?
Weil die haben ja 2 T in out und 2 R in out, ich vermute die werden
die passenden Anschlüsse sein? Und in dem Fall könnte man 2 µC an 1 Max
232 packen? Also das er für 2 unabhängig voneinanderarbeitenden
Controller 1 Max232 genutzt werden kann?
Hoffe dies wirkt nicht nach einer dummen Frage verschämt grinsen
Michael
Danke, und jap das Hilft, aber da bleibt der Gedanke ja, weil ja pin
7+8, sowie pin 9+10 Frei sind und die ja nur als T2 bzw R2 bezeichnet
wurden. T1 und R1 wurden ja verwendet.
Weil wenns so wäre könnte man ja dann 2 Controller an einen µC nehmen.
oder?
Also habe mir dies raus gepickt:
http://sodoityourself.com/wp-content/uploads/2007/02/circuit_232.jpg
Michael
Michael N. schrieb:> Weil wenns so wäre könnte man ja dann 2 Controller an einen µC nehmen.> oder?
könnte man.
Aber wann hat man schon auf 1 Platine.
(der MAX hat deswegen 2 getrennte Hin und Retour Kanäle, damit man auch
Hardwareflusssteuerung darübr routen kann (RTS/CTS)
Also, dass der µC zum Datenlogger genutzt wird und die Schnittstelle
Extern dann liegen würde und über ein 2 Poligen Stecker mit der
Schaltung verbunden wird. der Max232 würde im Stecker bzw im
Datenlesegerät sitzen oder wären dann die Leitungen dafür zu lang? Bzw.
ist der Max232 dafür zu günstig, dass man sich ein Art
Kommunikationsgerät baut?
Hoffe es ist verständlich was ich meine?
Michael
Michael N. schrieb:> Das Problem, was sich hier gibt ist, er Zeit in Putty, welches ich als> Terminal Client nutze. Dort Zeigt er mir lediglich irgendwelche Zeichen> und gibt übern Lautsprecher nur ein kleines Geräusch aus dem> Computerlautsprecher.
hast du schonmal gegengeprüft mit einem Soft-uart einer anderen Sprache?
So könntest du herausfinden ob es an der Software liegt. Auf der Seite
von lunaavr gibts ein Terminal mit soft-uart und der attiny13 wird wohl
auch unterstützt. Ist ja schnell kompiliert.
http://avr.myluna.de/doku.php?id=de:softuart.luna
Grüße aus Potsdam,
Hannelore
Michael N. schrieb:> Den Max232 haben sicher schon einige von euch verwendet?
Früher mal. Wie Karl schon weiter oben schrieb ist in der Gegenwart der
FTDI angesagt.
Ne bislang habe ich nur Bascom genommen. Weil an sich fing ich damit an
und wollte auch so an sich erstmal bei bleiben, aber testen könnte ichs
ja auch mal.
Brauche ja nur nen Compiler für diese Version. ist Luma die Sprache? Sry
der Dummen Frage wegen.
Eine Frage, Bringt Luna Vorteile? Ist das schneller oder so? Habs nun
gesehen, dass es eine Programmiersprache ist.
Michael
Michael N. schrieb:> Ne bislang habe ich nur Bascom genommen. Weil an sich fing ich damit an> und wollte auch so an sich erstmal bei bleiben, aber testen könnte ichs> ja auch mal.>> Brauche ja nur nen Compiler für diese Version. ist Luma die Sprache? Sry> der Dummen Frage wegen.>>>> Michael
Die Sprache ist auch sowas ähnliches wie bascom, halt nur moderner und
etwas komplexer. Ist aber auch gleich, soll ja nur zum testen sein. Du
lädtst einfach die neueste Version, da ist alles drin. Einfach
softuart.luna aus dem Ordner Examples einladen, oben auf attiny13
ändern, die Port-Pins anpassen und compilieren. Wenn du dich damit nicht
weiter beschäftigen willst, brauchste da auch nichts an der ide irgendwo
einstellen. das erzeugte hex-file brennste dann einfach in den
controller und schaust ob die Zeichen stimmen.
Gruß, Hannelore
Michael N. schrieb:> Der Code ist folgender:>> $regfile = "attiny13.dat"> $crystal = 4000000
Wie sagst Du dem Tiny13, dass er mit 4,000 MHz takten soll??
Benutzt Du dazu eine externe Taktquelle?
Denn:
Der RC-Oszillator des Tiny13 klappert ab Werk mit 9,6 MHz, der
System-Taktvorteiler ist per Fuse auf 1:8 voreingestellt, somit arbeiten
CPU und Timer des Tiny13 mit 1,2 MHz.
UART ist sehr zeitkritisch, da sollte der angegebene Takt schon dem
tatsächlich vorhandenem Takt entsprechen.
...
Ne dann muss ich das noch mal genau Prüfen, wie der genau getaktet ist.
Und eine Externe Taktquelle benutze ich nicht, sowas kann meines wissens
der Attiny 13 überhaupt nicht.
Michael
Michael N. schrieb:> Und eine Externe Taktquelle benutze ich nicht, sowas kann meines wissens> der Attiny 13 überhaupt nicht.
Aber sicher kann er das, siehe Datenblatt, Tabelle 6-1.
Aber mit 4,000 MHz (intern) kann der Tiny13 nicht laufen, somit kann
Dein Programm aufgrund der falschen Crystal-Angabe nicht funktionieren,
auch wenn sonst alles richtig sein sollte. Allerdings solltest Du von
UART ohne Quarz nicht allzuviel erwarten, UART ist recht zeitkritisch,
funktioniert zwar oft mit der bescheidenen Konstanz des Internen
RC-Oszillators, muss aber nicht funktionieren.
...
Hannes Lux schrieb:> Aber sicher kann er das, siehe Datenblatt, Tabelle 6-1.> Aber mit 4,000 MHz (intern) kann der Tiny13 nicht laufen, somit kann> Dein Programm aufgrund der falschen Crystal-Angabe nicht funktionieren,> auch wenn sonst alles richtig sein sollte. Allerdings solltest Du von> UART ohne Quarz nicht allzuviel erwarten, UART ist recht zeitkritisch,> funktioniert zwar oft mit der bescheidenen Konstanz des Internen> RC-Oszillators, muss aber nicht funktionieren.
Völlig richtig. Wenn der interne Oszillator verwendet werden soll, dann
muss man die Anzahl der Bits je Wort auf ca. 4 reduzieren. Sofern das
aus irgendeinem Grund nicht möglich ist, sendet man 8 Bits, nutzt jedoch
nur die ersten 4, weil die letzten 4 nicht mehr verlässlich sind.
Markus W. schrieb:> nutzt jedoch> nur die ersten 4, weil die letzten 4 nicht mehr verlässlich sind.
Richtig, aber dazu müsste man erstmal verstehen, wie UART funktioniert.
Dazu reicht es nicht, einfach nur ein unvestandenes Stück Code aus der
vorhandenen Lib zu benutzen. Es schadet nicht, etwas Hintergrundwissen
zu haben, auch nicht, wenn man Bascom benutzt...
...