Das klingt plausibel. VG Micha
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
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
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
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
@ 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.
Fragen, Kommentare, etc ... Ihr wisst schonCode:'################################################### '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(Aber bitte noch nicht steinigen, lieber konstruktiv - ich möchte doch noch weiter machen
)
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
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
Lesezeichen