Forum: Mikrocontroller und Digitale Elektronik ATtiny85 (AVR Atmel 8bit), Linux, Microcontroller, C/C++


von dummyuser (Gast)


Lesenswert?

Hallo mikrocontroller Gemeinde,

Was ich möchte: ich möchte unter Linux C/C++ programme schreibe und die 
auf dem ATtiny85 laufen lassen.

Ich habe eine Vorstellung und hoffe das ihr meine Fragen beantworten / 
mich Unterstützen könnt.
Es gibt sehr viel Information im www, allerdings habe ich noch offene 
Punke.
Hinzu kommt, dass ich kaum Erfahrung (vergessen oder nie verstanden) in 
Elektrotechnik habe.

Ich stelle (Wunschvorstellung) so vor:
* breadboard / steckerboard
* kabel
* LED (als Output)
* ATtiny85
* Verbindung zwischen Computer und breadboard, um C/C++ Programm auf den 
ATtiny85 zu flashen. USBasp?

Das Problem ist,
1. Was kaufe ich wo ein? Vielleicht macht sich jemand die Mühe und 
schickt mir Beispiellinks für ein breadboard, kabel, ...
2. Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es 
anschließe

Vielen Dank für eure Unterstützung.

von Axel S. (a-za-z0-9)


Lesenswert?

dummyuser schrieb:
> Was ich möchte: ich möchte unter Linux C/C++ programme schreibe und die
> auf dem ATtiny85 laufen lassen.

Ja. Machen.

> Ich stelle (Wunschvorstellung) so vor:
> * breadboard / steckerboard
> * kabel
> * LED (als Output)
> * ATtiny85

Das ist alles trivial.

> * Verbindung zwischen Computer und breadboard, um C/C++ Programm
> auf den ATtiny85 zu flashen. USBasp?

USBASP kann man nehmen (mache ich z.B.). Gibt es sehr billig aus China. 
Allerdings meist mit steinzeitalter Firmware, so daß man als erste 
Aktion die Firmware updaten muß. Deswegen sollte man zwei von den 
Dingern kaufen. Dann kann man den einen mit dem anderen updaten.

Es gibt aber unzählige ISP-Adapter am Markt. Lies den Artikel 
AVR In System Programmer im hiesigen Wiki.

Geflashed wird aber nicht das C- oder C++-Programm, sondern der daraus 
compilierte Maschinencode.

Ich hätte übrigens eher erwartet, daß du fragst, welche Software du 
brauchst. Denn die meisten Anleitungen im Web gehen davon aus, daß man 
Windows verwendet und da ein Rundum-sorglos-Paket wie etwa die AVR-IDE 
installiert. Das hast du bei Linux nicht (braucht man auch nicht).


> Das Problem ist,
> 1. Was kaufe ich wo ein? Vielleicht macht sich jemand die Mühe und
> schickt mir Beispiellinks für ein breadboard, kabel, ...

Wenn du noch gar nichts hast, kannst du auch ein fertiges Starterset 
kaufen. Z.B. bei https://www.ehajo.de/startersets/. Oder Einzelteile bei 
Conrad oder Reichelt oder Pollin oder wo du sonst einkaufst.

> 2. Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es
> anschließe

Dann fang mit einem Tutorial an. Z.B.

AVR-GCC-Tutorial oder
AVR-Tutorial oder
http://stefanfrings.de/mikrocontroller_buch/index.html

Fang halt an. Und dann stell konkrete Fragen.

von Eric B. (beric)


Lesenswert?

dummyuser schrieb:
> Ich stelle (Wunschvorstellung) so vor:
> * breadboard / steckerboard
> * kabel
> * LED (als Output)
> * ATtiny85
> * Verbindung zwischen Computer und breadboard, um C/C++ Programm auf den
> ATtiny85 zu flashen. USBasp?

Oder nimm einfach ein Arduino. Ist zwar kein tiny, aber für die ersten 
Gehversuchen nicht verkehrt.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Je nach Linux Distro gibt auch hier komplette Pakete für AVR 
Programmierung, einfach mal im Paket Manager suchen. Man füge noch den 
Texteditor nach Wunsch zu und das sollte es sein.

von Stefan F. (Gast)


Lesenswert?

Du könntest damit anfangen:
http://stefanfrings.de/avr_hello_world/index.html
http://stefanfrings.de/avr_tools/index.html

Und natürlich mein Buch, das Axel bereits empfohlen hat. Das passt in 
deinem Fall wie der Deckel auf den Topf.
http://stefanfrings.de/mikrocontroller_buch/index.html

von Martin H. (horo)


Lesenswert?

Die kleinste Lösung: http://digistump.com/products/1
gibt es auch mit Micro-USB-Anschluss vom freundlichen Chinesen für 1..2€ 
pro Stück, Bootloader mit USB-Kommunikation ist schon drauf, eine LED 
ebenso (Platine im Bild rechts):
https://www.hackster.io/glowascii/attiny85-for-simple-projects-arduino-basics-c9f95f

von Martin H. (horo)


Lesenswert?

P.S.: Auf dem Linux-Rechner brauchst Du noch die Software micronucleus, 
um die erstellten hex-Files zu übertragen:
https://github.com/micronucleus/micronucleus

von dummyuser (Gast)


Lesenswert?

> USBASP kann man nehmen (mache ich z.B.). Gibt es sehr billig aus China.
> Allerdings meist mit steinzeitalter Firmware, so daß man als erste
> Aktion die Firmware updaten muß. Deswegen sollte man zwei von den
> Dingern kaufen. Dann kann man den einen mit dem anderen updaten.

Das verstehe ich bspw. nicht. Reicht den eins nicht? Ich schließe es am 
USB Port an und mache ein Firmware update. Hier hole ich die Firmware: 
https://www.fischl.de/usbasp/. Wie ich das anstelle weiß ich natürlich 
noch nicht.

Ich hatte mich bereits etwas über ISP-Adapter informiert und USBASP 
scheint mir "linux"-freundlich zu sein (u.a. auch open source).

> Ich hätte übrigens eher erwartet, daß du fragst, welche Software du
> brauchst. Denn die meisten Anleitungen im Web gehen davon aus, daß man
> Windows verwendet und da ein Rundum-sorglos-Paket wie etwa die AVR-IDE
> installiert. Das hast du bei Linux nicht (braucht man auch nicht).

Software traue ich mir zur. Aber die Hardware ist etwas unübersichtlich. 
Ich möchte erstmal nur eine Umgebung (= Hardware), wo ich mein C/C++ 
HelloWorld ausführen kann.
Ich möchte kein Arduino oder dergleichen. Sonder direkt auf den ATTiny85 
flashen. So wie ich das verstanden habe, hat bspw. Arduino, Digispark, 
... der Flash belegt (mit Bootloader).

> Wenn du noch gar nichts hast, kannst du auch ein fertiges Starterset
> kaufen. Z.B. bei https://www.ehajo.de/startersets/. Oder Einzelteile bei
> Conrad oder Reichelt oder Pollin oder wo du sonst einkaufst.
Ich habe absolut nichts. Kannst du mir bitte Beispiellinks von Händlern 
für USBASP schicken?

> http://stefanfrings.de/mikrocontroller_buch/index.html
Das Buch scheint echt gut zu sein: von Elektrotechnik, USBASP, 
Baukomponenten, .... Danke

> Fang halt an. Und dann stell konkrete Fragen.
Danke für deine Antworten.

von dummyuser (Gast)


Lesenswert?

Habe dein Buch Band 1 überflogen. Es sieht super aus. Danke für deine 
Mühen.

Der Link auch: http://stefanfrings.de/avr_hello_world/index.html
Kannst du mir statt dem Atmel AVRISP MK-II ein USBASP empfehlen?

Oder funktioniert der Atmel AVRISP MK-II out-of-the-box unter Linux?
Ausserdem ist der Atmel AVRISP MK-II teuer?

von dummyuser (Gast)


Lesenswert?

Martin H. schrieb:
> P.S.: Auf dem Linux-Rechner brauchst Du noch die Software
> micronucleus,
> um die erstellten hex-Files zu übertragen:
> https://github.com/micronucleus/micronucleus

Ok danke für den Hinweis. Gibt es keine alternativen? ich dachte das 
(compiler, hex, elf, oder was es sonst so gibt) geht mit gcc avr

von Stefan F. (Gast)



Lesenswert?

dummyuser schrieb:
> Das verstehe ich bspw. nicht. Reicht den eins nicht? Ich schließe es am
> USB Port an und mache ein Firmware update.

USBASP ist ein Programmieradapter der zwischen PC und deinem 
Mikrocontroller gesteckt wird. Der USBASP Programmieradapter kann sich 
nicht selbst updaten.

Ich halte das Firmwareupdate für überflüssig, solange er funktioniert. 
Meine USBASP Programmieradapter haben bisher immer out-of-the-box 
funktioniert.

> Kannst du mir statt dem Atmel AVRISP MK-II ein USBASP empfehlen?

Die USBASP Adapter haben fast alle den Nachteil, dass sie (trotz 3,3V 
Jumper!) nur 5V Signale unterstützen. Da ich meine Bateleien sehr häufig 
mit Batterien betreibe, ist das für mich ein Knackpunkt. Ich achte dann 
darauf, 4 frisch geladene NiMh Zellen zu verwenden, die sind nahe genug 
an den 5V.

Ansonsten funktionieren sie in der Regel ohne Probleme. Wenn nicht, 
kannst du immer noch einen anderen kaufen.

>  Kannst du mir bitte Beispiellinks von Händlern für USBASP schicken?

Amazon, Ebay, Ali Express

> Oder funktioniert der Atmel AVRISP MK-II out-of-the-box unter Linux?

Ja tut er. Das ist nach meinem Kenntnisstand immer noch der beste 
Programmieradapter, den du kaufen kannst. Er ist sehr robust und zickt 
niemals herum. Er passt sich automatisch an die Versorgungsspannung der 
Zielschaltung an und zweigt schon beim Anstecken mit einer grünen LED 
an, ob die Verbindung zum µC OK ist. Ich benutze ihn sehr gerne.

> Ausserdem ist der Atmel AVRISP MK-II teuer?

Ja er ist teuer. Aber sein Geld Wert. Leider wird er nicht mehr 
produziert, doch viele Händler bieten ihn noch an. Insofern: greif zu, 
wenn du kannst!

Achtung: Es werden asiatische Klone mit sehr ähnlichem Namen aber 
teilweise stark abweichender Innenschaltung verkauft. Wenn in der 
Artikelbschreibung "Atmel" steht, heißt das noch nichts. Achte auf die 
Fotos. Der originale sieht wie im Anhang aus und hat diesen weißen 
Siegelaufkleber.

von Martin H. (horo)


Lesenswert?

dummyuser schrieb:
> Ok danke für den Hinweis. Gibt es keine alternativen? ich dachte das
> (compiler, hex, elf, oder was es sonst so gibt) geht mit gcc avr

Damit erstellst Du Dein name_of_the_file.hex aus dem Quelltext. Um das 
Programm dann auf den ATtiny zu bekommen, brauchst Du "micronucleus", Du 
schließt das kleine Board an USB an und...

Usage on Ubuntu:
  sudo micronucleus --run name_of_the_file.hex
Usage on Mac:
  micronucleus --run name_of_the_file.hex
Usage on Windows
  micronucleus.exe --run name_of_the_file.hex

Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss, alles 
läuft über USB, sowohl Spannungsversorgung als auch Programmieren und 
(wenn Du willst) die Datenübertragung zwischen PC und AVR (siehe z.B. 
https://www.obdev.at/products/vusb/easylogger-de.html)

von dummyuser (Gast)


Lesenswert?

Martin H. schrieb:
> Damit erstellst Du Dein name_of_the_file.hex aus dem Quelltext. Um das
> Programm dann auf den ATtiny zu bekommen, brauchst Du "micronucleus", Du
> schließt das kleine Board an USB an und...

folgendes Scenario:
ATtiny ist auf dem breadboard angesteckt. Wie am Beispiel von 
http://stefanfrings.de/avr_hello_world/DSCF0437.JPG

Welches USB Kabel muss ich nehmen und wie verbinde ich es mit dem 
breadboard bzw. pins von ATtiny?

Ich habe aktuell überhaupt keine Komponente, weder breadboard, noch 
Widerstand, noch den ATtiny85.

von dummyuser (Gast)


Lesenswert?

Martin H. schrieb:

> Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss, alles
> läuft über USB, sowohl Spannungsversorgung als auch Programmieren und
> (wenn Du willst) die Datenübertragung zwischen PC und AVR (siehe z.B.
> https://www.obdev.at/products/vusb/easylogger-de.html)

ok ich glaube, du meinst die Lösung mit Digispark. Ich suche allerdings 
die direkte Lösung mit breadboard und ATtiny.

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
> Welches USB Kabel muss ich nehmen und wie verbinde ich es mit dem
> breadboard bzw. pins von ATtiny?

Du brauchst ein USB Kabel, das an den Programmieradapter passt. Der 
USBASP ist dafür vorgesehen, direkt in den Laptop oder USB-Hub auf dem 
Tisch gesteckt zu werden.

Zwischen Programmieradapter und Steckbrett verwendet man typischerweise 
Dupont Kabel.

von Martin H. (horo)


Lesenswert?

Dieses Programm ist schon (zusammen mit dem Bootloader) auf dem kleinen 
Board drauf und lässt die LED blinken:
1
#include <avr/io.h>
2
#include <util/delay.h>
3
4
// LED on PB1 (active high)
5
#define LED   0x02
6
#define USB_M 0x08
7
#define USB_P 0x10
8
9
int main() {
10
        DDRB = LED | USB_M;  // LED and USB- lines are output
11
    PORTB = LED;    // LED high, USB- low
12
13
        while(1) {
14
                _delay_ms(250);
15
                PINB = LED; // Writing "1" toggles LED PORT bit(s)
16
        }
17
        return 1;
18
}

Mit diesem Makefile wird es übersetzt ("make") und geladen ("make flash" 
oder "make run"):
1
PRG            = simple
2
OBJ            = simple.o
3
4
MCU_TARGET     = attiny85
5
6
OPTIMIZE       = -O2
7
8
F_CPU          = 16500000
9
10
DEFS           = -DF_CPU=$(F_CPU)UL
11
LIBS           =
12
13
# You should not have to change anything below here.
14
15
CC             = avr-gcc
16
17
# Override is only needed by avr-lib build system.
18
19
override CFLAGS        = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
20
override LDFLAGS       = -Wl,-Map,$(PRG).map
21
22
OBJCOPY        = avr-objcopy
23
OBJDUMP        = avr-objdump
24
25
all: $(PRG).elf lst hex
26
27
$(PRG).elf: $(OBJ)
28
  $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
29
30
# dependency:
31
$(PRG).o: $(PRG).c
32
33
# With this, you can flash the firmware by just typing "make flash" on command-line
34
flash: $(PRG).hex
35
  micronucleus --dump-progress $(PRG).hex
36
37
# With this, you can flash the firmware and execute it by just typing "make run" on command-line
38
run: $(PRG).hex
39
  micronucleus --run $(PRG).hex
40
41
clean:
42
  rm -rf *.o $(PRG).elf *.png *.bak *~
43
  rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
44
45
lst:  $(PRG).lst
46
47
%.lst: %.elf
48
  $(OBJDUMP) -h -S $< > $@
49
50
# Rules for building the .hex rom image
51
52
hex:  $(PRG).hex
53
54
%.hex: %.elf
55
  $(OBJCOPY) -j .text -j .data -O ihex $< $@

von Stefan F. (Gast)


Lesenswert?

Martin, du bist auf dem falschen Gleis. Er möchte keinen Digispark 
verwenden.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:

>> Ich stelle (Wunschvorstellung) so vor:
>> * breadboard / steckerboard
>> * kabel
>> * LED (als Output)
>> * ATtiny85
>
> Das ist alles trivial.

Für dich und mich und alle Fachleute, für totale Anfänger nicht.


>> * Verbindung zwischen Computer und breadboard, um C/C++ Programm
>> auf den ATtiny85 zu flashen. USBasp?
>
> USBASP kann man nehmen (mache ich z.B.). Gibt es sehr billig aus China.
> Allerdings meist mit steinzeitalter Firmware, so daß man als erste
> Aktion die Firmware updaten muß. Deswegen sollte man zwei von den
> Dingern kaufen. Dann kann man den einen mit dem anderen updaten.

Eben darum ist das NIX für Anfänger! Es gibt preiswerte Alternativen 
OHNE Gefrickel!

https://www.reichelt.de/programmer-f-avr-stk500-atmega-attiny-at90-diamex-usb-isp-p110344.html?r=1

> Es gibt aber unzählige ISP-Adapter am Markt. Lies den Artikel
> AVR In System Programmer im hiesigen Wiki.

Tja, aber das ist die Qual der Wahl! Der Anfänger wird vom (Über)angebot 
erschlagen! Darum sollte man eher was explizites empfehlen.

Siehe Anhang. Das ist der Minimalaufbau. Eine DIL8-Fassung, ein 
Steckverbinder, Kondensator und 5V aus nem Steckernetzteil oder 
Powerbank.

https://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP

von Martin H. (horo)


Lesenswert?

Stefan F. schrieb:
> Martin, du bist auf dem falschen Gleis. Er möchte keinen Digispark
> verwenden.

Sorry, es dauerte zu lange, meinen Text zusammenzukopieren und 
abzuschicken - so hat er sich mit der Aussage "Steckbrett statt 
Digispark" überschnitten - bitte ignorieren.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Verdrahtung

von dummyuser (Gast)


Lesenswert?

Ich danke für die Antworten und glaube, dass ich mehr verstehe.

Ich werde nun folgendes kaufen:
* Atmel AVRISP MK-II [0]
* Breadboard starterset [1]
* ATtiny85

wenn ich das habe, kann ich mein Programm (C/C++) auf ATtiny flashen: 
Verbindung vom ISP zu Breaboard via Dupont Kabel. Der ISP ist am 
Computer-USB angeschlossen.

Anschließend, baue ich das Beispiel nach: 
http://stefanfrings.de/avr_hello_world/DSCF0437.JPG
Für die Strom-Versorgung, nehme ich Batteriehalter (3x) 3,6V. Das stecke 
ich ebensfalls am BReadboard an.

Könnt ihr das bitte absegnen? Fehlt was?

[0] 
https://www.amazon.de/dp/B07R6LVVZW/ref=cm_sw_em_r_mt_dp_U_VWN1Db8XCV5VC
[1] 
https://www.amazon.de/dp/B06WD5FTVD/ref=cm_sw_em_r_mt_dp_U_.VN1DbNX3ZPHF

von Falk B. (falk)


Lesenswert?

dummyuser schrieb:
> Anschließend, baue ich das Beispiel nach:
> http://stefanfrings.de/avr_hello_world/DSCF0437.JPG
> Für die Strom-Versorgung, nehme ich Batteriehalter (3x) 3,6V. Das stecke

?? Ein 3xAA Batteriehalter hat ca. 4,5V Nennspannung.

> ich ebensfalls am BReadboard an.
>
> Könnt ihr das bitte absegnen? Fehlt was?

Deine LED und der Vorwiderstand (1k). Der Rest paßt. Also Software 
sollte man Atmelstudio nehmen, das ist Plug & Play, wenn gleich es das 
nur für Windows gibt.

von Stefan F. (Gast)


Lesenswert?

Bestelle dir die ATtiny85 gleich im 5er Pack und noch mehr zusätzliche 
Dupont Kabel. Es gibt sehr günstige Sets mit 3 Arten davon jeweils 20 
Stück.

von Axel S. (a-za-z0-9)


Lesenswert?

Martin H. schrieb:
> Um das Programm dann auf den ATtiny zu bekommen, brauchst Du
> "micronucleus"

Du solltest aber dazu sagen, daß das nur eine Option ist. Und sowieso 
nur für Leute relevant ist, die das Digispark Board nutzen. Und daß das 
einen bereits geflashten (mit dem Bootloader) µC voraussetzt.

> Usage on Ubuntu:
>   sudo micronucleus --run name_of_the_file.hex

Au weia. Nein, das will man so sicher nicht tun. Was man statt dessen 
will, ist eine udev-Regel, die das Digispark USB-Gerät für normale 
Nutzer (Gruppe plugdev) beschreibbar macht. Fremde Software als 
Superuser auszuführen, ist auf allen Betriebssystemen eine blöde Idee.

> Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss

Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch 
lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle 
AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.

von Martin H. (horo)


Lesenswert?

Axel S. schrieb:
> Du solltest aber dazu sagen, daß das nur eine Option ist. Und sowieso
> nur für Leute relevant ist, die das Digispark Board nutzen. Und daß das
> einen bereits geflashten (mit dem Bootloader) µC voraussetzt.
Von nix anderem als dem Digispark sprach ich in meinem Post direkt über 
dem zitierten, dort ist das alles erfüllt.

Axel S. schrieb:
>> Usage on Ubuntu:
>>   sudo micronucleus --run name_of_the_file.hex
>
> Au weia. Nein, das will man so sicher nicht tun. Was man statt dessen
> will, ist eine udev-Regel, die das Digispark USB-Gerät für normale
> Nutzer (Gruppe plugdev) beschreibbar macht. Fremde Software als
> Superuser auszuführen, ist auf allen Betriebssystemen eine blöde Idee.
Mann, das ist der Text aus dem Readme vom micronucleus, um zu schnellen 
Ergebnissen zu kommen, logischerweise gibt es dafür - wie auch z.B. für 
die OBDev-Applikationen oder den USBAP - eine Handvoll udev-Regeln. Es 
ging doch hier um ein hello_led.c.

Axel S. schrieb:
> Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch
> lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle
> AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.

Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal 
getrunken hast? Den USBASP (oder was vergleichbares) hat man doch 
sowieso, sobald es etwas professioneller sein soll; genauso wie noch 
einen STK500 und den ICE.
Aber für Spielereien und Anfänger ist nix portabler als der Digispark am 
Laptop; in der Mittagspause im Job, abends vor der Glotze, auf der 
Terrasse...
Außerdem weißt Du, dass das Ding funktioniert, weil es beim ersten 
Bestromen erstmal blinkt, keine Wackler oder Vertauscher am Steckbrett, 
keine vergessenen Drahtbrücken, ...

Aber vielleicht bin ich zu pragmatisch, wenn ich einem Einsteiger 
empfehle, dass erstmal die HW nachweislich laufen muss, bevor man Fehler 
in der SW sucht. Anschließend ab auf's Wackelkontakt-Brett und dann die 
PCB beim Chinesen bestellen.

von Martin H. (horo)


Lesenswert?

Nachtrag:
Da es hier sowieso seit heute 12:21 nicht mehr um Digispark geht, und 
ich auch schon geschrieben hatte, dass man meine Beiträge zu diesem 
Thema bitte ignorieren solle, ist diese Diskussion eh' für /dev/null.

von Karl M. (Gast)


Lesenswert?

Hallo von dummyuser und Mitleser,

ich schlage einen anderen Weg, auch für die Zukunft, vor.

Das aTeVaL (Microchip AVR Evaluationsboard)
# 
https://www.ehajo.de/bausaetze/bedrahtet/89/ateval-microchip-avr-evaluationsboard

Damit hat man eine Plattform MIT ISP Programmer on Board und kann auch 
gleich mit unterschiedlichen AVR8 Erfahrungen sammeln!

Selbst habe ich eines der ersten Boards und es funktioniert sehr gut.

Der ISP Programmer ist über die Steckerleisten auch als externer Adapter 
nutzbar.

Über den 40-poligen Erweiterungsstecker ist der Anschluss eines 
Bread-Boards möglich.

# https://www.ehajo.de/startersets/128/starterkit-breadboard

Ein ATtiny85 ist schon sehr klein und die I/O begrenzt, so dass sich 
hier ein Standard, der ATmega328p, anbietet.

# 
https://www.ehajo.de/bauelemente/aktiv/mikrocontroller/115/atmega328p-pu

Der ATtiny23131 passt natürlich auch, wie viele andere DIP AVR8, auf das 
AVR Evaluationsboard. Die Preisdifferenz zum ATmega328p ist aber 
marginal.

# 
https://www.ehajo.de/bauelemente/aktiv/mikrocontroller/110/attiny2313a-pu


Die Größten AVR8 sind im 40 pol. DIP Gehäuse, das sind u.a. - eine 
Auswahl - die ATmega32, ATmega644, ATmega1284.
Die -A und -P Kennzeichnungen lasse ich bewusst mal weg.

von dummyuser (Gast)


Lesenswert?

Axel S. schrieb:
> Martin H. schrieb:
> Um das Programm dann auf den ATtiny zu bekommen, brauchst Du
> "micronucleus"
>
> Du solltest aber dazu sagen, daß das nur eine Option ist. Und sowieso
> nur für Leute relevant ist, die das Digispark Board nutzen. Und daß das
> einen bereits geflashten (mit dem Bootloader) µC voraussetzt.
>
> Usage on Ubuntu:
>   sudo micronucleus --run name_of_the_file.hex
>
> Au weia. Nein, das will man so sicher nicht tun. Was man statt dessen
> will, ist eine udev-Regel, die das Digispark USB-Gerät für normale
> Nutzer (Gruppe plugdev) beschreibbar macht. Fremde Software als
> Superuser auszuführen, ist auf allen Betriebssystemen eine blöde Idee.

Das ist u.a. einer der gründe wieso nicht digispark.

Mein primäres ziel ist, software c/c++ in einem microcontroller zu 
bringen und etwas über die architektur zu erfahren, zu verstehen.

ich danke für die antworten in relativ kurzer zeit.

von Karl M. (Gast)


Lesenswert?

Hallo,

Nachtrag, zum aTeVaL-Board gibt es noch einen Adapter für den einfach 
Anschluss an ein Bread-Board:

# 
https://www.ehajo.de/bausaetze/bedrahtet/94/adapter-raspberry-pi-b-pi2-zu-breadboard

Hannes bietet alles für den Einstieg in die Materie, Du erhältst auch 
Hilfe und alle technischen Unterlagen (download).

von Np R. (samweis)


Lesenswert?

Falk B. schrieb:
> Also Software
> sollte man Atmelstudio nehmen, das ist Plug & Play, wenn gleich es das
> nur für Windows gibt.

Da Linux hier Voraussetzung ist, hilft Atmelstudio nicht wirklich 
weiter.

Allerdings ist das unter Linux wirklich kein großes Problem.
Die Pakete
gcc-avr
binutils-avr
avrdude (zum Flashen)
avr-libc
gdb-avr
sollte man in jeder Distro so oder so ähnlich benannt finden.

Dazu kann man ein eclipse mit eclipse-cdt und avr-plugin installieren, 
wenn man eine IDE haben möchte.
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin
Muss man aber nicht. "Von Hand" kompilieren oder per Makefile geht auch.

In der Doku zu avrdude kann man auch nachlesen, welche Programmer 
avrdude unterstützt. Man kann auch avrdude selbst fragen: avrdude -c ?
Siehe auch:
https://www.mikrocontroller.net/articles/AVRDUDE
http://ladyada.net/learn/avr/avrdude.html

von Np R. (samweis)


Lesenswert?

Als Verbindungskabel kann man solche mit Dupont Steckern nehmen 
(male-to-male und male-to-female):
https://www.aliexpress.com/item/33007698478.html

Als Steckbrett mag ich persönlich die hier:
https://www.reichelt.de/experimentier-steckboard-640-200-kontakte-steckboard-1k2v-p67678.html

Und, natürlich, als ganz wichtige Voraussetzung:
das Datenblatt des Attiny.
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf

von Np R. (samweis)


Lesenswert?

Ansonsten würde ich von Arduino und Bootloadern erst einmal die Finger 
lassen. M.E. verstellt das nur den Blick auf die Technik.
Man will ja etwas lernen und anschließend beherrschen?

Ein USBasp von AliExpress wird's tun. Traut man dem Chinamann nicht, 
oder wenn's etwas schneller gehen soll, kann man auch z.B. einen 
guloprog von guloshop.de nehmen.
Dort gibt's auch Breadboards, Kabel usw. und sogar den Attiny.

(Nein, ich bin mit dem Laden nicht verbandelt. Ich finde aber das 
Angebot für Einsteiger sehr stimmig und auch vernünftig gepreist. 
Natürlich gibt es jede Menge anderer Alternativen. Man hat die Qual der 
Wahl...)

von Axel S. (a-za-z0-9)


Lesenswert?

Schön daß der Thread langsam zum Topic zurück findet.

Np R. schrieb:
> Da Linux hier Voraussetzung ist, hilft Atmelstudio nicht wirklich
> weiter.
>
> Allerdings ist das unter Linux wirklich kein großes Problem.
> Die Pakete
> gcc-avr
> binutils-avr
> avrdude (zum Flashen)
> avr-libc
> gdb-avr
> sollte man in jeder Distro so oder so ähnlich benannt finden.

So sieht es aus. Als IDE geht natürlich auch etwas schlankeres als 
Eclipse, z.B. Code::Blocks. Wenn man nicht gleich einen Texteditor und 
ein Makefile benutzt. Apropos Makefile; da wäre noch mfile zu erwähnen: 
http://alfred.sax.de/~joerg/mfile/

Als Controller würde ich für den Einstieg übrigens nicht den ATTiny85 
empfehlen, sondern eher einen ATMega88. Der hat dann auch genügend Pins, 
daß man ein Display angeknüppert kriegt. Und man muß nicht laufend die 
ISP-Anschlüsse an- und wieder abstecken. Außerdem passen dann viele der 
Projekte aus der Anfangszeit, wo der ATMega8 sehr beliebt war. Der 88er 
ist ja nur eine minimal aufgebohrte Variante des 8er.

Außerdem hat man vom ATMega88 einen glatten Upgradepfad zum ATMega328, 
mit identischem Pinout und bis auf mehr Speicher auch identischem 
Innenleben. Es spricht auch kaum etwas dagegen, gleich den ATMega328 zu 
nehmen. Preislich nimmt sich das nicht viel. Ich nehme für Prototypen 
auch gerne erstmal einen ATMega328. Und wenn der Code am Ende kleiner 
ist, compiliere ich ihn einfach nochmal für einen ATMega168 oder 88 oder 
gar 48 und tausche den µC.

von Stefan F. (Gast)


Lesenswert?

Martin H. schrieb:
> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal
> getrunken hast?

Wer bindet sich denn für alle Zeiten, indem er einen 2€ 
Programmieradapter kauft? Den Gedanken verstehe ich nicht.

von neuer PIC Freund (Gast)


Lesenswert?

Zum Thema AVR unter Linux gibt es neben den distributionsspezifischen 
Tools noch das Herstellertool namens MPLABX (anstatt AtmelStudio). 
Hierbei würde ich auch niemals 20€ in einen diamex investieren, wenn 
auch 15€ für einen SNAP reichen (manchmal im Angebot für 10€).

Breadboard ist o.k. Vergess nur nicht die bedrahteten 100n 
Abblockkondensatoren. Am besten in rauhen Mengen. Und ein Paar der Teile 
als 0805er SMD.

USBasp kann dir Nerven kosten. Bei mir laufen die Kisten anstandslos, 
wohingegen andere nur darüber fluchen. Fischls Teile sind zwar etwas 
langsam und unkomfortabel, aber besser als nichts. Habe früher mal 
avrdude gepatcht, damit ein pickit2 als AVR-Programmer die 
Spannungsversorgung des Target übernimmt. Das PK2 war vom Speed mit dem 
USBasp vergleichbar, macht aber Levelshifting. Die Spannungsversorgung 
war für einfache Schaltungen
ausreichend (und wählbar 3v3 oder 5v).


Allerdings würde ich nicht mit Tiny85 beginnen. Nimm eine der großen 
Kisten. Mit JTAG, falls du dich für den SNAP entscheidest. Ist robuster 
als debugWire. Und im Jahr 2019 brauchst du insbersonders als Anfänger 
keine Frickelprogrammierung. Reduzier deine Baustellen.

Zu den HW-Tools gehört auch eine serielle Schnittstelle. Nicht als 
RS232, sondern so ein einfacher usb<->uart Umsetzer.

> Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es anschließe

Zur Not eines Elektronikers würdig. Mit dem Lötkolben. Dann kannst du 
auch die SMD 100n direkt auf den AVR löten.

von Np R. (samweis)


Lesenswert?

Axel S. schrieb:
> Als IDE geht natürlich auch etwas schlankeres als
> Eclipse, z.B. Code::Blocks.

Richtig. Ist bei Debian-Abkömmlingen auch schon in den Repos. Also 
apt-get install ... und läuft.

von Christoph M. (mchris)


Lesenswert?

Ein Arduino ist das Schweizer Taschenmesser der Mikrocontroller. Lädt 
man das ISP-Programmer Sketch auf einen Arduino Uno, hat man in 2 
Minuten einen ISP-Programmer:

https://www.instructables.com/id/Arduino-Attiny85-programmer-Shield-on-PCB-ATTinyS/

Deshalb: Eine Axt ...ähh... Arduino im Haus erspart den Zimmerman 
...ähh... den ISP-Programmmer.

von dummyuser (Gast)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #6047657:
> Breadboard ist o.k. Vergess nur nicht die bedrahteten 100n
> Abblockkondensatoren. Am besten in rauhen Mengen. Und ein Paar der Teile
> als 0805er SMD.

Kondensator:
Sorry ich kenne die Bauteile nicht.
Der Kondensator ist dafür da, um die Spannung stabil zu halten?

Reicht ein einfacher Kondensator mit 100n nicht? Was ist ein 
Abblockkondensator oder ein 0805 SMD.


USB - UART:
das muss ich mir dann auch noch im detail ansehen. auf jeden fall 
erscheint mir das sinnvoll direkt mit dem microcontroller zu 
"kommunizieren".


Axel S. schrieb:
> Als Controller würde ich für den Einstieg übrigens nicht den ATTiny85
> empfehlen, sondern eher einen ATMega88. Der hat dann auch genügend Pins,
> daß man ein Display angeknüppert kriegt. Und man muß nicht laufend die
> ISP-Anschlüsse an- und wieder abstecken. Außerdem passen dann viele der
> Projekte aus der Anfangszeit, wo der ATMega8 sehr beliebt war. Der 88er
> ist ja nur eine minimal aufgebohrte Variante des 8er.

Danke werde ich dann auch mal ausprobieren.

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
> Der Kondensator ist dafür da, um die Spannung stabil zu halten?

Ja

> Reicht ein einfacher Kondensator mit 100n nicht?

Reicht

> Was ist ein Abblockkondensator

Dieses Wort beschriebt die Funktion, wofür man den Kondensator benutzt. 
Er block Störungen auf der Stromversorgungsleitung ab. Das ist kein 
Spezial-Bauteil.

> oder ein 0805 SMD.

Beschreibt die Größe eines SMD Bauteil. Bauteile in der Größe 0805 kann 
man direkt zwischen zwei Pins/Löcher auf eine Lochrasterplatine löten.

Nicht zu verwechseln mit "0815", das bedeutet soviel wie "gewöhnlich".

Wegen ATtiny85 versus ATmega88:

Ich mag den Attiny85, weil er schön klein ist. Tatsächlich benutze ich 
diese Bauform häufiger, als alle anderen Mikrocontroller: als Timer, 
Tiefentladeschutz für Akkus oder schlicht um ein LED etwas komplexer 
blinken zu lassen als einfach nur an/aus.

Der ATmega88 ist der direkte Nachfolger vom Urvater aller AVR (das war 
der ATmega8). Für den Atmega 8 gibt es sehr viele alte Anleitungen, die 
du exakt genau so auch auf dem Atmega88 laufen lassen kannst. Noch eine 
Nummer weiter wäre der Atmega328, den du auf Arduino Boards vorfindest. 
Inzwischen ist der ATmega328 vermutlich das meistgenutzte Modell.

Alles was du auf einem kleinen AVR lernst, kannst du beinahe 1:1 auch so 
auf den größeren machen. Die Unterschiede sind sehr gering und 
offensichtlich, wenn man sich das jeweilige Kapitel im Datenblatt 
anschaut.

Die größeren haben natürlich mehr Pins, mehr Funktionen, mehr Speicher, 
was ihre Anwendung vereinfacht. Die kleineren (insbesondere der 
Attiny13A) zwingen dich hingegen dazu, dir mehr zu überlegen, wie du 
Hardware und Programm gestaltest. Dabei lernt man was.

Auf jeden Fall würde ich mich am Anfang auf die Modelle der untersten 
Preisklasse konzentrieren. Bei den alt eingesessenen deutschen Händlern 
(Conrad, Reichelt) wären das ATtiny13A, und ATmega88. Die ATtiny85 und 
ATmega328 bekommst du günstiger bei moderneren Händlern (Guloshop, TME, 
Aliexpress).

Bei Aliexpress kannst du Mikrocontroller gut im 5er Pack kaufen - dauert 
aber lange (4-8 Wochen). Da würde ich dann auch gleich jeweils 100 Stück 
von folgenden Bauteilen mit besorgen:

Kondensator 100nF
Widerstand 220 Ohm
Widerstand 2,2k Ohm
Widerstand 22k Ohm
LED rot
LED gelb
LED grün
LED blau
LED weiß
Diode 1N4148
Transistor BC337-40
Transistor BC327-40

Die wirst du immer wieder brauchen. Bei Conrad kosten 10 Stück schon 
mehr, als die 100 vom Chinesen.

von Axel S. (a-za-z0-9)


Lesenswert?

Stefan F. schrieb:
> Wegen ATtiny85 versus ATmega88:
>
> Ich mag den Attiny85, weil er schön klein ist.

Für viele Sachen ist er einfach zu klein. Gerade auf dem Steckbrett, 
wenn man experimentieren will. Von den 8 Pins sind 3 schon mal fest 
vergeben: GND, Vcc und Reset. Bleiben 5 IO-Pins. Wenn man per ISP 
flashen will, braucht man dafür MISO, MOSI und SCK. Bleiben noch 2 Pins. 
Genug für einen Taster (ein Pin als Eingang) und eine LED (noch ein Pin 
als Ausgang). Ende Gelände.

Natürlich kann man die ISP-Pins als IO's verwenden. Aber dabei kann man 
sich auch schön in den Fuß schießen. Etwa wenn man einen komischen 
ISP-Adapter erwischt hat, der die Pins nach dem Flashen nicht 
hochohmig schaltet. Oder wenn man irgendeine Last an einem ISP-Pin 
hängen hat, die der ISP-Adapter nicht oder nicht schnell genug treiben 
kann (ein Piezo-Buzzer reicht schon). Dann geht erstmal gar nichts mehr 
und als Anfänger guckt man in den Wald.

Also fängt man an, den µC umzustecken. Hierhin zum Flashen, dann dahin 
um das Programm zu testen. Was die ganze Idee "ISP" irgendwie 
konterkariert. Da lobe ich mir doch einen größeren µC, wo ich die 
ISP-Anschlüsse einfach permanent am ISP-Adapter lassen kann und trotzdem 
noch genug IO's frei habe.

> Die größeren haben natürlich mehr Pins, mehr Funktionen, mehr Speicher,
> was ihre Anwendung vereinfacht. Die kleineren (insbesondere der
> Attiny13A) zwingen dich hingegen dazu, dir mehr zu überlegen, wie du
> Hardware und Programm gestaltest. Dabei lernt man was.

Klar. Aber man muß damit ja nicht unbedingt anfangen. Sogar ich, der ich 
mich als alter Hase betrachte, gehe meine Projekte so an. Der Prototyp 
wird mit einem µC aufgebaut, der mindestens groß genug ist (der z.B. 
mehr IO's hat als minimal benötigt). Dann wird das Projekt aufgebaut und 
programmiert. Und dabei kommt eigentlich immer noch irgendwas dazu, was 
man zu Beginn nicht auf dem Radar hatte. Ein extra Sensor hier, eine 
extra LED dort. Und dann will man noch die Hintergrundbeleuchtung des 
LCD dimmen. Da ist man froh, wenn man noch nicht alle IO's verplant 
hatte. Und am Ende, wenn alles fertig ist, dann schaut man sich an, ob 
das auch auf einen kleineren µC paßt.

von Bernd (Gast)


Lesenswert?

>Für viele Sachen ist er einfach zu klein. Gerade auf dem Steckbrett,
>wenn man experimentieren will. Von den 8 Pins sind 3 schon mal fest
>vergeben: GND, Vcc und Reset. Bleiben 5 IO-Pins. Wenn man per ISP
>flashen will, braucht man dafür MISO, MOSI und SCK. Bleiben noch 2 Pins.
>Genug für einen Taster (ein Pin als Eingang) und eine LED (noch ein Pin
>als Ausgang). Ende Gelände.

Dagegen könnte der Attiny85 AudioBootloader helfen. Der braucht nur 
einen Pin und den kann man auch auf den Resetpin legen.

von Np R. (samweis)


Lesenswert?

Bernd schrieb:
> Der braucht nur einen Pin
Der owl (One Way Loader) braucht auch nur einen Pin.
http://www.jtxp.org/tech/onewayloader.htm
Ganz praktisch  - wenn man so weit ist.
Einem Anfänger würde ich aber erst einmal keinen Bootloader empfehlen. 
Die AVRs, die er im Laden bekommt, haben ja auch keinen. Er muss also 
sowieso erst per ISP flashen.

von Martin H. (horo)


Lesenswert?

Stefan F. schrieb:
> Martin H. schrieb:
>> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal
>> getrunken hast?
>
> Wer bindet sich denn für alle Zeiten, indem er einen 2€
> Programmieradapter kauft? Den Gedanken verstehe ich nicht.

Bitte den Blickwinkel etwas erweitern und schauen, worauf sich mein 
Bindest Du Dich bezog, dann wirst Du auch verstehen, dass es nicht um 
den Adapter für 2€ sondern um den Bootloader ging.

Hier nochmal im erweiterten Kontext:

Martin H. schrieb:
> Axel S. schrieb:
>> Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch
>> lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle
>> AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.
>
> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal
> getrunken hast? Den USBASP (oder was vergleichbares) hat man doch
> sowieso, sobald es etwas professioneller sein soll; genauso wie noch
> einen STK500 und den ICE.

von Axel S. (a-za-z0-9)


Lesenswert?

Martin H. schrieb:
> Hier nochmal im erweiterten Kontext:
>
> Martin H. schrieb:
>> Axel S. schrieb:

[Zitatebene ergänzt]
>>>Martin H. schrieb:
>>>> Damit ersparst Du Dir das Programmiergerät und den ISP-Anschluss

>>> Genau. Und bindet sich für alle Zeiten an diesen Bootloader. Dann doch
>>> lieber einmal die zwei Euro für einen usbasp ausgeben und danach alle
>>> AVR mit ISP Schnittstelle flashen können. Insbesondere auch fabrikneue.
>>
>> Bindest Du Dich für alle Zeiten an eine Biersorte, wenn Du die einmal
>> getrunken hast? Den USBASP (oder was vergleichbares) hat man doch
>> sowieso, sobald es etwas professioneller sein soll; genauso wie noch
>> einen STK500 und den ICE.

Ich wollte erst gar nicht auf deinen Unsinn eingehen, aber nachdem du 
das jetzt nochmal wiederholst: das ist Humbug, was du da erzählst. Du 
hast doch als Argument für den Bootloader selber angeführt, daß man 
dann kein ISP mehr bräuchte.

Fakt ist aber: man braucht ISP sehr wohl. Spätestens dann, wenn man 
einen fabrikneuen µC (ohne Bootloader) verwenden will. Aber wenn man ISP 
sowieso braucht, warum dann überhaupt auf einen Bootloader setzen? Noch 
dazu für ein Test- und Entwicklungssystem?

Wenn es später mal um ein fertiges Gerät geht, das man in freier 
Wildbahn updaten können muß ... dann ist das was anderes. Ist ja nicht 
so, daß Bootloader nur Nachteile hätten. Aber sie haben eben auch nicht 
nur Vorteile.

von Stefan F. (Gast)


Lesenswert?

Martin H. schrieb:
> Bitte den Blickwinkel etwas erweitern...

Danke für die Klarstellung, ich hatte dich wirklich völlig 
missverstanden.

von dummyuser (Gast)


Lesenswert?

so jetzt habe ich im groben Bauteile um zu experimentieren.
ich habe u.a. 1x einen USB to TTL (Serial) und 1x den ISP (10pol)

USB to TTL
----------
im groben habe ich es geschafft wie breadboard, jumpwire, attiny85 und 
den USBtoTTL zu verbinden.
1
dmesg
 hat mir auch die verbindung angezeigt:
1
Product: AVRISP mkII
1
minicom
 konnte ich mich auf das Terminal einwählen. Mehr kann ich nicht.

ISP
---
auch hier habe ich anhand jumperwires die ISP pins und ATTiny85 pins 
(1,4,5,6,7,8) verbunden.

dann das folg. ausgeführt:
1
avrdude -p attiny85 -c avrispmkII

ergebnis:
1
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Target reverse inserted

zumindest leuchtet die LED des ISP's grün...

von Ralph S. (jjflash)


Lesenswert?

avrdude -p attiny85 -c avrispmkII -P usb

von Ralph S. (jjflash)


Lesenswert?

By the way:

Wenn du einen originalen ATMEL avrispmkII hast, dann ist wie im Handbuch 
Seite 5 zu sehen:
1
Note: 
2
The AVRISP mkII does not provide power on the VCC pin, but uses this pin to sense the voltage on the target circuitry. Your circuit needs to be powered by external means to operate.

D.h. der ATtiny muss an eine externe Spannungsquelle angeschlossen sein.

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
> minicom ... konnte ich mich auf das Terminal einwählen

Was bedeutet dieser Satz? Minicom ist ein Terminal Emulator. Was 
bedeutet "einwählen" in diesem Zusammenhang? Ich denke dabei an ein 
Telefon.

Ralph S. schrieb:
> der ATtiny muss an eine externe Spannungsquelle angeschlossen sein.

Ja, und du musst noch den Parameter -B16 hinzufügen, solange der 
Mikrocontroller mit seinen Standardmäßigen 1MHz getaktet wird, um den 
Programmieradapter langsamer zu machen.

von dummyuser (Gast)


Angehängte Dateien:

Lesenswert?

Stefan F. schrieb:
> dummyuser schrieb:
>> minicom ... konnte ich mich auf das Terminal einwählen
>
> Was bedeutet dieser Satz? Minicom ist ein Terminal Emulator. Was
> bedeutet "einwählen" in diesem Zusammenhang? Ich denke dabei an ein
> Telefon.

Das ich eine Verbindung zum microcontroller herstelle. Wie bei ssh.

Ich glaube nicht, dass ich einen original AVR erwischt habe.

Das folg. Kommando bringt die selbe Fehlermeldung:
1
avrdude -p attiny85 -c avrispmkII -P usb -B16

Ich tue mich schwer, bzw. weiß nicht wie ich es anschließe, ob ich es 
richtig anschließe (Anhang). Ich habe jetzt eine externe Batteriequelle 
(3x AA).

von dummyuser (Gast)


Lesenswert?

dummyuser schrieb:
> Ich glaube nicht, dass ich einen original AVR erwischt habe.

Sorry, meinte mit AVR den ATMEL avrispmkII

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
> Das ich eine Verbindung zum microcontroller herstelle. Wie bei ssh.

Das geht nicht. Wenn du vom PC aus eine Verbindung aufgebaut hast, dann 
zum USB-UART Chip. Ob es hinter dem USB-UART in Richtung Mikrocontroller 
weiter geht, kann der PC nicht wissen/erkennen.

dummyuser schrieb:
> Ich glaube nicht, dass ich einen original AVR erwischt habe.

Warum denkst du so. Hast du jemals eine Fälschung gesehen? Ich nicht.

> Target reverse inserted

Bedeutet, dass der ISP Stecker falsch herum angeschlossen wurde. Dabei 
fällt mir etwas auf: Du hat einen 10-poligen Stecker skizziert, aber der 
originale Atmel ISP MkII hat einen 6-poligen Anschluss!

Zeige mal bitte ein Foto, wo man den Programmieradapter und alle 
Steckverbindungen gut erkennen kann.

Bevor nächstes mal wieder so krakelige Skizzen machst, probier mal aus, 
ob du mit deinem Smartphone Fotos von einer Bleistiftzeichnung machen 
kannst.

von dummyuser (Gast)


Angehängte Dateien:

Lesenswert?

Stefan F. schrieb:
> dummyuser schrieb:
>> Das ich eine Verbindung zum microcontroller herstelle. Wie bei ssh.
>
> Das geht nicht. Wenn du vom PC aus eine Verbindung aufgebaut hast, dann
> zum USB-UART Chip. Ob es hinter dem USB-UART in Richtung Mikrocontroller
> weiter geht, kann der PC nicht wissen/erkennen.
>
Ok, danke. Verstehe.

> dummyuser schrieb:
>> Ich glaube nicht, dass ich einen original AVR erwischt habe.
>
> Warum denkst du so. Hast du jemals eine Fälschung gesehen? Ich nicht.
>

Du hattest erwähnt, dass ich darauf achten soll, dass es ein Label hat. 
Auf dem Foto hatte es ein Label, aber was ich bekommen habe nicht.

>> Target reverse inserted
>
> Bedeutet, dass der ISP Stecker falsch herum angeschlossen wurde. Dabei
> fällt mir etwas auf: Du hat einen 10-poligen Stecker skizziert, aber der
> originale Atmel ISP MkII hat einen 6-poligen Anschluss!
>
Hm, ich habe einen 10-poligen. Ist dann also ein Indiz, dass es nicht 
original ist.

> Zeige mal bitte ein Foto, wo man den Programmieradapter und alle
> Steckverbindungen gut erkennen kann.
>
> Bevor nächstes mal wieder so krakelige Skizzen machst, probier mal aus,
> ob du mit deinem Smartphone Fotos von einer Bleistiftzeichnung machen
> kannst.

Übrigens, ich folge deiner Beschreibung, aber eben das große Ganze fehlt 
mir. Ich weiß nicht wie ich den ISP anschließe.
http://stefanfrings.de/avr_hello_world/index.html

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
> Ich weiß nicht wie ich den ISP anschließe.

Das steht in der Bedienungsanleitung des Programmieradapters. Ich denke, 
du hast das schon richtig gemacht.

Auf deinem Foto sieht alles gut aus, bis zwei Sachen:

a) dein Programmieradapter ist offenbar kein originaler Atmel ISP mkII. 
Das Kabel hat mehr Pins und auf dem Gehäuse fehlt das Atmel Logo.
b) Am Mikrocontroller fehlt ein Kondensator 100nF von VCC nach GND

Das erklärt aber noch nicht dein Problem. Vielleicht ist dein 
Programmieradapter defekt. Besorge Dir mal zum Vergleich einen anderen 
AVR Mikrocontroller und einen USBASP Programmieradapter.

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
>>> Ich glaube nicht, dass ich einen original AVR erwischt habe.
>> Warum denkst du so. Hast du jemals eine Fälschung gesehen? Ich nicht.
> Du hattest erwähnt, dass ich darauf achten soll, dass es ein Label hat.
> Auf dem Foto hatte es ein Label, aber was ich bekommen habe nicht.

Ach so, ich dachte du meintest den Mikrocontroller.

AVR ist der Name für die Mikrocontroller-Serie von ehemals Atmel, 
inzwischen Microchip.

Atmel ist der Hersteller des originalen ISP mkII Programmieradapters.

Wenn du von einem "originalen AVR" schreibst, kann das daher nur ein 
Mikrochip sein. Aber egal, das ist nun geklärt.

von dummyuser (Gast)


Lesenswert?

Stefan F. schrieb:
> dummyuser schrieb:
>> Ich weiß nicht wie ich den ISP anschließe.
>
> Das steht in der Bedienungsanleitung des Programmieradapters. Ich denke,
> du hast das schon richtig gemacht.
>
> Auf deinem Foto sieht alles gut aus, bis zwei Sachen:
>
> a) dein Programmieradapter ist offenbar kein originaler Atmel ISP mkII.
> Das Kabel hat mehr Pins und auf dem Gehäuse fehlt das Atmel Logo.
> b) Am Mikrocontroller fehlt ein Kondensator 100nF von VCC nach GND
>
> Das erklärt aber noch nicht dein Problem. Vielleicht ist dein
> Programmieradapter defekt. Besorge Dir mal zum Vergleich einen anderen
> AVR Mikrocontroller und einen USBASP Programmieradapter.

Hmm das wird ja wirklich heiter :)

ich habe jetzt einen anderen ATtiny85 (habe insgesamt 3) gesteckt und 
ein Kondensator (10 steht drauf). Dann habe ich den mitgelieferten 
Adapter (10-pol nach 6-pol) angesteckt. und dann die Pins verbunden:
1
MISO (ISP) -> MISO
2
SCK (ISP) -> SCK
3
RST (ISP) -> RST
4
GND (ISP) -> GND
5
MOSI (ISP) -> MOSI
6
VCC (ISP) -> VCC

Ergebnis: kein Fortschritt.

von Axel S. (a-za-z0-9)


Lesenswert?

dummyuser schrieb:

> ich habe jetzt einen anderen ATtiny85 (habe insgesamt 3) gesteckt und
> ein Kondensator (10 steht drauf). Dann habe ich den mitgelieferten
> Adapter (10-pol nach 6-pol) angesteckt. und dann die Pins verbunden:MISO
> (ISP) -> MISO
> SCK (ISP) -> SCK
> RST (ISP) -> RST
> GND (ISP) -> GND
> MOSI (ISP) -> MOSI
> VCC (ISP) -> VCC
>
> Ergebnis: kein Fortschritt.

Es wurde bereits gesagt: ein AVRISPmkII (oder Nachbau) liefert keine 
Betriebsspannung an den Target-µC. Der Anschluß "Vcc" dient nicht etwa 
der Versorgung, sondern mißt die Betriebsspannung des Targets und 
versorgt lediglich die Treiber des AVRISP (damit sie verträgliche Pegel 
liefern).

