attiny85 mit atmega2560 flashen

Hallo Zusammen!

Ich würde gerne den ATtiny85 mit dem ATmega2560 flashen. Habe den Aufbau nach diesem Link hier umgesetzt: ATtiny: Winzlinge ganz groß | heise Developer
Zwischen dem Reset und GND liegen 10uF. Beim Hochladen des Beispiel Blink Sketchs bekomme ich diese Fehlermeldung:

Arduino: 1.8.5 (Windows 7), Board: "ATtiny25/45/85, ATtiny85, Internal 16 MHz"

Der Sketch verwendet 684 Bytes (8%) des Programmspeicherplatzes. Das Maximum sind 8192 Bytes.
Globale Variablen verwenden 9 Bytes (1%) des dynamischen Speichers, 503 Bytes für lokale Variablen verbleiben. Das Maximum sind 512 Bytes.
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -pattiny85 -cstk500v1 -PCOM13 -b19200 -Uflash:w:C:\Users\jueri00c\AppData\Local\Temp\arduino_build_684281/Blink.ino.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

Using Port : COM13
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATtiny85
Chip Erase delay : 400000 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 12 4 0 no 512 4 0 4000 4500 0xff 0xff
flash 65 6 32 0 yes 8192 64 128 30000 30000 0xff 0xff
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00

Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Beim Hochladen des Sketches ist ein Fehler aufgetreten
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

avrdude done. Thank you.

Könnt ihr mir damit weiterhelfen?

VG
digi

Der Mega hat SPI auf anderen Pins, als der UNO

Siehe
ungetestet

Aus ArduinoISP.ino:

// This sketch turns the Arduino into a AVRISP
// using the following arduino pins:
//
// pin name:    not-mega:         mega(1280 and 2560)
// slave reset: 10:               53
// MOSI:        11:               51
// MISO:        12:               50
// SCK:         13:               52

Bekomme den gleichen Fehler

tiny .. atmega
1 .. 53
4 .. GND
5 .. 51
6 .. 50
7 .. 52
8 .. 5V

sehe ich das richtig?

digita4lo:
Bekomme den gleichen Fehler

Und einen Elko (10 µF) am Mega (Reset gegen GND) hast du verbaut ?

HotSystems:
Und einen Elko (10 µF) am Mega (Reset gegen GND) hast du verbaut ?

Jap

Entweder der ATtiny defekt oder Kabel falsch bzw. ohne Kontakt gesteckt.

Scheinbar hab ich den atmega 2560 nicht richtig angeschlossen, mit dem Uno Board hat es direkt funktioniert.

Wenn ich ein Programm schreibe und mir die Mikrosekunden in einer Variabel vom Typ unsigned long speichere, kommt das Arduino Board und der attiny auf verschiedene Werte?

kommt das Arduino Board und der attiny auf verschiedene Werte?

Natürlich!
Jeder µC kommt auf seine eigenen Werte.

digita4lo:
Scheinbar hab ich den atmega 2560 nicht richtig angeschlossen, mit dem Uno Board hat es direkt funktioniert.

Wenn ich ein Programm schreibe und mir die Mikrosekunden in einer Variabel vom Typ unsigned long speichere, kommt das Arduino Board und der attiny auf verschiedene Werte?

Ok, dann funktioniert es jetzt beim Uno, ein kleiner Erfolg.

Das mit den verschiedenen Werten liegt vermutlich daran, dass du den ATtiny mit einer falschen Taktfrequenz geflasht hast.

Der ATtiny hat von Haus aus 1 MHz intern, wenn du eine andere Taktfrequenz brauchst, musst du erst die Fuses per Bootloader setzen. Es wird kein echter Bootloader geflasht, sondern nur die Fuses gesetzt.

Hi

Liegt daran, daß millis() ja nicht wirkich was mit der vergangenen Zeit zu tun hat.
Beim Uno rennt der Quarz mit 16MHz, der ATtiny wird wohl mit internem 1MHz RC-Oszillator laufen.
Wenn Beide 'denken', Sie wären mit 16MHz unterwegs, kommen Beide erst nach 16.000.000 / 1000 = 16.000 Takten auf den Wert 1000 (16 Millionen Takte die Sekunde, alle 16.000 Takte +1 gezählt, macht nach einer Sekunde den Wert 1000).
Beim ATtiny dauert Das aber ungefähr 16xlänger, da Er nur 1.000.000 Takte die Sekunde macht, aber auch nur den Befehl hat, alle 16.000 Takte +1 zu rechnen (wo Er eigentlich schon bei +16 sein müsste).

Hatte aber eigentlich im Hinterkopf, daß Das die IDE 'von Sich heraus richtig macht' - zumindest kann ich mit meinen ATtiny's schwätzen, also die zeigen mir was im Terminal an mit der eingestellten Geschwindigkeit.

Beim nächsten Mal achte ich drauf.

MfG

Hatte aber eigentlich im Hinterkopf, daß Das die IDE 'von Sich heraus richtig macht' -

Wenn man ihr die Chance gibt.

Aber trotzdem werden 2 Oszillatoren niemals 100% Synchron laufen.

Wenn ich ein Programm schreibe und mir die Mikrosekunden in einer Variabel vom Typ unsigned long speichere, kommt das Arduino Board und der attiny auf verschiedene Werte

Diese Aussage ist damit eigentlich immer als wahr anzunehmen.

Hi

Achso - janee, ist klar.
Daran, daß zwei Counter identisch schnell hochzählen könnten, hatte ich nicht Mal eine Sekunde gedacht (also auf verschiedener Hardware).
Ging davon aus, daß die Takte 'meilenweit' auseinander liegen und deshalb die Zähler 'anders' gehen - also eine wirklich andere Geschwindigkeit.

MfG

Ging davon

Ziehe ich auch in Betracht.

Aber ich bin nicht (mehr) bereit Annahmen zu treffen, um diese dann wieder korrigieren zu müssen.
Ausdenken, vergessen, neues merken.
Nenne es Faulheit... wenn du willst...
Aber es ist einfach die dreifache Arbeit, mit zwei unsinnigen Komponenten.

Warum soll ich mir die machen, wenn doch der Threadersteller die Sache klarer formulieren könnte. Denn er hat es vor sich. Ich nicht.

postmaster-ino:
Hatte aber eigentlich im Hinterkopf, daß Das die IDE 'von Sich heraus richtig macht' - zumindest kann ich mit meinen ATtiny's schwätzen, also die zeigen mir was im Terminal an mit der eingestellten Geschwindigkeit.

Du hast einen ATtiny, der mit den fuses auf 1 MHz eingestellt ist. Dann startest Du die IDE, stellst 8 MHz ein und lädst das Programm. Nun liegen die Zeiten "meilenweit" um den Faktor acht daneben.

Wenn man sicher gehen will, muß man fuses und Programm mit der selben Einstellung in der IDE zum ATtiny übertragen, dann macht es die IDE von sich aus richtig. Das gilt natürlich allgemeiner.

Bei einem UNO mit 16 MHz Resonator werde ich aber davon ausgehen, daß die fuses auch für diese Frequenz eingestellt sind.

Ich hoffe, ich konnte mich verständlich ausdrücken :slight_smile: