ISP mit der Soundkarte V2
Mit
einer kleinen Zusatzschaltung kann man die ISP-Programmierung über die
Soundkarte noch einfacher und noch sicherer machen. Das Ziel ist es,
ohne den Reset-Taster auszukommen. Das Reset-Signal sollte also
automatisch erzeugt werden. Außerdem sollte der Controller in einem
größeren Spannungsbereich arbeiten. Beides ist mit Transistoren leicht
zu erreichen. Die Signale werden durch die Schaltung invertiert, was
bei der Sounderzeugung berücksichtigt werden muss.
MOSI
und SCK werden über zwei NPN-Transistoren in Emitterschaltung
angesteuert. Die Signalamplitude von der Soundkarte ist unkritisch,
weil die Transistoren einfach nur voll durchgesteuert werden. Ohne ein
Soundsignal sind sie gesperrt, die Ports B0 und B2 können daher
zur Laufzeit frei verwendet werden.
Das Reset-Signal wird aus
der Datenleitung abgeleitet, die für diesen Zweck einen Vorspann
bekommt, der noch nicht zur eigentlichen Programmierung gehört. Das
Signal wird gleichgerichtet und steuert den Reset-Transistor an. Aber
da gibt es noch einen Nebenzweig, der einen Teil des AC-Signals auf die
Basis koppelt. Beim Anstieg der Ladespannung entstehen daher einige
wenige Impulse an der Reset-Leitung. Das hat folgenden Sinn: Wenn
der Controller in den Reset-Zustand geht um programmiert zu werden soll
die SCK-leitung bereits Low-Pegel haben, weil eine High-Low-Flanke die
Daten von MOSI übernimmt. Nun kann es aber vorkommen, dass ein Programm
die Leitung B2 hochgesetzt hat. Wenn sie erst im Reset-Moment
freigegeben wird kann es zu einer Fehlfunktion kommen. Mit den
zusätzlichen Reset-Impulsen wird dies verhindert. Der erste
Reset-Impuls stoppt ein laufendes Programm, der zweite findet bereits
eine hochohmige Leitung B2 vor, die rechtzeitig vor dem Reset durch das
Signal von der Soundkarte heruntergezogen wurde.
Thomas Baum hat
seine Seite erweitert und ermöglicht nun die Konvertierung beliebiger
Hexfiles. Wichtig ist für die erweiterte Schaltung, dass die Option
"Signal invertieren" angeklickt ist. Für die einfache Schaltung mit
direkter Kopplung der Signale arbeitet man dagegen ohne Invertierung.
Nicht ganz auszuschließen ist übrigens, dass es mal eine Soundkarte
geben könnte, die selbst schon die Signale invertiert. Wenn also etwas
nicht funktioniert, einfach mal ausprobieren...
Der Online Hex2Wav Konverter
: http://tiny.systems/article/soundKonverter.html
Die
Programmierung funktioniert mit der erweiterten Schaltung völlig
problemlos und immer schon beim ersten Versuch. So macht das
Programmieren Spaß! Auch die Betriebsspannung ist jetzt völlig
unkritisch. Ob es 3 V oder 5 V sind, ganz egal. Zurzeit betreibe ich
meine Schaltung mit einer alten Lithium-Batterie aus einem Handy.
Und
auch die verwendete Programmiersprache ist unkritisch, solange ein
Hex-File erzeugt wird. Ich arbeite lieber mit Bascom. Das folgende
kleine Testprogramm lag noch auf der Festplatte. Es hieß
Ttiny13_LED.bas und wurde übersetzt zu Ttiny13_LED.hex. Im Quelltext
sieht man auch, was da passieren soll: B4 blinkt.
'ATtiny13 driving LEDs
$regfile = "attiny13.dat"
$crystal = 1200000
Config Portb = Output
Do
Portb.3 = 1
Toggle Portb.4
Waitms 500
Loop
End
Der Sparrow (Spatz)
Aus
dem Tiny13 wird ein komplettes kleines Entwicklungssystem, der
"Sparrow". Thomas hat eine Platine gezeichnet, die alles auf engstem
Raum vereinigt: http://tiny.systems/article/sparrow.html.
20 Musterplatinen sind bereits bestellt, wir warten schon ungeduldig
darauf. Das Projekt wird von Modul-Bus unterstützt. Und dort wurden
auch schon die SMD-Bauteile zusammengestellt.
Mit auf
der Platine sind zwei Tastschalter (Die 10-K-Pullup-Widerstände gehören zum
Programmier-Interface und sind deshalb schon dabei.) und zwei LEDs. Damit lassen
sich viele Aufgaben lösen, ohne dass externe Hardware angeschlossen werden
muss. Meinen Probeaufbau habe ich nun um diese Elemente erweitert, damit ich
jetzt schon Programme für den Sparrow testen kann. Und alles wird per Sound in
den Tiny13 übertragen (Tschiep Tschiep ruft der Spatz, cheep cheep
antwortet der Sparrow). Hier ein paar erste Testprogramme, die übrigens direkt über http://tiny.systems/categorie/cheepit/ aufgespielt werden können:
Einstellbarer Gegentakt-Blinker
Die
beiden LEDs blinken im Gegentakt. Die Blinkgeschwindigkeit ist über die
Tasten einstellbar. Mit S1 wird das Blinken schneller, mit S2
langsamer. Damit sind alle vier neuen Bedienelemente gestestet.
Download: Sparrow_Blink2.zip
Direkt hochladen: http://tiny.systems/categorie/cheepit/EinstellbarerGegentaktblinker.html
'Sparrow_blink2.bas
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000011010
Dim T As Byte
Dim N As Byte
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Led1 = 1
Led2 = 0
T = 20
Do
N = 0
Do
If S1 = 0 Then T = T + 1
If T > 250 Then T = 250
If S2 = 0 Then T = T - 1
If T < 1 Then T = 1
Waitms 10
N = N + 10
Loop Until N >= T
Toggle Led1
Toggle Led2
Loop
End
Einstellbare LED-Helligkeit
Die
grüne LED1 kann über den PWM-Ausgang PWM0B des Tiny13 gesteuert werden.
Das folgende Testprogramm erlaubt die Einstellung der LED-Helligkeit
über die Tasten.
Download: Sparrow_PWM.zip
Direkt hochladen: http://tiny.systems/categorie/cheepit/EinstellbareLEDHelligkeit.html
'Sparrow_PWM.bas
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb.1 = 1
Dim D As Byte
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Up
D = 50
Do
If S1 = 0 Then D = D + 1
If D > 254 Then D = 254
If S2 = 0 Then D = D - 1
If D < 1 Then D = 1
Waitms 10
Pwm0b = D
Loop
End
Elektrofeld-Sensor
Wenn
man die rote LED2 nicht verwendet und die Ports B3 und B4 hochohmig
lässt hat man an ADC3 einen extrem empfindlichen analogen Eingang.
Es reicht ein 5 cm langer Draht an B3 als Antenne, um elektrische
Felder zu messen und über den PWM-Ausgang anzuzeigen. Mit dem Spatz in
der Hand läuft man über einen Teppich und sieht direkt die elektrische
Aufladung bei jedem Schritt an der Helligkeit der grünen LED.
Download: Sparrow_ADC.zip
Direkt hochladen: http://tiny.systems/categorie/cheepit/ElektrofeldSensor.html
'Sparrow_ADC.bas
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Dim D As Integer
Ddrb = 2
Config Adc = Single , Prescaler = Auto
Start Adc
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Up
Do
D = Getadc(3)
D = D / 4
Pwm0b = D
Waitms 18
Loop
End
Das
Programm enthält eine Verzögerung von 18 Millisekunden, also nahe an der
Periodendauer von 20 ms des 50-Hz-Netzes. Alle 50-Hz-Signale werden daher
verlangsamt und gut sichtbar an der grünen LED angezeigt. Nähert man sich der
Antenne mit der Hand steigt die Amplitude der Wechselspannung deutlich sichtbar
an. Sogar Netzleitungen in der Wand kann der Sparrow aufspüren!
Dieses Programm ist fast so nützlich wie ein kleines Oszilloskop. Auch zur
Spannungsmessung kann es eingesetzt werden, solange die Messspannung nicht
größer als die Betriebsspannung ist. Zur Sicherheit kann man einen Schutzwiderstand
von 10 kOhm in die Messleitung legen.
Die meisten Messgeräte mitteln die Messung und unterdrücken damit eventuelle
überlagerte Wechselspannungen. Der Spatz aber zeigt sie an.
Bata-Tester und Programme gesucht
Mehr als 100 sinnvolle Programme für den Sparrow sollten (grob
geschätzt)
möglich sein. Wer hat Lust, mitzuarbeiten? Bitte schicken Sie uns Ihre
Programme für den Sparrow. Es dürfen auch Programme sein, die es
schon
vorher gab oder die schon im Elektronik-Labor veröffentlicht wurden.
Vielleicht
müssen Sie hier und da kleine Anpassungen machen, damit
es auf
dem System läuft. Jedes Programm wird dann auf dem Sparrow getestet und
der
Software-Sammlung hinzugefügt. Unter den Einsendern
werden Beta-Tester
ausgewählt, die eine Sparrow-Platine und die SMD-Bauteile enthalten.
Wer nicht so lange warten möchte kann sich schon mal einen Sparrow auf
Lochrasterplatine bauen.
Weitere Sparrow Apps
Wenn
man einmal angefangen hat zu experimentieren, hört man nicht mehr auf.
Die Spatzenprogramme heißen jetzt Sparrow Apps, und es gibt immer
wieder neue Ideen. Hier einige weitere Apps:
RS-Schalter
Ein
RS-Flipflop hat zwei Eingänge, einen zum Einschalten (Set) und einen
zum Ausschalten (RS). Genauso funktionierte diese App. S2 schaltet
beide LEDs ein und S1 schaltet sie aus.
Download: Sparrow_RS.zip
Direkt hochladen: http://tiny.systems/categorie/cheepit/RSSchalter.html'Sparrow_RS.bas on/off LEDs
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000011010
Dim T As Byte
Dim N As Byte
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Led1 = 1
Led2 = 1
T = 20
Do
If S1 = 0 Then
Led1 = 0
Led2 = 0
End If
If S2 = 0 Then
Led1 = 1
Led2 = 1
End If
Loop
End
Toggle-Schalter
Die
Funktion dieser App entspricht der zweier Toggle-Flipflops. Einmal
drücken = An, nochmal drücken = Aus. Und das getrennt für beide Taster,
die jeweils ihre eigene LED schalten.
Download: Sparrow_Toggle.zip
Direkt hochladen: http://tiny.systems/categorie/cheepit/ToggleSchalter.html
'Sparrow_Toggle.bas on/off LEDs
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000011010
Dim T As Byte
Dim N As Byte
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Led1 = 1
Led2 = 1
T = 20
Do
If S1 = 0 Then
Toggle Led1
Waitms 50
Do
Loop Until S1 = 1
Waitms 50
End If
If S2 = 0 Then
Toggle Led2
Waitms 50
Do
Waitms 50
Loop Until S2 = 1
End If
Loop
End
Entspannungslicht
Die
grüne LED wird über den PWM-Ausgang wellenartig langsam gedimmt und
wieder aufgeblendet. Die Geschwindigkeit ist über die Taster
einstellbar. Da das Auge kein lineares Empfinden für die Helligkeit
besitzt wird hier durch Quadrieren einer Laufvariablen eine
Parabelfunktion realisiert.
Download: Sparrow_Fade.zip
Direkt hochladen: http://tiny.systems/categorie/cheepit/Entspannungslicht.html
'Sparrow_Fade.bas
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb.1 = 1
Config Portb.3 = 1
Config Portb.4 = 1
Dim T As Byte
Dim I As Byte
Dim J As Byte
Dim N As Byte
Dim D As Word
Led1 Alias Portb.1
Led2 Alias Portb.3
S1 Alias Pinb.0
S2 Alias Pinb.2
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Up
N = 50
T = 5
J = 0
Do
Waitms 10
I = I + 1
If I >= T Then
'Toggle Led2
If S1 = 0 Then T = T + 1
If T > 20 Then T = 20
If S2 = 0 Then T = T - 1
If T < 1 Then T = 1
I = 0
If J = 0 Then N = N + 1
If N > 250 Then J = 1
If J = 1 Then N = N - 1
If N < 50 Then J = 0
D = N * N
D = High(d)
Pwm0b = D
End If
Loop
End
Sparrow-Platine angekommen
Die Leerplatinen sind angekommen, und einige wurden gleich bestückt. Immer
mit dem Ohmmeter im Anschlag, denn am Anfang ist man ja bei einem Prototyp
erstmal unsicher, ob alles richtig ist. Tatsächlich gab es ein paar kleine
Probleme (Betatester aufgepasst!):
Bei den Transistoren ist auf der Platine E und B vertauscht. Man muss sie auf
dem Kopf einbauen (Beschriftung nach unten).
Meine Shottkydioden sind eine Nummer zu groß und müssen schräg eingelötet
werden. Die kleineren werden bestellt.
Die gekauften LEDs sind viel zu dunkel, ausreichend nur spät am Abend. Hellere gibt es in der gleichen Bauform.
Aber am Ende kommt ein funktionierendes System heraus. Ich habe mir eine
Kontaktvorrichtung gebaut um die bestückten Platinen zu Testen. 3 V dran,
Soundkartenanschluss, ein Programm laden, fertig. Ob am Ende dann
Pfostenstecker eingelötet werden und vielleicht auch Stiftleisten für die
Arbeit auf einem Steckboard, mal sehen. Für den Anfang könnte man mit einem
Steckboard das Problem der zu schwachen LEDs lösen. Einfach extern zwei
superhelle LEDs mit Vorwiderständen dran, dann klappt's auch bei hellem Licht.
Erfahrungen und Rückmeldungen
-
Gerd Sinning schreibt: ISP per Soundkarte ist eine gute Idee.
Damit könnte man auch die alte Situation lösen: wie programmiere ich
einen Programmer für die Chips wenn ich noch keinen Programmer habe.
Das Henne-Ei-Problem. Vielleicht können Sie ein Soundfile
veröffentlichen. Sonst nehme ich USBASP zum Programmieren am Laptop
oder Ponyprog mit einem alten XP-PC mit serieller Schnittstelle, der
bleibt mir noch treu.
- Neue Erfahrungen im Elektronik-Labor: Jetzt gibt es zwei Fälle, wo es nicht richtig geht. Der Anfang
funktioniert, aber dann kommen später falsche Daten an. Die grüne LED merkt
nichts und flackert weiter.
Fall 1 ist ein anderer Windows-PC. Es
sieht so aus als wäre ein Hochpassfilter drin, entweder als Software oder Hardware.
Der mittlere Pegel schwankt dann am Datenkanal hin und her. Man sieht es am Ende
der Übertragung, wenn der "Nullpegel" erst langsam wieder nach Null kriecht.
Fall 2 ist mein Tablet. Ich habe jetzt auf einer Platine die Filter mit
100R und 100n eingebaut. In der Einfachversion ohne Transistoren ging es damit.
Aber hier gibt es Probleme. Auch hier schwankt der Nullpegel, sieht genauso aus
wie an dem PC, wie ein Hochpass.
PCs
mit hoher unterer Grenzfrequenz am Sound-Ausgang haben anscheinend im
Moment noch Probleme. Mit dem Oszi kann man das gut sehen. Für diese
Probleme gibt es vermutlich eine Lösung. An der Software wird
gearbeitet. Demnächst wird es ein Update geben, mit dem dann
hoffentlich auch die Problemrechner arbeiten.
17.9.14: Schon da! Das neue Kodierungsverfahren hört sich anders an und funktioniert besser: Hier ein erster Test: Lottozahlengenerator.
17.9.13: MacBook Pro am Sparrow, von Rainer R.
Der
Test mit dem MacBook war sofot erfolgreich. Am Scope sehen die Signale
aus wie an einem PC. Allerdings ist die Signalamplitude mit ca. 5 Vss
deutlich höher.
Nachtrag:
Mit dem IPhone gab es Probleme, weil die Seiten von Thomas HTML5
verwenden. Mit einer neueren Version von Safari auf dem Macbook geht es.
Modifizierte TPA von Heinz D.
Im Rahmen des asm-Kurses 2013
hatte ich eine Beschaltung (TPA) vorgeschlagen, die leicht an den
Sparrow angepasst werden kann. Als Unterschied bleibt die Logik der
beiden Tasten, aber der Reihe nach:
Auf
Koppel-C's an Line kann meist verzichtet werden, das Poti hält den
Pegel für sck und mosi knapp auf log.0, (~Vcc/3, kann für Adc1
mitbenutzt werden), ein intern programmierter Pullup wird nicht
behindert, nur gedämpft.
Optional: Reset-Logik (nicht
ausreichend getestet, kann entfallen) bei jedem Sck wird C1 geladen und
hält Reset für ~1s aufrecht, J2 kann bei programmiertem T13 geöffnet
werden, der Piezo ist hilfreich.
Die 'alten' asm-Kursteilnehmer müssen nicht viel ändern.
Sparrow-App: Potitest
Hier
wird getestet, ob die sck/mosi-Leitungen sich durch R4/R5 beeinflussen.
Wird sck gehalten, dann wird das Poti so eingestellt, das die Led
gerade aus geht. Wird mosi gedrückt, darf die Led NICHT an gehen.
Werden beide gedrückt MUSS die Led leuchten. Bei angeschlossenem
Line-L/-R darf die Led nicht leuchten!
' Sparrow-App, Poti-Test, J1/J2 offen !!!
$regfile = "attiny13.dat"
$hwstack = 8
$swstack = 8
$framesize = 8
Ddrb = 1 ' miso-Led
Do
If Pinb.0 = 1 And Pinb.2 = 1 Then Portb.1 = 1 Else Portb.1 = 0
Loop
'end
18.9.14: Erfolge mit dem Nexus-Tablet
Für die unsauberen Signale am Tablet habe ich mir ein Anschlusskabel mit Tiefpassfilter gebaut.
Zweimal 100 Ohm und 100 nF. Bisher gab es trotzdem noch Probleme.
Aber jetzt hat Thomas das Soundfile so umgebaut, dass kein
DC-Anteil mehr im Signal enthalten ist. Es hört sich nun auch ganz
anders an. Das neue Verfahren wurde zuerst nur auf den Lottozahlengenerator
angewandt, damit man am Anfang noch Vergleiche anstellen kann. Und
tatsächlich, das Tablet kann jetzt ohne Probleme das Programm
übertragen. Aber das Filter muss sein.
Mein zweiter
Problemrechner, ein 64-Bit Windows-PC, tut es jetzt auch! Aber
ebenfalls nur mit dem Filter. Auch da gibt es am Kopfhörerausgang
unschöne Spikes, die mit dem Filter gedämpft werden. An diesem PC
können jetzt sowohl die alten als auch die neuen Soundformate
übertragen werden. Das ursprüngliche Problem lag also am fehlenden
Filter. Wichtig war, dass alle Filter und Soundeffekte der Soundkarte
ausgeschaltet wurden. Solche Sachen sind bei vielen modernen PCs
eingeschaltet, ohne dass man es bewusst wahrnimmt.
Weitere
Tests haben ergeben, dass das Tiefpassfilter bei einigen Rechnern
nützt, aber bei keinem schadet. Das war auch nicht anders zu erwarten.
Es zeichnet sich daher jetzt schon ab, dass diese vier Bauteile mit auf
die Platine (Revision 2) müssen.
Wav-Files vom Hex2Wav Konverter
Die
Software wurde jetzt komplett auf das neue Übertragungsverfahren
umgestellt: http://tiny.systems/article/soundKonverter.html Hier ist ein eigener Abspieler enthalten, der unter HTML5 läuft. Wenn Sie
für besondere Tests einen anderen Player einsetzen wollen, klicken Sie mit
der rechten Maustaste auf den Abspielbalken. Sie haben dann die Möglichkeit,
den Sound als Wav-File abzuspeichern. Der vorgeschlagene Dateiname wird aus den
ersten Zeichen der Datei selbst gebildet und sollte passend zu Ihrem
Testprogramm umbenannt werden.
Auch ohne
den Sparrow können Sie testen, ob es gehen könnte: Erzeugen sie ein Hexfile,
konvertieren Sie es und messen Sie das Signal an der Soundkarte mit dem
Oszilloskop. Im Idealfall sieht es ungefähr so aus wie im folgenden Bild und
hat eine Spitze-Spitze-Amplitude von rund 3 V. In andern Fällen werden die
zusätzlichen Tiefpassfilter benötigt. Einige Geräte haben eine deutlich
geringere Ausgangsspannung und brauchen vermutlich noch einen
Zwischenverstärker. Über Rückmeldungen und weitere Betatester würden wir uns sehr freuen, um
einen Überblick zu erhalten, welche Geräte noch Probleme machen. Siehe auch: http://tiny.systems/article/sparrowTesting.html
Sparrow mit DIP8-Fassung
Manchmal
geht was schief. In diesem Fall habe ich einen Tiny13 verdreht
eingebaut und dann gleich mit voller Stromversorgung heißgefahren. Also
wieder auslöten, vermutlich defekt. Das ist die Chance für den
Dip8-Tiny. Sockel drauf, fertig. So wird der Sparrow zu einem kleinen
Programmiergerät für den ATtiny13 und (Geheimtipp!) auch für den
ATtiny25, für den die Hex2Wav-Software ebenfalls passt.
Links
im Bild sieht man die provisorischen Anschlüsse zur Soundkarte. Lange
Stifte sind elastisch genug, um ohne Einlöten Kontakt zu bekommen,
wenn man sie etwas schräg andrückt. So bleibt die Entscheidung noch
offen: Stiftleisten dran, Audiokabel direkt anlöten oder alles im
Interesse der geringen Abmessungen freilassen.
Sparrow-Erfahrungsberichte
Rückmeldung von Rainer R.:
Der Sparrow läuft auf meinen PC Macbook pro mit neustem
Betriebssystem und Safari und braucht etwa 1Veff Outputlevel. Auf
einem IMac mit OSX 10.6x und Safari läuft es nicht, liegt aber wohl am
nicht aktuellen Browser. Auch auf einem PC mit Win7 und IE 11.0
funktioniert es leider nicht, aber mit dem Mozilla Firefox oder
dem Google Chrome Browser auf dem gleichen Gerät gibt es keine Probleme.
Auf
dem Samsung Tablet und einem IPhone 4 klappt es leider nicht,
Output < 0,5Veff, auch hier muss man nach einem entsprechenden
Browser suchen.
Fazit: Aktuelle Browser mit HTML5 Unterstützung
nutzen -( es muss piepen ;-)) Ggf. muss die Seite mit dem Upload
angepaßt werden. Weiterhin bedarf es einer Lösung für die
unterschiedlichen möglichen Outputlevel der Geräte.
Eine Rückmeldung von Holger Fritzsch:
Auch ich habe diese Pegelunterschiede gerade bei Samsung- Handies
bemerkt (unter 1,5Vss). Damit hat der Sparrow keine Chance. Ich habe
einen Emitterfolger vorgesetzt, aber damit mächtige Schwingneigung
bekommen und das Signal verformt sich total. In der Regel klappt es mit
ca. 3,5Vss...4Vss, bei 2 Laptops und Acer PDA geprüft- Impulse stehen
und Dächer satteln kaum ein. Das entspricht der Hälfte bis 2/3
NF- Aussteuerung.
Erfahrungen von Ralf Beesner: Auf
meinem Notebook geht's gar nicht. Weder unter Windows7 noch unter den
Linux-"Geschmacksrichtungen" Slackware 14.1, Debian7 und Kubuntu. Liegt
aber daran, dass der Sound zu schwach ist (1,8V Spitze - Masse). Die
grüne LED hat gar nicht geleuchtet; erst beim letzten getesteten Gerät
ist mir aufgefallen, dass die hektisch blinken muss, wenn an Slave-out
des ATtiny die Daten wieder herausgeschoben werden ;-) Mein Notebook
ist ein Lenovo L530. Das fällt schon dadurch unangenehm auf, dass es
nur EINE NF-Buchse gibt (4polig; von der Spitze aus gesehen: Links,
Rechts, Masse, Mikrofon.) Mikrofon liegt aus Kompatibilitätsgründen auf
dem Abschirmring (schauder). Einstellen kann man unter
Windows so wundervolle Sachen wie "automatisches Mute bei eingehenden
Kommunikationsverbindungen" aber nicht nützliches wie z.B. das
Abschalten irgendwelcher Frequenzgangverbesserer. Vermutlich wird es
der Trend bei Notebooks, dass die nur noch fürs Anschliessen einer
Hör-Sprechgarnitur ausgelegt werden. Am Desktoprechner gehts auch
nicht, obwohl am Soundkartenausgang 2V (Spitze - Masse) rauskommen und
die eigentlich recht gut aussehen (trapezförmig ohne Überschwinger
usw.). Sporadisch funktionierte es an einem alten Netbook (ACER One;
das erste Netbook, das Acer rausbrachte). Mal ging es erfolgreich über
mehrere Programmiervorgänge, nach Neustarten des Rechners dann wieder
nicht, usw. Die Spannung war auch nicht viel höher (so um 2,2 V (Spitze
- Masse)).
Nach langem Gefummel bin ich dann drauf gekommen, dass
man den Master-Regler nicht auf 100 % stellen darf, sondern nur auf 84%
bis 92% - eigentlich wusste ich sogar, dass die Soundqualität sehr
schlecht wird, wenn man alle Regler "aufreißt". Aber ich dachte halt,
dass das egal ist, wo doch ohnehin ein Rechteck draus werden soll....
Mit der gefundenen Einstellung lassen sich auch längere Hex-Files
übertragen, die den Flash-Speicher des ATtiny13 voll ausnutzen.
Allerdings habe ich die Wave-Dateien aufs Netbook runtergeladen und
lokal abgespielt, weil der Firefox schon arge Schwierigkeiten mit dem
Javascript-Gelumpe hatte und ins Röcheln geriet.
Beobachtungen von B. Kainka:
Ähnliche Probleme habe ich auch schon beobachtet, besonders mit der
alten Version der Soundkonvertierung. Da kommen zwei Dinge zusammen.
Einmal ist da der mittlere DC-Pegel langsam weggelaufen (jetzt nicht
mehr) und dann kommt es zu Verzerrungen bei machen Soundkarten, wenn
sie voll aufgedreht werden. An Mosi und Sck sieht man dann
Nadelimpulse, die mehr oder weniger groß sind. Dann hängt es auch von
der Betriebsspannung ab, ob sie bis über die halbe Spannung reichen und
sich auswirken. Und auch von der Zeit, also von der Länge des
Programms.
Lösungen: Mein Firefox-Browser hat sich die alten
Sounds gemerkt, aber „Neu Laden“ bringt die neuen. Die Sache mit den
Verzerrungen z.B. bei meinem Nexus-Tablet habe ich erst als gegeben
hingenommen. Jetzt aber habe ich bemerkt, dass es eine Sache der
Übersteuerung ist. Wenn ich die Lautstärke etwas zurücknehme ist das
Signal sauber. Allerdings bleibt da bei manchen Geräten nur ein ganz
enges Band, wo es noch funktioniert. Die zweite Maßnahme ist das
vorgeschaltete Tiefpassfilter mit zweimal 100 Ohm und 100 nF. Damit
habe ich eigentlich alle Spikes weggebügelt und darf dann einfach voll
aufdrehen.
Im Moment ist die ganze Sache noch zu
kniffelig. Die Betatester haben immer ein Oszi dran und stecken an dem
Gerät viel Arbeit rein bis alles läuft. Ich hoffe, dass wir am Ende
eine Schaltung haben werden, die auch ohne Oszi problemlos
arbeitet. Und die ganze Sache sollte zwischen 0,5 Vss und 5 Vss
an der Spundkarte gleich funktionieren. Das war wohl eine trügerische
Hoffnung, dass jedes Gerät etwa 3 Vss bringt.
Sparrow am Raspberry Pi
Inzwischen
habe ich die genau passenden Schottkydioden bekommen. Dies ist der
erste
Sparrow mit den kleinen Dioden. Ich habe ihn inzwischen an
Hermann Nieder geschickt. Von ihm kam der folgende Erfahrungsbericht:
Ich habe inzwischen auch mit der Sparrow-Platine experimentieren können. Die
Programmierung gelingt an meinem XP-PC unter Windows und auch an meinem
Raspberry Pi. Dort verwende ich als Browser Iceweasel. Die
Soundinterface-Schaltung V3.1 mit einem LM339 habe ich auf einem kleinen
Steckboard aufgebaut. Sie funktioniert ebenfalls mit beiden Geräten. Ich
betreibe die Sparrow-Platine und die Schaltung auf dem kleinen Steckboard
mit einem LM339 jeweils mit 3V. Übrigens, wenn aus Letzterer der ATtiny13
entnommen wird und stattdessen über drei Leitungen(MOSI, SCK und RES) eine
Schaltung mit einem ATtiny26, einem ATtiny24 oder einem ATtiny2313 angeschlossen
wird, dann gelingt es auch einen solchen ATtiny zu programmieren.
Fuse-Retter
Dieser
Sparrow wurde hier schon mit Tiefpassfiltern ausgerüstet. Trotzdem ging
was schief. Durch fehlerhafte Signale wurden die Fuses so verstellt,
dass Reset deaktiviert wurde. Das ist von außen leicht zu messen, man
findet keine Spannung mehr an Reset. Der Controller ist dann
sozusagen gar nicht mehr da. Aber mit einer DIL-Fassung und einem
"großen" Tiny13 ging es weiter. Inzwischen wurde der Arduino-Fuse-Retter
zum Einsatz gebracht. Der SMD-Tiny geht wieder.
Eigentlich
ist die Fassung ja nun nicht mehr nötig. Aber das ist die Chance für
einen andern Versuch: Zwei Tinys synchron brennen! Wenn das klappt hat
man ein praktische Entwicklungsplattform. Auf dem Sparow entwickelt man
ein Programm bis alles gut funktioniert. Dann kommt zusätzlich ein
DIL-Tiny in die Fassung und wird mit dem gleichen Programm versehen.
Diesen kann man danach irgendwo anders einbauen.
Ein Sparrow mit zwei Tiny13, eine noch ungetestete Idee von Heinz D.
Ein Tiny13 dient zur Signalaufbereitung und als ISP-Interface: 1410-Sparrow-mit-Zweit-T13.zip