TLDR; du muß deinen Target-µC noch irgendwie mit Spannung versorgen. Ein 
fabrikneuer ATTiny85 läuft mit 1MHz Taktfrequenz (interner 8MHz 
RC-Oszillator mit Teilung durch 8 durch die gesetzte CLKDIV8 Fuse). 
Dafür reicht ihm eine Versorgungsspannung zwischen 1.8V und 5.5V. Sobald 
die Fuses des ATTiny85 verändert wurden (etwa CLKDIV8 ausgeschaltet) mag 
sich das ändern.

Der ebenfalls vorgeschlagene USBASP hingegen liefert am "Vcc" Anschluß 
eine Spannung (typisch die +5V vom USB) und kann damit auch den 
Target-µC und (in Grenzen) die Zielschaltung versorgen.

Manch einer (ich z.B.) empfindet das Verhalten des USBASP als Vorteil, 
weil man dann kein extra Netzteil braucht. Andere hingegen bestehen auf 
der reinen Lehre und preisen das AVRISP wegen seiner universellen 
Anwendbarkeit, egal ob das Target nun mit 1.8V oder 5V läuft. YMMV.

von dummyuser (Gast)


Lesenswert?

Axel S. schrieb:
> dummyuser schrieb:
>
>> ich habe jetzt einen anderen ATtiny85 (habe insgesamt 3) gesteckt und
>> ein Kondensator (10 steht drauf). Dann habe ich den mitgelieferten
>> Adapter (10-pol nach 6-pol) angesteckt. und dann die Pins verbunden:MISO
>> (ISP) -> MISO
>> SCK (ISP) -> SCK
>> RST (ISP) -> RST
>> GND (ISP) -> GND
>> MOSI (ISP) -> MOSI
>> VCC (ISP) -> VCC
>>
>> Ergebnis: kein Fortschritt.
>
> Es wurde bereits gesagt: ein AVRISPmkII (oder Nachbau) liefert keine
> Betriebsspannung an den Target-µC. Der Anschluß "Vcc" dient nicht etwa
> der Versorgung, sondern mißt die Betriebsspannung des Targets und
> versorgt lediglich die Treiber des AVRISP (damit sie verträgliche Pegel
> liefern).
>
> TLDR; du muß deinen Target-µC noch irgendwie mit Spannung versorgen. Ein
> fabrikneuer ATTiny85 läuft mit 1MHz Taktfrequenz (interner 8MHz
> RC-Oszillator mit Teilung durch 8 durch die gesetzte CLKDIV8 Fuse).
> Dafür reicht ihm eine Versorgungsspannung zwischen 1.8V und 5.5V. Sobald
> die Fuses des ATTiny85 verändert wurden (etwa CLKDIV8 ausgeschaltet) mag
> sich das ändern.
>
> Der ebenfalls vorgeschlagene USBASP hingegen liefert am "Vcc" Anschluß
> eine Spannung (typisch die +5V vom USB) und kann damit auch den
> Target-µC und (in Grenzen) die Zielschaltung versorgen.
>
> Manch einer (ich z.B.) empfindet das Verhalten des USBASP als Vorteil,
> weil man dann kein extra Netzteil braucht. Andere hingegen bestehen auf
> der reinen Lehre und preisen das AVRISP wegen seiner universellen
> Anwendbarkeit, egal ob das Target nun mit 1.8V oder 5V läuft. YMMV.

