Für einen Wettbewerb in meinem erweiterten Bekanntenkreis werde ich
(nach langer Zeit) mal wieder teilnehmen.
Die Aufgabe:
Eine Schaltung entwickeln, die
- Bauteilekosten unterhalb einem Euro (ohne PCB)
- Bauteilekosten aus China-Quelle, mitnahme von Mengenrabatten bis 10
Stck.
- keine fertigen Module dürfen eingesetzt werden.
- Sinn der Schaltung frei wählbar.
Also dachte ich mir, weil ich nicht immer meinen Universal-Programmer
zur Verfügung habe und ich bisweilen bei den ATtinys den Reset-Anschluss
als GPIO verwende: ich mache einen Fuse-Reseter wie es im Netz und hier
schon zu finden gibt (und ich immer noch keinen gebaut habe).
Was braucht man hierfür:
- geschaltete Leitungen
- einen Step-Up Wandler zur Erzeugung der 12V Programmierspannung
Dann stelle ich für mich fest, dass ich diese Hardware ja schon habe:
Beitrag "Arduino - UNO Flashershield (Linux)"
Ursprünglich wollte ich das extrem minimalistisch machen und vllt. einen
ATtiny13 dazu verwenden, aber das war mir aufgrund der wenigen I/O Pins
dann zu arg. Ein ATtiny44 würde gehen (und evtl. realisiere ich das noch
einmal mit dieser MCU), aber:
Ein ATmega8 (hey, ich weiß dass er alt ist, aber für diesen Zweck reicht
er mehr als aus) ist zudem in China der zweitpreiswerteste Controller
den ich gefunden habe. Also habe ich das für einen ATmega8 geschrieben
(in ein Arduino Board einen Mega8 mit Bootloader gesteckt).
Das vorliegende Programm arbeitet mit ATmega8, ATmega48/88/168/328p und
unterstützt als Targetcontroller:
- ATtiny13
- ATtiny24/44/84
- ATtiny25/45/85
Bis auf den ATtiny24 und ATtiny25 habe ich das Programm getestet und
funktioniert.
Ich werde also später des Flashershields nochmal aufbauen, aber nicht
auf einem Arduino-r3 Formfaktor und die Connectoren des Flashershields
durch 8 und 14 polige Sockel ersetzen.
--------------------------------------------------------------
Die Schaltung kann sowohl als Standalone - Schaltung betrieben werden,
als auch über eine serielle Schnittstelle.
Nach anlegen der Betriebsspannung blinkt die gelbe Leuchtdiode als
Anzeige dafür, dass die Schaltung betriebsbereit ist.
Es kann ein Chip in den Sockel eingesteckt werden (die 12V
Programmierspannung sowie die Betriebsspannung für den Target-Controller
sind abgeschaltet).
Drücken (und gedrückt halten) der Taste bis die LED aufhört zu blinken
und Taster loslassen.
- der eingesetzte Controller wird auf seine Default Fuses zurück gesetzt
War das Rücksetzen erfolgreich, leuchtet für kurze Zeit die grüne LED
auf. Die gelbe Leuchtdiode blinkt wieder, alle Spannungen am
Target-Controller sind abgeschaltet, ein weiterer Controller kann
eingesetzt werden.
War das Rücksetzen nicht erfolgreich, leuchtet die rote LED auf, diese
muss mit einem weiteren Tastendruck quittiert werden und die gelbe LED
blinkt wieder.
Bedienung über die serielle Schnittstelle:
Ist eine serielle Schnittstelle angeschlossen, kann das Rücksetzen
verfolgt werden. Es wird der eingesetzte Controller sowie die momentan
gesetzten Fuses angezeigt.
Ein Drücken der Schaltungstaste setzt wie oben beschrieben die Fuses auf
die Defaultwerte zurück.
Wird anstelle der Schaltungstaste eine Taste der Tastatur gedrückt,
können die Werte der Fuses die geschrieben werden sollen, über die
Tastatur eingegeben werden.
--------------------------------
Alles in allem bin ich auf 0,98 Euro gekommen
So, jetzt habe ich die Schaltung und das Programm für den 1 Euro
Wettbewerb (und die Bauteile kosten in China 98,6 Cent).
----------------------
Realisiert ist der Reseter mit einem ATtiny44. Im Makefile kann
angegeben werden, ob die Firmware eine UART-Ausgabe unterstützen soll
oder nicht.
1
# version_t24 = 1 => Fuse-Reseter Firmware fuer einen ATtiny24
2
# keine Ein- und Ausgabe auf der UART moeglich, da
3
# Flashspeicher fuer eine Implementierung von printf
4
# nicht ausreicht
5
# = 0 => Fuse-Reseter Firmware fuer ATtiny44/84
6
7
version_t24 = 0
Die Version mit UART Ein- / Ausgabe (version_t24 = 0) erzeugt 3682
Codebytes (und passt somit nicht in einen ATtiny24), die Version ohne
UART (version_t24 = 1) erzeugt 990 Byte und kann somit auch in einem
ATtiny24 verwendet werden.
----------------------
Bedienung:
Nach anlegen der Betriebsspannung ( 5 V ) blinkt die DUO-LED gelb.
Den zu resetenden ATtiny je nach Pinanzahl in den entsprechenden 8- oder
14 poligen Sockel einsetzen und die Taste drücken bis die DUO-LED
dauerhaft gelb leuchtet.
Taste loslassen.
War das Reseten erfolgreich leuchtet für kurze Zeit die DUO-LED grün,
anschliessend blinkt die LED gelb.
Bei Misserfolg leuchtet die LED rot, dieser Misserfolg muss mit einem
Tastendruck quittiert werden.
Ein gelbes Blinken signalisiert die Bereitschaft der Schaltung
Bei Betrieb über den UART wird der eingesetzte Chip nach Betätigen des
Tasters oder dem Betätigen einer Taste auf der Tastatur angezeigt.
Wurde eine Taste der Tastatur gedrückt, können die Werte für die Fuses
manuell eingegeben werden.
-----------------------
Zum Wettbewerb in meinem privaten Umfeld (für den ich die Schaltung
gemacht habe), gelten folgende Bedingungen:
Die Schaltung darf an Bauteilen (ohne Platine) nicht mehr als 1 Euro
kosten.
Alle Bauteil sollen in China über EBAY bestellbar sein.
Für das Mitnehmen von Mengenrabatten aus China gilt:
- Mitnahme von Mengenrabatt bis zu einer Stückzahl von 10 Stück
- Mitnahme von Mengenrabatt bis zu einem Gesamtpreis von 2 Euro für die
Gesamtmenge.
Hieraus ergab sich:
1
Stückzahl in Bauteil Stück Mengenpreis Einzelpreis
--------------------------------------
Aber nachdem im Forum jemand ein Problem mit einem Kopfhörerverstärker
hat, sollte ich vielleicht einen Verstärker einreichen (allerdings
glaube ich dass von den 10 Teilnehmern ein paar Verstärker dabei sein
werden).
Prinzipiell finde ich die "Frage" spannend, was man mit einem
Bauteilewert von einem Euro alles anstellen kann und vielleicht sollte
man hier im Forum einen solchen Wettbewerb auch einmal veranstalten.
Schlicht "just for fun"
Gruß
JJ