Forum: Mikrocontroller und Digitale Elektronik Programmierer für ATtiny4 gesucht


von Karsten S. (phonetracker)



Lesenswert?

Hallo liebe Mikrocontroller.net-Gemeinde,
dies ist seit Jahren mal wieder ein µC-Projekt von mir, also seid bitte 
nachsichtig bei doofen Fragen ;-).

Zur Vorgeschichte :
Ich kenne mich ganz gut im Bereich Hardwarentwicklung aus, bin aber 
(leider) kein Programmierer. Deshalb suche ich einen freundlichen 
Helfer, der mir das benötigte Programm schreibt. Also wer Lust, Zeit und 
Ahnung davon hat, bitte ein Angebot an mich richten!

Zum Projekt :
Es soll ein ATtiny4 (ggf. ATtiny9) zum Einsatz kommen. Sein Job ist 
recht überschaubar und auch nicht sonderlich zeitkritisch.
Ein Pin wird als Eingang konfiguriert und auf Pegelwechsel überwacht, 
während zwei weitere Pins als Ausgang konfiguriert werden und einen 
Impuls bzw. eine Impulsfolge ausgeben sollen.
Konkret heisst das:
Wechselt der Pegel am Eingang von High auf Low, soll ein Ausgang einen 
kurzen Low-Impuls ausgeben. Der zweite Ausgang ist immer die invertierte 
Version des ersten Ausgangs, gibt also einen kurzen High-Impuls ab.
Wechselt der Pegel am Eingang von Low auf High, soll der eine Ausgang 
zwei kurze Low-Impulse ausgeben. Der zweite Ausgang dann entsprechend 
zwei kurze High-Impulse. Soweit zur Hauptfunktion.
Zusätzlich soll der Eingang noch von einem Timer überwacht werden. 
Wechselt der Pegel am Eingang nach einem ersten Pegelwechsel innerhalb 
einer definierten Zeitspanne wieder zurück, wird dieser zweite 
Pegelwechsel ignoriert. D.h. es werden keine Impulse an den Ausgängen 
ausgegegen. Das alles spielt sich im 100ms-Bereich ab. Ein Flow-Chart 
mit Timing-Diagramm habe ich als Anhang beigelegt.

Besonderheiten :
Primäres Ziel ist ein extrem geringer Stromverbrauch. Dafür gibt es so 
Einiges zu beachten. Folgende Maßnahmen sind vorgesehen:
- Versorgungsspannung 1,8V
- Taktung über den internen 128 kHz Oszillator
- Abschalten aller internen Pull-Ups
- Erlauben des externer Interrupts
- Erlauben des Timerintterupts
- Idle Mode während des Wartens auf einen externen Interrupt durch 
Pegelwechsel bzw. Erreichen eines Timerwertes

Laut Datenblatt sollte der Stromverbrauch im Idle Mode bei etwa 3µA 
liegen, was während der meissten Zeit der Fall wäre.  Nach Wechsel in 
den aktiven Mode (also nach Auftreten eines Pegelwechsels am Eingang 
bzw. eines abgelaufenen Timers) kurzzeitig bei ca. 35...40µA.

Weiterhin soll der ATtiny über das Tiny Programming Interface (TPI) 
In-System programmierbar sein. Die drei Anschlüsse + Stromversorgung 
werden später als Testpoints auf dem PCB herausgeführt.

Ich bin alle Register durchgegangen und hoffe, dass ich nichts übersehen 
habe. Aber wenn sich ein erfahrener Programmierer der Sache annimmt, 
weiss der eh besser was zu tun ist. Mit welchem Tool bekomme ich das 
Programm eigentlich in den ATtyni, wenn dieser schon auf dem PCB sitzt?

: Bearbeitet durch User
von B Nerd (Gast)


Lesenswert?

Du kennst du doch mit den Registern usw ganz gut aus. So schwer kann es 
eigentlich nicht sein, sich das Programmieren für so ein Kleinstprogramm 
beizubringen.

von Karsten S. (phonetracker)


Lesenswert?