Danke für die detaillierte erklärung. Aber ich habe die VCC ja mit 
Batterie (~3,5V) versorgt.

Ich bin grob der Beschreibung von Stefan vorgegangen: "Falls dein 
Programmieradapter keine Versorgungsspannung
bereit stellt, kannst du auch 3 Akkus oder Batterien verwenden." - Band 
1 http://stefanfrings.de/mikrocontroller_buch/index.html

Naja, ich werde das Teil zurückschicken. Wenn ein AVRISP dann Original. 
Aber werde dann ein USBASP bestellen. Könnt ihr mir eins empfehlen? 
Damit ich nicht wieder etwas falsches bestelle.

von Ralph S. (jjflash)


Lesenswert?

Oh jeh, du scheinst kein Troll zu sein, aber blutiger Anfänger (nein, 
nicht negativ gemeint).

Wo kommst du her?

Wenn du aus dem Raum 76xxx kommst, können wir uns verabreden und ich 
zeige dir wie es geht.

Kann ich dir auch was fürs Steckbrett mitgeben damit das funktioniert.

USBASP gibt es vorzugsweise aus China und wenn du das preiswert 
möchtest, mußt du 3 Wochen darauf warten.

Hm, viele Wege führen nach Rom.

Vom Ansatz her würde ich dir fast empfehlen:

Ein Arduino Uno China Clone, das ISP-Shield und ein IDC-Flachbandkabel.

Warum?

Mit dem UNO kannst du AVR Programme testen und hochladen über den 
Bootloader. Hierbei mußt du jedoch nicht die Arduino-IDE verwenden 
(kannst es aber).

Prinzipiell ist ein UNO nichts anderes, als ein ATmega328p 
Mikrocontroller mit Bootloader (und von daher in der Lage ein Programm 
entgegen zu nehmen und sich selbst zu flashen).

Innerhalb der Arduino IDE gibt es bei Beispielen auch ein 
Flasherprogramm AVRISP und, wenn du dieses Sketch (ich mag das Wort 
nicht) auf den Arduino UNO lädtst, hast du aus dem UNO einen Programmer 
gemacht.

D.h.: in dieser Konstellation hast du etwas, mit dem du Programmübungen 
machen kannst (sowohl mit dem Arduino Framework oder auch "nur" mit 
reinem C).

Und du hast einen Flasher um nackte Controller beschreiben zu können 
(und an die Profis: Ja ich weiß, dass er dann keinen Debugger hat).

Prinzipiell aber würde ich den AVRISP behalten, weil: Wenn du einmal 
weißt wie du mit dem Zeugs umgehen mußt wird dir der schon gefallen.

Grundsätzlich würde ich für einen Versuchsaufbau sicherlich nicht eine 
Batterie verwenden (obwohl das an sich schon eine sehr saubere Spannung 
bietet, allerdings nicht sehr stabil). Hier kann man zum einen die 5V 
aus dem USB Anschluß nehmen oder (für den Anfang villt. besser) ein 
Handynetzteil verwenden.

Wie gesagt: wenn du aus dem Postleitzahlenbereich 76xxx kommst, kannst 
du dich mit mir verabreden und ich zeige dir wie es geht.

PS: das wichtigste ist auf deinem Foto leider nicht zu sehen, nämlich ob 
du den IDC-Anschluß des AVRISP evtl. falsch herum angeschlossen hast.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

dummyuser schrieb:
> circuit.png

Du hast da einfach nur einen Kurzschuss zwischen den oberen drei Pins 
des AVRISP MkII und den unteren gemacht.
Wenn man eine Pfostenfeldleiste so ins Steckbrett steckt, geht das gar 
nicht anders.

von Stefan F. (Gast)


Lesenswert?

Axel S. schrieb:
> du muß deinen Target-µC noch irgendwie mit Spannung versorgen.

Hat er doch, mit Batterien

Matthias S. schrieb:
> Du hast da einfach nur einen Kurzschuss ... gemacht.

Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen. Matthias, 
du bis der Held des Tages.

@dummyuser:

Falls es nicht klar ist: auf deinem Steckbrett sind immer 5 Löcher pro 
Reihe miteinander verbunden. Dort hast du deinen Stecker rein gesteckt, 
so dass immer zwei Pins miteinander kurzgeschlossen sind:
1
O---O---O---O---O
2
3
O---O---O---O---O
4
5
O---O---O---O---O
6
    _____
7
O--|O---O|--O---O
8
   |     |
9
O--|O---O|--O---O
10
   |     |
11
O--|O---O|--O---O
12
   |     |
13
O--|O---O|--O---O
14
   |     |
15
O--|O---O|--O---O
16
   |_____|
17
O---O---O---O---O
18
19
O---O---O---O---O
20
21
O---O---O---O---O
22
23
O---O---O---O---O

von Ralph S. (jjflash)


Lesenswert?

Stefan F. schrieb:
> Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen

Daran denkt man nicht, weil man selbst auf so eine Idee nicht kommen 
würde (ich hab es auch nicht gesehen)

von dummyuser (Gast)


Lesenswert?

Ralph S. schrieb:

> Matthias S. schrieb:
>> Du hast da einfach nur einen Kurzschuss ... gemacht.
>
> Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen. Matthias,
> du bis der Held des Tages.
>
> @dummyuser:
>
> Falls es nicht klar ist: auf deinem Steckbrett sind immer 5 Löcher pro
> Reihe miteinander verbunden. Dort hast du deinen Stecker rein gesteckt,
> so dass immer zwei Pins miteinander kurzgeschlossen sind:

Achso verstehe :)

Ralph S. schrieb:
> Stefan F. schrieb:
>> Facepalm! Ja natürlich. Wie blöd, das hätte ich sehen müssen
>
> Daran denkt man nicht, weil man selbst auf so eine Idee nicht kommen
> würde (ich hab es auch nicht gesehen)
Ich bin aus dem 85er Raum. Vielen Dank für das Angebot. Das wäre 
natürlich am einfachsten, wenn mir jemand über die Schultern schaut. 
Aber immerhin gibt es dieses Forum.

Klasse Ihr habt mein Rätsel gelöst.

Ok, ich glaube ich verstehe. Ich hätte die ISP pins irgendwie (mit 
Jumper Wires) in der Mitte anstecken müssen.
1
O---O---O---O---O       O---O---O---O---O
2
3
O---O---O---O---O       O---O---O---O---O
4
5
O---O---O---O---O       O---O---O---O---O
6
    
7
O---O---O---O---O       O---O---O---O---O
8
               |---------|
9
O---O---O---O--|O       O|---O---O---O---O
10
               |         |
11
O---O---O---O--|O       O|--O---O---O---O
12
               ........... 
13
O---O---O---O---O       O---O---O---O---O
14
               ...........
15
O---O---O---O---O       O---O---O---O---O
16
               ...........
17
O---O---O---O---O       O---O---O---O---O
18
               |---------|
19
O---O---O---O---O       O---O---O---O---O
20
21
O---O---O---O---O       O---O---O---O---O
22
23
O---O---O---O---O       O---O---O---O---O

von dummyuser (Gast)


Lesenswert?

Achso den AVRISP habe ich bereits zurückgeschickt und stattdessen habe 
ich ein USBASP 10-pol bestellt. Diesmal werde ich es in der middle gab 
am breadboard anschließen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

dummyuser schrieb:
> Diesmal werde ich es in der middle gab
> am breadboard anschließen.

Du kannst die Kabel doch auch direkt in den Verbinder des Programmers 
stecken. Wenn sie ins Steckbrett passen, dann auch in den Verbinder.

dummyuser schrieb:
> Achso den AVRISP habe ich bereits zurückgeschickt und stattdessen habe
> ich ein USBASP 10-pol bestellt.

Häh? Wieso das denn? Der AVRISP MkII ist derjenige, der alle MC 
programmieren kann, inklusive XMega (PDI) und die neueren Tinys (TPI).

von Einer K. (Gast)


Lesenswert?

Matthias S. schrieb:
> Häh? Wieso das denn?
Das frage ich mich auch.

Matthias S. schrieb:
> Der AVRISP MkII ist derjenige, der alle MC
> programmieren kann, inklusive XMega (PDI) und die neueren Tinys (TPI).
Der Atmel ICE ist noch etwas vielseitiger.
Allerdings auch gar nicht so billig.

von Axel S. (a-za-z0-9)


Lesenswert?

Matthias S. schrieb:
> dummyuser schrieb:
>> Diesmal werde ich es in der middle gab
>> am breadboard anschließen.
>
> Du kannst die Kabel doch auch direkt in den Verbinder des Programmers
> stecken. Wenn sie ins Steckbrett passen, dann auch in den Verbinder.
>
> dummyuser schrieb:
>> Achso den AVRISP habe ich bereits zurückgeschickt und stattdessen habe
>> ich ein USBASP 10-pol bestellt.
>
> Häh? Wieso das denn?

Weil es kein Original war, sondern ein Klon. Und der Verdacht im Raum 
stand, es könnte an ihm liegen.

> Der AVRISP MkII ist derjenige, der alle MC programmieren kann,
> inklusive XMega (PDI) und die neueren Tinys (TPI).

Kann der USBASP auch. OK, dazu darf man nicht die 5 Jahre alte Firmware 
verwenden, sondern muß mal upgraden. Auf die 3 Jahre alte Version.

von Martin H. (horo)


Lesenswert?

Während in Villabajo noch um den Programmieradapter diskutiert wird, 
hat man in Villarriba das Programm über ein einfaches USB-Kabel per 
Bootloader auf den Digispark geladen und es blinkt schon die LED.

SCNR

von Ralph S. (jjflash)


Lesenswert?

Martin H. schrieb:
> per
> Bootloader auf den Digispark geladen und es blinkt schon die LED.

... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits 
geflashten Bootloader und keinen Programmer hast?

Während in Villabajo noch versucht wird, in das Digispark ein Programm 
in einen Tiny ohne Bootloader zu flashen, läuft in Villariba ein 
Programm in einem Tiny auf einem Steckbrett bereits...

Beitrag #6061493 wurde von einem Moderator gelöscht.
von dummyuser (Gast)


Lesenswert?

genau ich möcht kein digispark. so lerne ich was. arduino ökosystem 
kommt eventuell danach.

avrisp habe ich zurückgeschickt weil es ein klon war.

von Martin H. (horo)


Lesenswert?

Ralph S. schrieb:
> ... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits
> geflashten Bootloader und keinen Programmer hast?

Indem man sich Digispark und Programmer nach Wunsch zulegt und dann in 
kleinen definierten Schritten vorgeht (und den DANN oder WENN 
Schritt erst ausführt, wenn der vorherige erfolgreich war):

1. Den Digispark (der hat den BL bereits on-board) speziell dafür 
benutzen, damit man ein System hat, von dem man weiß, dass die HW schon 
mal läuft (weil es "out-of-the-box", nur per USB an den Rechner 
gesteckt, kurz in
1
dmesg
 auftaucht) und anschließend die LED blinkt.

1.1. DANN muss man nur den Compiler und die Toolchain (incl. einer 
einfachen udev-rule) zum Laufen bringen (dazu gibt es HowTos) und ein
1
simple.c
 Programm fehlerfrei übersetzen (repeat until <NO_FEHLERMELDUNGEN>). 
WENN das läuft, einfach mit
1
micronucleus --run simple.hex
 laden und "watchen the blinkenlight".

1.2. DANN kann man das Delay anpassen und weitere Spielereien 
durchführen, wie Port abfragen und LED entsprechend leuchten lassen, 
(bis hin zu komplexeren Sachen wie ADC einlesen und als PWM auf die LED 
geben). Das nimmt mindestens ein Wochenende in Anspruch.

1.3. DANN hat man die SW incl. Erstellung im Griff.

2. UND DANN ... das ganze auf dem Steckbrett nachbauen und per AVRISP 
oder USBASP oder STK500 flashen und schauen, ob es sich genauso verhält, 
(repeat until...).

2.1. DANN PCB bestellen oder auf Lochraster aufbauen (Danke AVR für's 
DIL-Format!).

(Weder AVRISP noch USBASP noch STK500 gibt's bei ALDI, die bestellt man 
in China oder EU  nach Abwägung Preis <-> Zeit, genauso wie auch den 
Digispark.)

So und jetzt macht was Ihr wollt, das war bereits weiter oben nur ein 
Vorschlag zur Güte für die OMA-Zielgruppe (Ohne Mindeste Ahnung) um sich 
schrittweise zu entwickeln, aka. "lerne Laufen bevor Du rennst". 
Gleicher Ansatz gilt auch für ARM und andere modernere Prozessoren, 
dafür bietet der Hersteller sogar Eval-Boards und Devel-Tools an, um 
sich schrittweise vorzuarbeiten.

von Einer K. (Gast)


Lesenswert?

dummyuser schrieb:
> so lerne ich was.
Das bedienen der Shift Taste?

dummyuser schrieb:
> genau ich möcht kein digispark.
Is klar...

Der einzige wesentliche Unterschied, zwischen Digispark und einem 
nackten Tiny ist wohl der Bootloader oder der USB Port.

