ISP mit der Soundkarte V2       

      
Elektronik-Labor  Projekte  AVR Sparrow 



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



Video: http://youtu.be/5DjzB3Sbejs

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



Elektronik-Labor  Projekte  AVR Sparrow