Ich habe vor 25 Jahrem mal mit Assembler "experimentiert" und mich immer 
mal wieder aufgerafft, daran anzuschließen. Bekomme es aber nicht auf 
die Reihe :-(. Aber es wird sich doch hier jemand finden .... hoffe ich!

von Karl M. (Gast)


Lesenswert?

Was ich mich frage,

warum man sich mit einem ATtiny4 so einschränkt ?!

Ein ATtiny10 wäre schon mal etwas "größer" und hat einen ADC.
Ein ATtiny4/5/9/10 muss über das TPI protocol programmiert werden, ISP 
muss man doch noch etwas mehr machen, so dass man die I/O Pins frei 
bekommt.

Aber ein attiny85 ist viel einfacher zu programmieren, in zweifacher 
Hinsicht. Ich verpasse ihm immer einen seriellen Bootloader, evtl. nutze 
ich auch einen 1-Wire Bootloader.

Für einen attiny85 findet man dann auch viel mehr Leute, die einem eine 
Programm schreiben würden.

von Max D. (max_d)


Lesenswert?

Als programmoeradapter bietet sich ein avrisp mk2 an.
Dein Code ist ja fast fertig. Schreib den halt in Assembler um und teste 
ob er tut was er soll...

von Karsten S. (phonetracker)


Lesenswert?

Max D. schrieb:
> Als programmoeradapter bietet sich ein avrisp mk2 an.

Aha, OK, danke!

Der Rest sind nett gemeinte Ratschläge, die mich aber nicht weiter 
bringen. Die Nachfrage steht nach wie vor: Wer schreibt mir gegen 
Aufwandsentschädigung das notwendige Programm?

von Stefan F. (Gast)


Lesenswert?

> Wer schreibt mir gegen Aufwandsentschädigung das notwendige Programm?

Erfahrungsgemäß funktioniert die Sache in der Schaltung oft doch nicht 
so, wie in theorie geplant. Wenn du ein Ablaufdiagramm und einen 
Prototypen der gesamten Schaltung bereitstellst, mache ich Dir ein 
Angebot.

Ansonsten: So im Blindflug nur auf Bassis von so ein paar Zeilen Text 
traue ich mich nicht heran. Nachher vervielfacht sich womöglich der 
Aufwand und wir streiten uns um die Kosten.

von jb (Gast)


Lesenswert?

>Taktung über den internen 128 kHz Oszillator

Der schnellere interne Oszillator bringt dich schneller wieder in den 
Sleep-Modus, ist daher sparsamer. Gruß J

von jb (Gast)


Lesenswert?

Du hast das doch schon fast komplett aufgedrösselt. Ich würde ein Board 
mit Debugmöglichkeit wählen, einmal alles implementieren und mich dann 
mit Hilfe des Debuggers den Denkfehlern / Syntaxfehlern stellen.

Gruß J

von Stefan F. (Gast)


Lesenswert?

Ich glaube, du hast da was übersehen.

Der ATtiny4 ist "In System programmable at 5V only", du willst ihn aber 
im System bei 1,8V programmieren.

von Karsten S. (phonetracker)


Lesenswert?

Stefan U. schrieb:
> Ich glaube, du hast da was übersehen.
>
> Der ATtiny4 ist "In System programmable at 5V only", du willst ihn aber
> im System bei 1,8V programmieren.

Nein, ich will ihn nur mit 1,8V betreiben. Nach der Bestückung wird er 
mit 5V programmiert, bevor das PCB dann verbaut wird. Da keine weitere 
Peripherie on Board ist, die mit 5V ein Problem hätte, ist das kein 
Thema.

> Erfahrungsgemäß funktioniert die Sache in der Schaltung oft doch nicht
> so, wie in theorie geplant. Wenn du ein Ablaufdiagramm und einen
> Prototypen der gesamten Schaltung bereitstellst, mache ich Dir ein
> Angebot.

Ich könnte ein STK600 + ATSTK600-ATTINY10 als Entwicklungsumgebung zur 
Verfügung stellen. Aufgabe wäre dann, das Programm in dieser Umgebung 
zum Laufen zu bekommen. Wenn es denn bei der Portierung auf mein eigenes 
PCB zu Problemen kommt und die Software noch mal angepasst werden 
müsste, müsste ich das halt extra zahlen. Wäre das OK?

Vielleicht kannst Du mir mal auf dieser Grundlage ein Angebot machen....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.