Mit dem Bootloader hast du bei der Programmierung sowieso keinen 
Kontakt, und wenn er stört, kannst du ihn jederzeit entsorgen.

dummyuser schrieb:
> arduino ökosystem kommt eventuell danach.
Selbst bei völligem Verzicht auf die Arduino Framework Komfort 
Funktionen/Klassen/Methoden kannst du aus der Arduino IDE den Tiny mit 
C++, C und ASM bearbeiten.
Stoff zum lernen genug.

Aber was solls, ich will dich nicht bekehren, aber deine Argumentation 
schein mir doch arg auf Annahmen zu beruhen, nicht so sehr auf Fakten.

dummyuser schrieb:
> avrisp habe ich zurückgeschickt weil es ein klon war.
Soweit mir bekannt, gibts die nicht mehr als Original.
Aber auch hier: Des Menschen Himmelreich ....

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

Ralph S. schrieb:
> ... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits
> geflashten Bootloader und keinen Programmer hast?

dann nehme ich einen Nano als ISP oder baue mir einen für Pony2000 aus 
der LPT

http://www.schorsch.at/mikrokontroller/technik/mikrokontroller/avr-isp-programmer

und mit reichlich BAT42 alle anderen LPT Leitungen angezapft und auf 
einen Elko geführt hat der 74HC244 genug Saft um auch versorgt zu sein. 
vermutlich der Atmel auch aber das weiss ich nicht mehr so genau

von Martin H. (horo)


Lesenswert?

Das Mini-Pony ist minimaler: 
https://scienceprog.com/simplest-128-atmega-programmer/
Und wenn Du R1..R4 weglässt, dann ist es am minimalsten (gemäß der 
Diskussion dort: Beitrag "Re: Attiny85V minimalste Versorgungsspannung ?")

von Joachim B. (jar)


Lesenswert?

Martin H. schrieb:
> Das Mini-Pony ist minimaler:

:)

das war mein erster Adapter, aber mit LED gefiel mir besser!

von Stefan F. (Gast)


Lesenswert?

dummyuser schrieb:
> Achso den AVRISP habe ich bereits zurückgeschickt

Das war aber voreilig. Und schade, denn dieser Programmieradapter ist 
eigentlich einer der besten (jedenfalls das Original).

von dummyuser (Gast)


Lesenswert?

Martin H. schrieb:

> So und jetzt macht was Ihr wollt, das war bereits weiter oben nur ein
> Vorschlag zur Güte für die OMA-Zielgruppe (Ohne Mindeste Ahnung) um sich
> schrittweise zu entwickeln, aka. "lerne Laufen bevor Du rennst".
> Gleicher Ansatz gilt auch für ARM und andere modernere Prozessoren,
> dafür bietet der Hersteller sogar Eval-Boards und Devel-Tools an, um
> sich schrittweise vorzuarbeiten.

Ich sehe das nur bedingt so. Im Gegenteil. Heutzutage wird alles 
abstrahiert, was den Einstieg erleichtert, aber man nicht ganz versteht 
was im Hintergrund läuft.

AVRISP habe ich voreilig zurückgeschickt, weil das höchstwahrscheinlich 
ein Klon war. Hätte ich ein Originalen, dann würde ich den behalten.

von dummyuser (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Der einzige wesentliche Unterschied, zwischen Digispark und einem
> nackten Tiny ist wohl der Bootloader oder der USB Port.

Und genau das interessiert mich :) der Bootloader. Also wie 
funktionieren die Dinger eigentlich.

> Mit dem Bootloader hast du bei der Programmierung sowieso keinen
> Kontakt, und wenn er stört, kannst du ihn jederzeit entsorgen.
Wenn du mir zeigst wie ich den Bootloader überschreibe oder entsorge

Beitrag #6062279 wurde von einem Moderator gelöscht.
von Einer K. (Gast)


Lesenswert?

dummyuser schrieb:
> Wenn du mir zeigst wie ich den Bootloader überschreibe oder entsorge

Du nimmst deinen AVRISP MkII und setzt die Fuses auf 
Auslieferungszustand, Chip Erase nicht vergessen.
Steht alles im Datenblatt.

Ach ja, du hast ja keinen mehr.
(und neue originale gibts auch nicht mehr)
Dann nimm einen Arduino.
Oder USBasp oder oder ....

dummyuser schrieb:
> Und genau das interessiert mich :) der Bootloader. Also wie
> funktionieren die Dinger eigentlich.
Tipp:
Kundig machen!
Selber suchen und selber lesen!
Das ist keine Geheimwissenschaft.

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> Tipp:
> Kundig machen!
> Selber suchen und selber lesen!

was denn gibt es hier keine Helikoptereltern?

von dummyuser (Gast)


Lesenswert?

ich schaue gerne selber nach. danke für die infos.

von Ralph S. (jjflash)


Lesenswert?

Mann, Mann, Mann,

das artet hier aus.

Erst möchte dummyuser "nur" einen ATtiny85 flashen (was er wohl noch nie 
gemacht hat) => okay

Gibts viele Fallstricke (die für jemanden der das schon ne Weile macht 
nicht mehr immer sofort zu sehen ist ) => okay

Dann gibts Info's wie es gehen kann => okay

Dann kommt die Fraktion die alles besser, vor allen Dingen anderst, 
macht und kann (in diesem Falle hier Digispark) => nicht okay

Weil: Der TO wollte einen nackten (und vor allen Dingen leeren) Tiny85 
flashen

Er wird aufgeklärt was den ein Digispark ist => okay

dummyuser schrieb:
> genau ich möcht kein digispark

=> okay (weil er ja nackten Tiny85 will)

Auf die Frage, wie man einen Bootloader in einen nackten Tiny85 bekommt 
antwortet (für mich etwas überheblich):

Martin H. schrieb:
> 2. UND DANN ... das ganze auf dem Steckbrett nachbauen und per AVRISP
> oder USBASP oder STK500 flashen und schauen, ob es sich genauso verhält,
> (repeat until...).

Super, sehr super: USBasp und STK500 sind natürlich keine Programmer, 
deshalb => nicht okay

Das ganze artet etwas aus, und das uralte Ponyprog (mit 
Parallelportinterface) kommt wieder ins Spiel. Das ist zweierlei irre, 
weil Rechner mit LPT - Schnittstelle ausgestorben sind und zweitens 
etwas für Linux angefragt wurde und es Ponyprog meines Wissens für Linux 
nicht gab, deshalb: => nicht okay

Aber plötzlich "grätscht" sogar der TO dazwischen mit:

dummyuser schrieb:
> Und genau das interessiert mich :) der Bootloader. Also wie
> funktionieren die Dinger eigentlich.

=> nicht okay

Wenn du über Bootloader etwas machen möchtest, dann wäre der Digispark, 
Arduino UNO, Arduino nano oder oder oder gut.

Augenscheinlich bist du ein großer Anfänger der zum einen mit Hardware 
nicht so richtig umgehen kann, sonst würde dir ein Aufbau eines 8 pol. 
IC's in Verbindung mit einer ISP Schnittstelle nicht diese 
Schwierigkeiten machen. Bis du soweit bist, einen Bootloader selbst zu 
programmieren (egal ob über plane C oder dem Arduino Framework) dürfte 
noch gewaltig viel Wasser den Rhein hinunter fließen.

Wenn ich dich jedoch nur falsch verstanden habe und du weißt nicht 
wirklich wie ein Bootloader funktioniert, du möchtest nur einen 
verwenden, dann eine kurze Erklärung:

Gültig für alle Mikrocontroller:

- ein Bootloader ist eine Software (Firmware), die in einem Controller 
gespeichert ist. Manche Controller haben einen Bootloader schon von Haus 
aus mit dabei, der nicht gelöscht werden kann (Bspw. STM32 Serie). Die 
ATtiny und ATmegaxx8 haben von Haus aus KEINEN Bootloader. Bootloader 
können nur implementiert sein bei Mikrocontroller, die in der Lage sind 
aus ihrer eigenen Firmware heraus den eigenen Flashspeicher zu 
beschreiben (und damit eine Anwenderfirmware im Flash abzulegen).

- Das Programm des Bootloaders muss aktiviert werden (im Falle von STM32 
über Boot0 / Boot1), im Falle von ATmega über einen Reset des 
Controllers. Ein ATmega kann über Fuses einen Bereich des Flashspeichers 
reservieren, der für den Bootloader genutzt wird. Ist dieser reserviert, 
kann der Bootloader den Speicher den er selbst belegt NICHT flashen. Ein 
ATmega ist also grundsätzlich für einen Bootloaderbetrieb ausgelegt. 
Nach einem Reset führt der Controller erst das Programm des Bootloaders 
aus. Der Bootloader wartet in aller Regel auf einer Schnittstelle (im 
Falle von Arduino auf der seriellen) auf eingehende Befehle. Kommen 
diese nicht innerhalb einer bestimmten Zeit, beendet der Bootloader sich 
selbst und startet das im Flash abgelegt Anwenderprogramm.

Ein ATtiny hat keine Möglichkeit Speicherplatz für einen Bootloader zu 
reservieren, aber er hat die Möglichkeit sich selbst zu flashen. Ein 
ATtiny-Bootloader muss also seinen Speicherplatz den er einnimmt selbst 
schützen. Im Falle von Digispark ist mittels Software (VUSB) eine 
USB-Schnittstelle programmiert, auf der der Controller die Daten, die 
der PC über USB schickt im Controller (und ganz ohne Programmer) 
speichert.

----------------------------------------------------------

Ein Bootloader hat einen (entscheidenden ? ) Vorteil: Man kann den 
Controller über die Schnittstelle mit dem PC verbinden und den 
Controller ganz OHNE Programmer flashen. Aber es Bedarf (im Falle von 
AVR) immer eines Programmers um die Bootloadersoftware in den Controller 
zu bekommen.

Nachteile sind: Flashspeicher wird um den Speicherplatzbedarf des 
Bootloaders gekürzt (da dann im Controller der Bootloader und das 
Anwenderprogramm gespeichert ist) und es besteht keine Möglichkeit den 
Controller zu debugen (diese Möglichkeit besteht allerdings bei sehr 
preiswerten Programmern wie USBasp oder USBtinyisp auch nicht).

-----------------------------------------------------------

Die ganze Welt ist ein Irrenhaus, aber bisweilen (das ist nicht immer) 
ist das Mikrocontroller.net Forum die Zentrale.

Gute Nacht,
JJ

von Wilhelm M. (wimalopaan)


Lesenswert?

Vielleicht sollte man dem TO raten, statt einen alten tiny85 einen 
modernen tiny421/tiny1617/... zu nehmen. Denn da braucht man weder 
bootloader noch ISP-Programmer. Die kann man mit UPDI programmieren, 
also mit einer simplen seriellen Schnittstelle. Das ist unkomplizierter, 
als einen bootloader zu flashen und dann diesen zu verwenden.

von neuer PIC Freund (Gast)


Lesenswert?

Eher den ATmega4809. Die SMD-Teile lassen sich nämlich nur schlecht in 
das Breadboard stecken (ohne Adapter).

Ansonsten kann man die UPDI-Technik nur befürworten. Bei manchen 
UART-Adaptern liegen Rx und TX nebeneinander. Eine SMD-Diode aufgelötet 
und fertig der Programmer.

von Ralph S. (jjflash)


Lesenswert?

Wilhelm M. schrieb:
> Vielleicht sollte man dem TO raten, statt einen alten tiny85 einen
> modernen tiny421/tiny1617/... zu nehmen.

Du meinst sicherlich einen ATtiny214/414, einen mit Nummer 421 kenne ich 
nicht.

Nein, dazu würde ich ihm nicht raten, denn selbst wenn er etwas wie das 
hier

https://npk-stn.ru/2019/07/19/simple_programming_attiny414_via_updi/?lang=en

machen soll, benötigt er zumindest den USB2UART Adapter. Abgesehen davon 
muß er diesen auch verdrahten und soooooo viel einfacher als ISP 
anzuschließen ist das auch nicht. Abgesehen davon hat er ja schon 
gezeigt bekommen wo sein Hardwareaufbaufehler lag, bei der nächsten 
Verdrahtung gehe ich davon aus, dass er das hinbekommt.

Warum bekommen diese ATtiny214/414/1617 keine Empfehlung für den TO (und 
andere blutige Anfänger).

1.)
Gehäusebauform, den 1617 gibt es nur in VQFN-24, das ist absolut 
Bastlerunfreundlich und für das Steckbrett ungeeignet und ich glaube 
nicht dass er in der Lage ist, diesen auf einen Adapter zu löten. 
Tiny214/414 gibt es nur in SOIC Gehäuse und auch diese müssen erst auf 
einen Adapter bevor sie in einem Steckbrett genutzt werden können.

2.)
Grundsätzlich würde ich keinen ATtiny für einen Anfänger empfehlen, da 
sie in ihrem Leistungsumfang doch relativ stark beeinträchtigt sind und 
man manchmal Klimmzüge machen muss, um ein Programm zu realisieren. 
Sieht man von einem ATtiny2313 ab, haben diese nicht einmal eine USART 
an Bord. Desweiteren sind die größten Speicherkapazitäten die es gibt 
(das weiß ich nicht zu 100%) auf 8 kByte Flash limitiert (wie Bspw. 
ATtiny84 und ATtiny85). Ein ATtiny13 (der warum auch immer für einen 
Anfänger empfohlen wird) ist hier dann gänzlich ungeeignet, weil er nur 
1 kByte hat (und 64 Byte Ram).

Ganz gezielt würde ich einen 8 pol. Mikrocontroller sowieso einem 
Anfänger nicht empfehlen, weil die I/O Pins (wenn man den Resetanschluss 
unberührt lässt) auf 5 an der Zahl reduziert ist. Das ist wirklich 
wenig, wenn man erst einmal allgemein anfangen mag und kein gezieltes 
Projekt im Sinn hat.

Wenn man wirklich wenig Geld ausgeben mag, wenn es unbedingt ein 8 pol. 
ATtiny sein soll würde ich emfpehlen:

------------------------------------------------------------

- Arduino UNO
- Arduino r3 ISP Shield
- Steckbrett
- ATtiny der Wahl

