Das Problem ist wie verbinde ich den Chip mit dem Programmer?
Der Chip hat 8 Beine, der Programmer entweder 6 oder 10, je nach Port.
Das Problem ist wie verbinde ich den Chip mit dem Programmer?
Der Chip hat 8 Beine, der Programmer entweder 6 oder 10, je nach Port.
Du verwendest einen ISP Programmer, den verbindest du mit den ISP Anschlüssen des Controllers. Für den Anfang könntest du es mit dem Testsockel verbinden (einfach das Verbindungskabel am Programmer und am Testsockel, am richtigen Stecker, anschließen).
Wenn du es direkt verbinden willst (am Breadboard), verbindest du die Anschlüsse
VCC mit VCC
GND mit GND
Miso mit Mosi
Mosi mit Miso
Clk mit Clk
Rst mit Rst
Beim 10poligen Stecker hast du mehrmals GND, ansonsten ist er gleich wie der polige. Die anderen lässt du einfach frei. Achte auch auf die Versorgung, wenn die Schaltung von dem Programmer versorgt wird musst du auf die Strombelastung achten. Wenn du die Schaltung mit einer eigenen Versorgung hast, musst du die Versorgung (VCC) vom Programmer trennen, GND muss aber verbunden sein.
MfG Hannes
Danke, mit den Infos hab ich das Pin Layout gefunden https://arduinoelettronica.files.wor...y85_pinout.png
und dann den Programmer, hoffentlich richtig, verbunden.
Leider unterstützt der Programmer wohl nicht Linux und ist damit nutzlos für mich... schick ich morgen zurück.
Ist es möglich den Programmer mit dem ich die Arduinos programmere zu nutzen? https://www.amazon.de/gp/product/B00...?ie=UTF8&psc=1
Oder hast einen Vorschlag für einen einfachen Programmer?
Für die die es interessiert, das passiert wenn ich das Programm downloaden möchte:
Code:Binary sketch size: 808 bytes (of a 8,192 byte maximum) avrdude: stk500v2_command(): command failed avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.
Mit avrdude kenne ich mich nicht aus, dadurch kann ich dir da nicht helfen. Aber den Adapter, den du für die Arduinos hast, kannst du nicht nehmen. Das ist kein Programmer, sondern ein USB-Uart Wandler. UART ist eine RS232 Schnittstelle mit 0-5V (bzw 0-3,3V) Pegel. Du kannst diesen beim Arduino nehmen, weil der Arduino einen bootloader besitzt.
MfG Hannes
Heute ist es soweit, die Wireless Module sind gekommen und sobald ich zuhause bin werde ich sie testen. Vorausgesetzt ich kriege schnell eine Übertragung hin ist das gröbste fertig.
Mit dem neuen Programmer kann ich den Attiny85 problemlos programmieren(auch wenn das anschließen der Beine ein Horror war) und selbst debug prints über UART funktioniert toll.
Die letzte verbleibende Sache ist Powermanagement...
Ich möchte das das ganze mindestens 1 Jahr ohne Batterie wechsel funktioniert. Außerdem wäre es schön wenn ich ein Notsignal senden könnte wenn die Spannung anfängt zu fallen. Der Attiny hat einen ADC, kann ich die Spannung da einfach reinfetzen und mit der internen Referenz vergleichen? Oder ist das eine Schnappsidee? ^^
Welche Batterie wäre sinnvoll? Hab an eine 9V Block Batterie gedacht, jedoch muss ich dann zwingend die Spannung vorher runter auf 5V bringen da ich keine Arduinos mehr nutze.
Im Leerlauf verbrauche ich momentan ca 8mA laut Multimeter.
Würde gern einen längeren Test machen und mir den mAh Wert ausrechnen. Laut Wikipedia haben die 9V Block Batterien ca 550 mAh Kapazität. https://en.wikipedia.org/wiki/Nine-v...specifications
Da ich kein Oszilloskope habe und das 220V Stormmessgerät in Ah Stunden rechnet(und somit wohl sehr ungenau ist für so niedrige Ströme) kann ich mir vielleicht etwas basteln.
Falls meine Idee mit dem ADC funktioniert könnte ich doch mit Hilfe eines bekannten Widerstandes den Strom ausrechnen, das über Zeit integrieren(bzw aufsummieren) und hätte dann am Ende einen Verbrauch oder?
8mA kommte mir jedoch ziemlich hoch vor. Noch hab ich 0 Optimierungen im Code und alles ist Busy-Waiting. Ich denke man kann Strom sparen wenn man auf Interrupts geht und den Kern schlafen legt. Hab versucht etwas über dieses Thema zu finden, aber es ist so umfangreich das ist noch nicht so ganz durchblicke. Tipps?
Aja, weiß jemand wie die Delay Funktion realisiert ist? Ich nehme an auch durch dummes Busy-Waiting anstatt den Kern schlafen zu legen?
Um mit den 550mAh ein Jahr auszukommen, musst du auf 0.063mA, im Mittel, runter.
Am einfachsten ist es schon, alles in Interrupts zu packen. Nach der Initialisierung besteht dann dein Programm nur noch aus:
while (1) SLEEP();
Allerdings musst du auch alle Peripherie ausschalten die nicht benötigt wird.
Weiter sollte man den Takt so weit runterschrauben wie möglich.
Bei CMOS besteht de3r Stromverbrauch aus einem konstanten Anteil, welcher sich aus eckströmen und dem Strom für PullUps zusammensetzt.
Der andere Anteil ist direkt proportional zur Frequenz. Also wenn sich die Frequenz verdoppelt, verdoppelt sich auch der Strom. Dies beruht vor allem im Umladen der Kapazitäten.
Deshalb spart es auch Strom, wenn man nicht benutzte Peripherie vom Takt trennt.
Den Stromverbrauch zu minimieren ist eine hübsche Aufgabe und du wirst dabei viel über den Prozessor lernen.
Ein Oszilloskop brauchst du eigentlich gar nicht, es genügt ein langsames DVM, welches über die Messzeit den Mittelwert bildet. Ein DVM mit Dual- bzw. Quad Slope macht so 2-4 Messungen/s und ist dafür schon ganz gut geeignet.
MfG Peter(TOO)
Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
Lesezeichen