-
Doch, da sie bei ziemlich grosser kapazitativen Last (be meinem Kabel ca. 200 pF zwischen biliebigen Adern), ausreichend scharfe Flanken garantieren müssen. Die Steilheit der Flanken hängt eben von (Um)ladestrom der Kapazitanzen ab (wie bei Gate vom MOSFET). ;)
MfG
-
Das klingt plausibel. VG Micha
-
Ich überlege schon die Kapazität meines Kabel nachzumessen; bin aber davon abgekommen, sonst funktioniert es danach plötzlich nicht mehr :-)
Trotzdem interessiert es mich, wie man das halbwegs zuverlässig machen würde. Hab ein Vielfachmeßinstrument mit Kapazitätsmessung, kleinster Meßbereich 2000pF, Oszi und ein Frequenzgenerator wäre auch aufzutreiben.
Ganz naiv würde ich einfach zwei Adern in das DMM stecken und gucken was die Anzeige zeigt? Am anderen Ende des Kabels die Adern natürlich offen lassen.
Gruß
Searcher
-
Hallo!
Es gibt immer min. zwei Möglichkeiten ein Problem zu lösen, falls überhaupt möglich: messen berechnen und prüfen bzw. das schlimmstmögliche annehmen, das bestvorhandene nehmen und prüfen.
Mir gefällt besser die zweite (einfachere) Möglichkeit, deswegen nehme ich als Treiber 74F125, da ich besseren nicht habe, und bei Problemen werde ich das Kabel kürzen bzw. anderes nehmen müssen. Ich brauche nicht wegen Stromersparnis den 74HC125 nehmen, da ich ohne Anmeldung bis zu 100 mA aus dem USB ziehen kann. ;)
Notfalls müsste man auf der AVR-Seite auch einen entsprechenden Treiber (z.B. im Stecker) für das MISO Signal anwenden.
MfG
-
Ich habe lange Zeit mit einem Dongle mit einem 74HC244 und einem 4m Druckerkabel programmiert und hatte nie Probleme.
Habe zwar die Adernkapazität nie gemessen, bei 4m Kabel wird sie nicht sehr klein sein.
-
Ich vermute übrigens auch, dass trotz dieses plausibel klingenden
Argumentes, welches ich nicht widersprechen möchte, die Diskussion,
noch "bessere" Treiber als die genannten ins Auge zu fassen, ins
Theoretische abgleitet. Erstens wird man nicht mit extrem langen
Kabeln proggen, Zweitens kann man die Treiberschaltung in die
Nähe des ISP-Anschlusses bringen und Drittens müsste man ja bei
Rechtfertigung eines "Powertreiber" die EMV und ev. auch Induktivität
des nun schon extrem lang eingeplanten Kabels berücksichten .
JEDOCH .... wir wollen doch nur lediglich einen Chip flashen. VG Micha
-
Hallo,
danke an alle. Meine Vorsicht gegenüber der Telefonanschlußschnur hat den Hintergrund, daß ich sowas mal als 1,5m langes LAN Kabel in einem 100BaseT LAN ausprobiert habe. Die grünen Lämpchen in den Interfacekarten leuchteten aber es gingen keine Daten rüber. Mir ist schon bewußt das da andere elektr. Verhältnisse herrschen aber seither werfe ich auch immer ein kritisches Auge auf das Kabel. :) Falls ich da Probleme bekomme, weiß ich nun an welchen Schräubchen ich überall drehen kann.
Ein anderer thread hat mich nun dazu verleitet, zu versuchen, den Tiny auch über RS232 und Software UART an den PC anzuschließen. Einen TC232 chip zur Schnittstellenanpassung habe ich schon gefunden und bin gerade dabei, ihm einen geeigneten Platz auf dem Steckbrett zu suchen.
Gruß
Searcher
-
@ hardware.bas
Ich nehme, wie auch immer, deinen letzten Beitrag nur als deine Meinung und werde sicher so lange geschirmte Kabel mit nötigen Treiber verwenden, die problemlos funktionieren und für mich bequem sind. :)
Mir ist die gesetzliche Lage über EMV Störungen bekannt und beschwere mich nicht, wenn ich mit meinem Weltempfänger Funkamateure aus Amerika auf KW bzw. London auf LW nicht ungestört hören kann, wenn der HV Brenner im Keller den Zentralheizungoffen gerade zündet, weil ich in meiner Wohnung im Winter doch warm haben möchte. ;)
Übrigens, der von mir bisher benutzter Brenner für PIC's mit 3m langem USB Kabel (ca. 600 pF von jeder Ader gegen GND) hat mit 7406 als Treiber immer problemlos funktioniert, habe ich mir bei eBay diese Treiber: http://cgi.ebay.de/ws/eBayISAPI.dll?...=STRK:MEWNX:IT gekauft, weil ich es zufärlässig haben möchte und nur ein Stück von 74F125 bei mir gefunden habe.
MfG
-
Hallo,
hab mal den Titel des threads geändert, da ich noch kein festes Ziel verfolge sondern eigentlich nur als Anfänger noch experimentiere.
Als neues Feature auf dem Steckbrett habe ich nun eine RS232 Verbindung zum PC geschaffen. Anleitung nach der BASCOM-AVR Hilfe unter "Using the UART".
Der HW Aufbau war überhaupt kein Problem und hat sofort funktioniert. Das Beispielprogramm für SW UART lief auch sofort nach Weglassen des $baud und Anpassen der Portpins in der OPEN Anweisung.
Weil das fehlerfreie Empfangen der Zeichen auf dem µC aber nicht sehr zuverlässig ist, begab ich mich auf die Suche durch verschiedene threads und hab mich dann zur Verwendung des Pin Change Interrupt entschieden. Der wird zwar öfter ausgelöst als notwendig; zunächst reicht das aber für mich.
Die Aktivierung des PCI auf Pin PB4 hat mich "einige" Schleifen durch Datenblatt, BASCOM Hilfe, Simulator und Tests drehen lassen. Zusammenfassend: Da könnte die BASCOM Hilfe und insbesondere auch die attiny45.dat verbessert werden. (Keine Ahnung, ob das in der neuesten Vollverion schon OK ist) Dazu einige Remarks in dem Testprogramm.
Code:
'###################################################
'File: SW_UART.bas
'IDE: BASCOM-AVR Demo Version 1.11.9.8
'Tests on three wire software spi - output only
'SW UART
'UART - Inputs at terminal are echoed back to terminal
'and displayed at 7 segment in HEX ASCII
'Displayunit: 4 X 7 segment low current LED
'HW circuit: ATtiny45_4_X_7_Segment_SPI (UART still missing)
'#######################################################
$regfile = "attiny45.dat"
$eepleave
$framesize = 32
$swstack = 32
$hwstack = 64 'hwstack reichlich wg Interruptroutine
$crystal = 8000000
Dim B As Byte
Dim X As Byte
Dim Y As Byte
Dim Init7segment As Byte
Dim Dunkelziffer As Byte
Dim Displaydigit(16) As Byte 'darzustellende Zeichen (hex 0..F)
'0gfedcba (segmente, msb immer 0)
Displaydigit(1) = &B01000000 'Ziffer "0", 0 = segment ein, 1 = aus
Displaydigit(2) = &B01111001 'Ziffer "1"
Displaydigit(3) = &B00100100 'Ziffer "2"
Displaydigit(4) = &B00110000
Displaydigit(5) = &B00011001
Displaydigit(6) = &B00010010
Displaydigit(7) = &B00000010
Displaydigit(8) = &B01111000
Displaydigit(9) = &B00000000
Displaydigit(10) = &B00010000
Displaydigit(11) = &B00001000
Displaydigit(12) = &B00000011
Displaydigit(13) = &B01000110
Displaydigit(14) = &B00100001
Displaydigit(15) = &B00000110
Displaydigit(16) = &B00001110
Dunkelziffer = &B01111111 'Wert um eine Ziffer dunkel zu schalten
Init7segment = &B11111111 'Wert um Anzeige zu initialisieren
'Nutzung von Software SPI
Config Spi = Soft , Dout = Portb.0 , Ss = Portb.1 , Clock = Portb.2
Spiinit
'TRANSMIT Kanal für SW UART Ausgabe öffnen
Open "comb.3:19200,8,n,1" For Output As #1 'comb.3 -> TX ist Pin PB3
'RECEIVE Kanal für SW UART Empfang öffnen
Open "comb.4:19200,8,n,1" For Input As #2 'RX ist PB4
Pcmsk = &B00010000 'Pin Change Interrupt PCINT4 auf Pin PB4 erlauben
On Pcint0 Isr_inkey 'Spring zur ISR wenn PCIF (Pin Change Int. Flag) in GIFR gesetzt ist
Enable Interrupts 'Setzt Global Interrupt Enable in SREG
Enable Pcint0 'Setzt PCIE (Pin Change Interrupt Enable) in GIMSK Register
'##########################################################################################
'So könnte es bei Änderung der attiny45.dat auch gehen (keine sonstigen Konsequenzen getestet!!!)
'PCMSK = PCINT4
'On PCINT Isr_inkey
'Enable Interrupts
'Enable PCINT
'##########################################################################################
'mit Senden von acht high bits sicherstellen, daß über Q7 des Schieberegisters
'der HEF4017 die erste Ziffer der 4 X 7 Segmentanzeige adressiert -> reset des 4017
Spiout Init7segment , 1
'4 x 7 Segment ständig mit Anzeigedaten versorgen (später mal in Timerinterrupt unterbringen)
Do
Spiout Dunkelziffer , 1
Spiout Dunkelziffer , 1
Spiout Displaydigit(x + 1) , 1
Spiout Displaydigit(y + 1) , 1
Loop
Close #2 'Kanäle schließen
Close #1
End
'ISR holt Zeichen vom UART wenn an RX Leitung ein Pegelwechsel erkannt wurde
'Ausführung der ISR setzt PCIF in GIFR automatisch zurück
Isr_inkey:
B = Inkey(#2)
'Nur Ausführen, wenn Zeichen vollständig eingetroffen ist
If B > 0 Then
X = B
Y = B
Shift X , Right , 4 'Zeichen für 7 Segment aufbereiten -
Shift Y , Left , 4 '- x und y mit high und low nibble versorgen
Shift Y , Right , 4
Print #1 , Chr(b) ; " " 'Echo Zeichen zurück an Terminal
End If
Return
Fragen, Kommentare, etc ... Ihr wisst schon :) (Aber bitte noch nicht steinigen, lieber konstruktiv - ich möchte doch noch weiter machen :-) )
Gruß
Searcher
-
Das 1m lange Anschlusskabel vom Dongle (mit Treiber) zu den 3 ISP-PINs,
sowie +5V, Masse und Reset ist bei mir übrigens auch abgeschirmt, warum?
Weil ich dieses Kabelschnippel gerade übrig hatte, Mit Klingeldraht gehts
auch, damit hatte ich kleine Miniplatinen mit Tinys geproggt und danach
abgeschnitten und vergossen. Das ist wirklich absolut problemlos und
daher erreicht man sein Ziel in Windeseile. Mein "richtiges"
Programmiergerät, welches übrigens auch nach den gleichen Schaltungs-
prinzip funktioniert sieht natürlich besser aus. Nur..... ich nutze es kaum,
da ich ISP meistens so verwende, wie es heisst und direkt in der
Zielschaltung ohne störanfällige IC-Fassungen progge. VG Micha