Warum?

1.)
preiswert bis billig

2.)
Mit dem Arduino kann ich meine ersten Gehversuche machen und sehen, wie 
ich Hardware an einen Controller anschließe. Kämpfe ich mit der 
Software, dann kann ich das Arduino Framework nutzen, muss es aber nicht 
(ich selbst habe ein paar Arduino liegen, designe meine eigenen 
Controllerboards im r3 Format - auch für STM32, NXP und sogar für MCS51 
- ), programmiert werden diese allerdings ohne die "Arduino Software". 
Ein Arduino UNO ist nichts weiter als schlicht der Mikrocontroller 
kombiniert mit einem USB2UART Adapter, der mittels AVRDUDE gut 
programmiert werden kann. Ob ich das Programm in reinem C, als 
Makefile-Projekt oder aus einer IDE heraus programmiere ist dem Arduino 
egal.

3.)
In der Arduino-IDE ist ein Beispielprogramm enthalten, das den Arduino 
zu einem AVR-ISP Programmer macht. Somit habe ich in dieser Kombination, 
UNO mit ISP-Shield, einen Programmer, den ich bei Bedarf schlicht wieder 
umflashen kann.

Beitrag "Arduino - UNO Flashershield (Linux)"

Das Projekt hier zeigt eine solche Vorgehensweise. Dieses ist zwar auch 
als Programmer für ein paar PIC undAT89S52 verwendbar und muß erst 
aufgebaut werden, die Software funktioniert aber auch mit diesem 
käuflich erwerbbaren Shield:

https://www.ebay.de/itm/AVR-ISP-Shield-Burning-Burn-Bootloader-Programmer-for-Arduino-UNO-R3/262793641460?hash=item3d2fb8bdf4:g:p6sAAOSwL~hbNZGn

- Hier ist ein 6 pol. ISP Anschluss vorhanden, ein 10 pol. kann 
eingelötet werden.

- es besteht somit die Möglichkeit mittels AVRDUDE jeden AVR mit ISP 
Schnittstelle zu flashen und zusätzlich die 28 pol. ATmega in einen 
Sockel zu stecken um diesen zu flashen (bspw. um einen Bootloader zu 
flashen).

Mit dieser Konstellation - Arduino UNO, Flashershield, Steckbrett und 
ATtiny der Wahl - hat ein Anfänger erst einmal für absolut kleines Geld 
alles an der Hand um einzusteigen.

Zum Anfang würde ich also kaufen:

- Arduino UNO (China)
- ISP Shield
- Steckbrett
- IDC Kabel
- Jumper Kabel
- 16 MHz Quarz
- 22 pF Kondensatoren (als Ziehkondensatoren für den Quarz)
- 100 nF Kondensatoren für die Betriebsspannung
- nackte Controller: ATtiny44, ATtiny2313, ATtiny85 und ATmega328p

Aber wie das so ist mit Empfehlungen: Die Meinungen gehen stark 
auseinander !

von Ralph S. (jjflash)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #6062531:
> Eher den ATmega4809

Was für ein Riesenteil. Als DIL-Version schwierig zu bekommen, teuer und 
sehr groß.

Für jemanden, der noch nicht weiß was er machen möchte würde ich den 
eher nicht nehmen (obwohl 48 kByte Flash und 6 kByte RAM schon gut 
sind).

von Einer K. (Gast)


Lesenswert?

Ralph S. schrieb:
> aber auch mit diesem
> käuflich erwerbbaren Shield:
>
> Ebay-Artikel Nr. 262793641460
>
> - Hier ist ein 6 pol. ISP Anschluss vorhanden, ein 10 pol. kann
> eingelötet werden.

Bei dem Shield muss man etwas Vorsicht walten lassen.
Einige Pins des Textool Sockels können den USB Port berühren.
Eine Feile und etwas Isostoff verhindert das.

von Wilhelm M. (wimalopaan)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #6062531:
> Eher den ATmega4809. Die SMD-Teile lassen sich nämlich nur schlecht in
> das Breadboard stecken (ohne Adapter).

So ein SMD 8-Pinner auf einen Adapter zu löten, ist ja nun auch für 
einen Anfänger keine Hexenwerk.

Aber er kann ja auch ein tiny3217-Board vertig kaufen.

von Wilhelm M. (wimalopaan)


Lesenswert?

Ralph S. schrieb:
> Nein, dazu würde ich ihm nicht raten, denn selbst wenn er etwas wie das
> hier

TL;DR.

Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.

Für UPDI brauchst Du einen USB2Seriell-Adapter, das stimmt. Brauchst Du 
aber für einen Bootloader auch, für ISP sogar einen Programmer. Also, 
einfacher.

Der Hauptvorteil liegt aber m.E. in diesen Dingen:

- UPDI
- interner 16/20 MHz Oszillator mit guter Genauigkeit (kein Quarz 
nötig).
- Port-Mux
- gleichförmige interne Peripherie über beide Serien hinweg 
(tiny1/mega0).

Den letzten Punkt halte ich schon fast für den entscheidenden.

von Einer K. (Gast)


Lesenswert?

Im Grunde ist es doch völlig wurscht, womit man anfängt.

1.
Hauptsache, man lernt Datenblätter und Schaltpläne lesen.
Auch die Sprache ist für die ersten Schritte recht egal.

2.
In der weiteren Praxis ändern sich sowieso die Anforderungen oft genug. 
So dass man von einigem was mit bekommt.

von Martin H. (horo)


Lesenswert?

Ralph S. schrieb:
> Auf die Frage, wie man einen Bootloader in einen nackten Tiny85 bekommt
> antwortet (für mich etwas überheblich):
>
> Martin H. schrieb:
>> 2. UND DANN ... das ganze auf dem Steckbrett nachbauen und per AVRISP
>> oder USBASP oder STK500 flashen und schauen, ob es sich genauso verhält,
>> (repeat until...).
>
> Super, sehr super: USBasp und STK500 sind natürlich keine Programmer,
> deshalb => nicht okay

Hallo Ralph S., weil Du mich hier persönlich anzählst und mir 
Überheblichkeit vorwirfst, möchte ich dich doch bitten, meinen Text im 
Kontext zu betrachten und die Aussage nicht durch selektives Zitieren 
ins Gegenteil dessen zu verkehren, was ich Dir bereits oben schrieb:

Martin H. schrieb:
> Ralph S. schrieb:
>> ... und wie machst du das, wenn du einen Tiny85 OHNR einen bereits
>> geflashten Bootloader und keinen Programmer hast?
>
> Indem man sich Digispark und Programmer nach Wunsch zulegt und dann in
> kleinen definierten Schritten vorgeht (und den DANN oder WENN
> Schritt erst ausführt, wenn der vorherige erfolgreich war):
> ...

Ein nackter Tiny und kein Programmer - diese rhetorische Frage stellt 
sich eigentlich nur Dir - aufgezeigtes Anfangsproblem hatte der TO 
bereits gelöst, denn er verfügte ja mindestens zeitweise über einen 
AVRISP und bekommt später einen USBASP.

dummyuser schrieb:
> den AVRISP habe ich bereits zurückgeschickt und stattdessen habe
> ich ein USBASP 10-pol bestellt

Ich hatte vielmehr einen strukturierten Weg skizziert, wie jemand, der 
bereits Probleme hat, die richtigen Löcher im Steckbrett zu treffen, 
dennoch (in kleinen logischen Schritten) zu Erfolgsergebnissen kommt. 
Und dazu gehörte die temporäre Verwendung eines "Eval-Boardes mit 
USB-Schnittstelle" (aka. Digispark), das von der HW zunächst einmal 
abstrahiert, um die Toolchain ans Laufen zu bekommen und ein einfaches 
"hello_led" Programm zu schreiben. Anschließend kann man das 
unveränderte funktionierende Hex-File auf einen nackten Tiny flashen 
(per AVRISP, USBASP,... whatever) und mit Delay etc. spielen.

Ralph S. schrieb:
> Super, sehr super: USBasp und STK500 sind natürlich keine Programmer,
> deshalb => nicht okay

Wieso diese Ironie, natürlich sind das Programmer. Die von Dir aus dem 
Kontext gerissene Zeile war nicht die Antwort auf deine Rhetorik des 
"Programmierens des Nacktens ohne Programmer", sondern bereits ein 
Lösungsansatz, der der Intention des TO entsprechen dürfte.

dummyuser schrieb:
> * Verbindung zwischen Computer und breadboard, um C/C++ Programm auf den
> ATtiny85 zu flashen. USBasp?

Wenn jemand (von Null) mit dem Tiny85 starten will und sowieso alles 
Equipment bestellen muss, dann kann man zusätzlich zum 
Programmer_nach_Wunsch auch noch für 'nen 5er einen Digispark 
dazulegen (gibt's auch im günstigen Dreierpack), der nimmt nicht viel 
Platz in der Bastelkiste ein und erlaubt es, auf die Schnelle was 
auszuprobieren. Die HW-Entwicklung soll ja dann gerne auf Steckbrett 
oder Lochraster oder als Dead-Bug passieren. In Anbetracht 
untenstehender Key-Requirements erschien mir dieser schrittweise Ansatz 
als zielführender, anstatt an drei Problemen (HW-Aufbau, Toolchain und 
SW-Entwicklung, hier speziell SFR und Peripherie) gleichzeitig zu 
scheitern.

dummyuser schrieb:
> Was ich möchte: ich möchte unter Linux C/C++ programme schreibe und die
> auf dem ATtiny85 laufen lassen.
> ...
> Hinzu kommt, dass ich kaum Erfahrung (vergessen oder nie verstanden) in
> Elektrotechnik habe.
> ...
> 2. Wenn ich dann alle Komponenten habe, weiß ich nicht wie es es
> anschließe

Eigentlich wäre das die Zielgruppe vom Arduino, aber zu diesem System 
möchte ich mich mangels Erfahrung nicht äußern.

@ Ralph S.
Sollte ich Dich in meinem von Dir zitierten Beitrag verwirrt haben, so 
bitte ich Dich um Entschuldigung und hoffe, dass Du mir nun folgen 
konntest.

von Ralph S. (jjflash)


Lesenswert?

Arduino Fanboy D. schrieb:
> Im Grunde ist es doch völlig wurscht, womit man anfängt.
>
> 1.
> Hauptsache, man lernt Datenblätter und Schaltpläne lesen.
> Auch die Sprache ist für die ersten Schritte recht egal.
>
> 2.
> In der weiteren Praxis ändern sich sowieso die Anforderungen oft genug.
> So dass man von einigem was mit bekommt.

Bin ich bei dir...

Arduino Fanboy D. schrieb:
> Bei dem Shield muss man etwas Vorsicht walten lassen.
> Einige Pins des Textool Sockels können den USB Port berühren.
> Eine Feile und etwas Isostoff verhindert das.

Bin ich auch absolut bei dir! Das ist der Grund, warum meine r3 Boards 
(egal welcher Controller drauf ist), alle einen Mini-USB Anschluss 
haben, weil der nach oben nicht so sehr aufträgt (abgesehen davon, dass 
diese "Drucker-USB-Buchse" aus meiner Sicht der Dinge nicht mehr 
zeitgemäß ist)

von Wilhelm M. (wimalopaan)


Lesenswert?

Martin H. schrieb:
> Wenn jemand (von Null) mit dem Tiny85 starten will und sowieso alles
> Equipment bestellen muss, dann kann man zusätzlich zum
> Programmer_nach_Wunsch auch noch für 'nen 5er einen Digispark
> dazulegen (gibt's auch im günstigen Dreierpack), der nimmt nicht viel
> Platz in der Bastelkiste ein und erlaubt es, auf die Schnelle was
> auszuprobieren.

Noch einfacher sind m.E. die "explained"-Boards von MicroChip für die 
neuen Series tiny1/mega0. Neben der viel besseren und gleichzeitig 
einfacheren int. Peripherie der µC haben die Boards einen Debugger 
on-board, das Programmieren geht per drag-n-drop im Dateimanager von 
Windows und über dasselbe USB-Kabel steht eine serielle Verbindung für 
die Anwendung zur Verfügung. Komfortabler geht es nicht.

von Axel S. (a-za-z0-9)


Lesenswert?

Wilhelm M. schrieb:
>
> Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.

Da bin ich exakt gegenteiliger Meinung. Der TE sollte die neuen 
Microchip-AVR erstmal liegen lassen. Und zwar im wesentlichen aus den 
gleichen Gründen, die du selber anführst.

UPDI: braucht einen neuen Adapter. Und geht nicht mit avrdude. Soll der 
TE sich jetzt MPLAB-X auf die Platte kippen? Immerhing gibt es das 
inzwischen für Linux, aber funktioniert das auch? Insbesondere 
funktioniert UPDI?

Beim Compiler genau das gleiche. Als ich das letzte Mal geschaut habe, 
kannte avr-gcc die neuen Cores noch nicht. Wie lange soll der TE warten, 
bis bei seiner Linux-Distro ein hinreichend neuer Compiler ausgerollt 
wird?  Oder soll er hier auch wieder auf einen binären BLOB von 
Microchip setzen?

Weiter geht es mit Tutorials, Nachbauprojekten und Anleitungen im Netz. 
Für ATMega8(8) und Co. haufenweise. Für die neuen Tinies? Mangelware.

> Der Hauptvorteil ...
> - Port-Mux
> - gleichförmige interne Peripherie über beide Serien hinweg
> (tiny1/mega0).

Das ist einem Einsteiger doch sowas von egal.

von Np R. (samweis)


Lesenswert?

Wilhelm M. schrieb:
> Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.

Wie erklärst Du einem Einsteiger, wie er unter Linux dafür seinen 
Quelltext kompiliert und das Ergebnis auf den µC geflasht bekommt?

von Stefan F. (Gast)


Lesenswert?

Ich bin überhaupt nicht scharf auf die neue AVR Serie, die eigentlich 
mit AVR nur noch wenig gemein hat. Da kann man gleich zu Cortex-M 
wechseln, die können mehr für weniger Geld.

von neuer PIC Freund (Gast)


Lesenswert?

> Als DIL-Version schwierig zu bekommen, teuer und sehr groß.

ca. 3€ @tme für den 4809. Normales DIP40, kein DIP64 wie beim 68k. 
Sollte bei dem Breadboard kein Problem darstellen. Klar, die tiny-1 
liegen unter 1€, allerdings ist Geiz beim Hobby selten förderlich.

> Wie erklärst Du einem Einsteiger, wie er unter Linux dafür seinen Quelltext 
kompiliert und das Ergebnis auf den µC geflasht bekommt?
1
[...pyupdi-mraardvark]$ ./pyupdi.py -d tiny1614 -c /dev/ttyACM0 -b 38400 -f /tmp/attiny1614_updi.hex
2
Programming successful

und die LED blinkt.

von dummyuser (Gast)


Lesenswert?

Endlich habe ich ein Erfolgserlebnis:
1
avrdude -p attiny85 -c usbasp
2
3
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
4
avrdude: AVR device initialized and ready to accept instructions
5
6
Reading | ################################################## | 100% 0.01s
7
8
avrdude: Device signature = 0x1e930b (probably t85)
9
10
avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)

Die Meldung
1
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
 kann ich ignorieren.

Beitrag "Re: USBasp AVRDude Problem"
Danke an Stefan.

# OFFTOPIC
Ich habe das Gefühl, dass ich mit diesem Topic eine Art Flamewar 
auslöse. Das ist nicht meine Absicht. Ich bin auch kein Troll.

Ich bin nur ein Fan "von Grund auf Verstehen". Daher habe ich 
beschlossen, "klein" anzufangen und mir auch das leben schwer zu machen. 
Mit der Hoffnung so zu lernen.

von zitter_ned_aso (Gast)


Lesenswert?

dummyuser schrieb:
> avrdude -p attiny85 -c usbasp

-p t85

mit "avrdude -p?" werden alle unterstützen uController und ihre 
Abkürzungen aufgelistet

von dummyuser (Gast)


Lesenswert?

zitter_ned_aso schrieb:
> dummyuser schrieb:
>> avrdude -p attiny85 -c usbasp
>
> -p t85
>
> mit "avrdude -p?" werden alle unterstützen uController und ihre
> Abkürzungen aufgelistet

Danke.

Habe nun ein simples C programm gebaut, geflasht.
1
avr-gcc -mmcu=attiny85 -Os -c main.c  -o main.o
2
avr-gcc main.o -o main.elf
3
avr-objcopy -O ihex -j .text -j .data main.elf main.hex
4
avr-size --mcu=attiny85 -C main.elf 
5
avrdude -p attiny85 -c usbasp -U flash:w:main.hex:a

Dann den t85 an Batterie-Quelle gesteckt und die LED leuchtet alle 500ms 
:)

Danke an alle.

von Christoph M. (mchris)


Lesenswert?

von dummyuser (Gast)
>Ich bin aus dem 85er Raum. Vielen Dank für das Angebot.

Ob es wohl ein Zufall ist, dass Du einen Attiny85 verwenden willst?
München wäre für die 80er Reihe gut.

Sorry für den Post ;-)

von Ralph S. (jjflash)


Lesenswert?

dummyuser schrieb:
> Dann den t85 an Batterie-Quelle gesteckt

Ist die Stromentnahme der Targetschaltung nicht zu groß (bspw. nur eine 
oder wenige LED's), kann der USBasp die Targetschaltung mit 5V des USB 
Anschlusses versorgen. Somit brauchst du während der Entwicklungsphase 
die Batterie nicht.

von Stefan F. (Gast)


Lesenswert?

Ralph S. schrieb:
> Ist die Stromentnahme der Targetschaltung nicht zu groß, ...
> kann der USBasp die Targetschaltung mit 5V des USB
> Anschlusses versorgen. Somit brauchst du während der Entwicklungsphase
> die Batterie nicht.

Ich würde das trotzdem nicht machen. Ein versehentlicher Kurzschluss 
kann schnell das USB Kabel oder den Anschluss am Laptop zerstören. 
Letzteres ist mir passiert.

von Np R. (samweis)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #6063460:
> [...pyupdi-mraardvark]$ ./pyupdi.py -d tiny1614 -c /dev/ttyACM0 -b 38400
> -f /tmp/attiny1614_updi.hex
> Programming successful

Das kompiliert Dir keinen Quelltext.

dummyuser schrieb:
> Ich habe das Gefühl, dass ich mit diesem Topic eine Art Flamewar
> auslöse.
Keine Sorge. Das ist nur der normale Ton hier. Am besten gewöhnst Du 
Dich gleich daran. ;-)

von Ralph S. (jjflash)


Lesenswert?

Stefan F. schrieb:
> Ein versehentlicher Kurzschluss
> kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.
> Letzteres ist mir passiert.

... aus dieser Angst heraus laufen alle Experimente über einen USB-Hub 
mit externer Spannungsversorgung.

Allerdings muß ich sagen, dass trotz seltener (okay, eher sehr seltener) 
Kurschlüsse noch nicht ein einziger Hub oder dessen Netzteil zerstört 
wurde.

Von einem zerstörten USB Anschluß liest man immer wieder einmal. Ich bin 
in der Ausbildung tätig und noch in keinem Fall hat es ein Lehrling 
geschafft (und ich denke dort gibt es eher mal einen Kurzschluß) einen 
Hub zu zerstören, wenn die Zielschaltung nur die 5V des Anschlusses 
nutzt.

In einem einzigen Fall, bei dem ein 24V Motor über MOS-Fet geschaltet 
wurde, hatte er die 24V auf die 5V des USB-Anschlusses gelegt. Dort war 
der Hub hinüber, aber ansonsten...

von Einer K. (Gast)


Lesenswert?

USB Ports/Hubs "sollten" eine konfigurierbare Strombegrenzung haben.

Tuts nur nicht immer.

von Stefan F. (Gast)


Lesenswert?

Ralph S. schrieb:
> Von einem zerstörten USB Anschluß liest man immer wieder einmal.

Eigentlich sollte das niemals passieren, da die USB Spezifikation eine 
Schutzschaltung vorschreibt.

von Axel S. (a-za-z0-9)


Lesenswert?

Stefan F. schrieb:
> Ralph S. schrieb:
>> Ist die Stromentnahme der Targetschaltung nicht zu groß, ...
>> kann der USBasp die Targetschaltung mit 5V des USB
>> Anschlusses versorgen. Somit brauchst du während der Entwicklungsphase
>> die Batterie nicht.
>
> Ich würde das trotzdem nicht machen. Ein versehentlicher Kurzschluss
> kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.
> Letzteres ist mir passiert.

Was war das für ein USBASP? Auf den Chinateilen sehe ich letztens immer 
Polyfuses in 1206 oder gar 0805. Die sollten eigentlich das schlimmste 
verhindern. Und speziell Laptops überwachen fast immer den Strom am USB 
und schalten den Port bei Überstrom ab. Deswegen funktionieren 
USB-Powered Festplatten gern mal nicht am Laptop, wohl aber am Desktop.

von Stefan F. (Gast)


Lesenswert?

Axel S. schrieb:
> Auf den Chinateilen sehe ich letztens immer
> Polyfuses in 1206 oder gar 0805. D

Macht Sinn. Meine haben das leider nicht.

von Joachim B. (jar)


Lesenswert?

Stefan F. schrieb:
> Eigentlich sollte das niemals passieren, da die USB Spezifikation eine
> Schutzschaltung vorschreibt.

wie wir ja wissen halten sich auch alle an Vorschriften, auch Firmen

frohen Nikolaus

Stefan F. schrieb:
> Kurzschluss
> kann schnell das USB Kabel oder den Anschluss am Laptop zerstören.
> Letzteres ist mir passiert.

also kann das nie passiert sein ;)

: Bearbeitet durch User
von Wilhelm M. (wimalopaan)


Lesenswert?

Axel S. schrieb:
> Wilhelm M. schrieb:
>>
>> Die neuen tiny1/mega0-Serie sind m.E. auf jeden Fall(!) vorzuziehen.
>
> Da bin ich exakt gegenteiliger Meinung. Der TE sollte die neuen
> Microchip-AVR erstmal liegen lassen. Und zwar im wesentlichen aus den
> gleichen Gründen, die du selber anführst.
>
> UPDI: braucht einen neuen Adapter.

Nein. Er braucht nur einen USB<->Seriell Adapter für 0,99€ vom 
China-Mann.

> Und geht nicht mit avrdude.

Genau. Braucht man aber auch nicht mehr.

> Soll der
> TE sich jetzt MPLAB-X auf die Platte kippen?

Nein. Wozu?

> Immerhing gibt es das
> inzwischen für Linux, aber funktioniert das auch? Insbesondere
> funktioniert UPDI?

Braucht man alles gar nicht.

>
> Beim Compiler genau das gleiche. Als ich das letzte Mal geschaut habe,
> kannte avr-gcc die neuen Cores noch nicht. Wie lange soll der TE warten,
> bis bei seiner Linux-Distro ein hinreichend neuer Compiler ausgerollt
> wird?  Oder soll er hier auch wieder auf einen binären BLOB von
> Microchip setzen?

Wenn er eine avr-gcc von der Stange nimmt, braucht der die Device-Packs 
von Atmel.

> Weiter geht es mit Tutorials, Nachbauprojekten und Anleitungen im Netz.
> Für ATMega8(8) und Co. haufenweise. Für die neuen Tinies? Mangelware.

Ich dachte, er wollte DB lesen lernen - und nach Ansicht von einigen, 
soll er das ja auch huaptsächlich tun.

Die int. Peripherie der neuen sind a) wesentlich leistungsfähiger, 
sprich man braucht weniger Hacks in seinem Code und zugleich einfacher, 
weil klarer strukturiert.


>> Der Hauptvorteil ...
>> - Port-Mux
>> - gleichförmige interne Peripherie über beide Serien hinweg
>> (tiny1/mega0).
>
> Das ist einem Einsteiger doch sowas von egal.

Einmal gelernt wir ein TCA oder TCD funktioniert reicht dann für alle 
tiny1/mega0. Kein Unterschied mehr zwischen den verschiedenen Linien und 
ihren Eigenheiten, halte ich gerade für den Anfänger für sehr zentral. 
Alles, was der Anfänger nicht bedenken muss, ist gut.

Mir scheint, als würdest Du die neuen tiny1/mega0 nur von der Papierlage 
her kennen.

von Wilhelm M. (wimalopaan)


Lesenswert?

Np R. schrieb:
> Wie erklärst Du einem Einsteiger, wie er unter Linux dafür seinen
> Quelltext kompiliert

wie beim tiny85 auch

> und das Ergebnis auf den µC geflasht bekommt?

pyupdi.py -d tiny412 -c /dev/ttyUSB1 -f test00.hex

von Np R. (samweis)


Lesenswert?

Wilhelm M. schrieb:
> wie beim tiny85 auch

Nö. Beim tiny85 nehme ich einfach den avr-gcc und die avr-libc aus der 
Distro und fertig.
Beide unterstützen aber die tiny1/tiny0/mega0 nicht.

Warum sonst stricken Leute so etwas hier?
https://github.com/stevenj/avr-libc3

von Wilhelm M. (wimalopaan)


Lesenswert?

Np R. schrieb:
> Nö. Beim tiny85 nehme ich einfach den avr-gcc und die avr-libc aus der
> Distro und fertig.
> Beide unterstützen aber die tiny1/tiny0/mega0 nicht.

Doch: ist avrxmega3

https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html

Lesen:

Wilhelm M. schrieb:
> Wenn er eine avr-gcc von der Stange nimmt, braucht der die Device-Packs
> von Atmel.

Wobei das bei Arch-Linux mit 9.2.0 drin ist. Was weiß ich denn, was Du 
oder der TO für eine Linux-Distro hast.

Np R. schrieb:
> Warum sonst stricken Leute so etwas hier?
> https://github.com/stevenj/avr-libc3

Das weiß ich nicht. Ich habe es noch nicht gebraucht. Bei mir läuft 
alles.

Ich hatte eher mal mit dem alten mega324PB Probleme.

von Np R. (samweis)


Lesenswert?

Wilhelm M. schrieb:
> Lesen:

Ja, genau das habe ich getan.
Und diese beiden Aussagen von Dir widersprechen sich halt:

Wilhelm M. schrieb:
> wie beim tiny85 auch

Wilhelm M. schrieb:
> braucht der die Device-Packs
> von Atmel.

Wilhelm M. schrieb:
> Bei mir läuft alles.
Einschließlich ATmega808/809/1608/1609/3208/3209/4808/4809?
Dazu gab's nämlich mal einen Thread auf avrfreaks. Und die Antwort war 
nicht "wie beim tiny85 auch".

: Bearbeitet durch User
von Wilhelm M. (wimalopaan)


Lesenswert?

Np R. schrieb:
> Wilhelm M. schrieb:
>> Bei mir läuft alles.
> Einschließlich ATmega808/809/1608/1609/3208/3209/4808/4809?

Ja!

von Stefan F. (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Kein Unterschied mehr zwischen den verschiedenen Linien

Bis die nächste inkompatible Linie auf den Markt kommt.

von Ralph S. (jjflash)


Lesenswert?

... und wo ist der TO?

Und vor allen Dingen: Was hat er nun mit seinem Tiny85 gemacht ?

von Np R. (samweis)


Lesenswert?

Ralph S. schrieb:
> ... und wo ist der TO?
>
> Und vor allen Dingen: Was hat er nun mit seinem Tiny85 gemacht ?

Er ist auf dem Weg des Erfolgs:
dummyuser schrieb:
> Habe nun ein simples C programm gebaut, geflasht.

Sein Problem ist also gelöst.
Wenn das nächste auftritt, erfährst Du vielleicht mehr.
Oder auch nicht. Er ist ja keine Rechenschaft schuldig.

von Wilhelm M. (wimalopaan)


Lesenswert?

Stefan F. schrieb:
> Wilhelm M. schrieb:
>> Kein Unterschied mehr zwischen den verschiedenen Linien
>
> Bis die nächste inkompatible Linie auf den Markt kommt.

Das mag sein.
Allerdings hat MicroChip hier schon ein ganz gutes System geschaffen, 
was auch die XMegas umfasst (ok, die verschwinden derzeit von der 
Bildfläche).

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.