Also folgendes: ich habe mir nen Arduino Uno zugelegt in der Hoffnung damit ein wenig basteln zu können. Jetzt würde ich gerne wissen wie ich ein Hexfile auf einen Attiny13 bekomme. Auf was muss ich achten (benötigte Hardware, steckbrett (welches? oder ist das egal) etc. Am liebsten wäre mir ein Tutorial oder sowas in der richtung, bin was das betrifft ein totaler anfänger, aber ohne den µc gehts leider nicht weiter.
Ich hab das aus dem tutorial mal übernommen, allerdings ist da die rede von einem attiny 45 oder 85. Meiner aber ein 13-20PU. Die Dateien dort sind auch für die im Tutorial genannten µcs. Woher bekommt man denn die sheets für andere Attinys?
hier mal das hexfile welches ich damit verwenden müsste um den attiny 13 zu beschreiben. das problem ist ich hab noch einige hier und will ungern auf die neuere baureihe umsteigen hier der link https://www.dropbox.com/sh/y3j6lb1kg81dwrc/8KqtegmpRN/8164conv_final.hex
Für den Attiny13 müsste man in der Arduino IDE 1.0 eine neue Variante aufsetzen. Das ist grundsätzlich nicht sooo schwer, aber ein Anfänger (you) oder ein Nicht-Arduino-Testen-Könner (me) hat es dabei schwer. Man muss als erstes die Beschreibung der Boards in der Datei boards.txt erweitern, damit ein neuer Eintrag in der IDE unter Boards erscheint: arduino-1.0\hardware\arduino\boards.txt
1 | # ... alter Inhalt |
2 | # Neu HINZUGEFÜGT |
3 | |
4 | attiny13.name=ATtiny13 (internal 1.2 MHz clock) |
5 | attiny13.bootloader.low_fuses=0x6a |
6 | attiny13.bootloader.high_fuses=0xff |
7 | attiny13.upload.maximum_size=1024 |
8 | attiny13.build.mcu=attiny13 |
9 | attiny13.build.f_cpu=1200000L |
10 | attiny13.build.core=arduino:arduino |
11 | attiny13.build.variant=tiny13 |
Dann ist eine neue Datei anzulegen: arduino-1.0\hardware\arduino\variants\tiny13\pins_arduino.h In dieser Datei steht:
1 | /*
|
2 | pins_arduino.c - pin definitions for the Arduino board
|
3 | Part of Arduino / Wiring Lite
|
4 | |
5 | Copyright (c) 2005 David A. Mellis
|
6 | |
7 | This library is free software; you can redistribute it and/or
|
8 | modify it under the terms of the GNU Lesser General Public
|
9 | License as published by the Free Software Foundation; either
|
10 | version 2.1 of the License, or (at your option) any later version.
|
11 | |
12 | This library is distributed in the hope that it will be useful,
|
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15 | Lesser General Public License for more details.
|
16 | |
17 | You should have received a copy of the GNU Lesser General
|
18 | Public License along with this library; if not, write to the
|
19 | Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
20 | Boston, MA 02111-1307 USA
|
21 | |
22 | $Id: pins_arduino.c 565 2009-03-25 10:50:00Z dmellis $
|
23 | |
24 | Modified 28-08-2009 for attiny84 R.Wiersma
|
25 | Modified 09-10-2009 for attiny45 A.Saporetti
|
26 | */
|
27 | |
28 | #ifndef Pins_Arduino_h
|
29 | #define Pins_Arduino_h
|
30 | |
31 | #include <avr/pgmspace.h> |
32 | |
33 | // ATMEL ATTINY13 / ARDUINO
|
34 | //
|
35 | // +-\/-+
|
36 | // Ain0 (D 5) PB5 1| |8 Vcc
|
37 | // Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1
|
38 | // Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1
|
39 | // GND 4| |5 PB0 (D 0) pwm0
|
40 | // +----+
|
41 | |
42 | #define TIMER0_OVF_vect TIM0_OVF_vect // avoid modification of WInterrupts.c file
|
43 | |
44 | #define digitalPinToPCICR(p) ( ((p) >= 0 && (p) <= 4) ? (&GIMSK) : ((uint8_t *)0) )
|
45 | #define digitalPinToPCICRbit(p) ( PCIE )
|
46 | #define digitalPinToPCMSK(p) ( ((p) <= 4) ? (&PCMSK) : ((uint8_t *)0) )
|
47 | #define digitalPinToPCMSKbit(p) ( (p) )
|
48 | |
49 | #ifdef ARDUINO_MAIN
|
50 | |
51 | // these arrays map port names (e.g. port B) to the
|
52 | // appropriate addresses for various functions (e.g. reading
|
53 | // and writing) tiny45 only port B
|
54 | const uint16_t PROGMEM port_to_mode_PGM[] = { |
55 | NOT_A_PORT, |
56 | NOT_A_PORT, |
57 | (uint16_t) &DDRB, |
58 | };
|
59 | |
60 | const uint16_t PROGMEM port_to_output_PGM[] = { |
61 | NOT_A_PORT, |
62 | NOT_A_PORT, |
63 | (uint16_t) &PORTB, |
64 | };
|
65 | |
66 | const uint16_t PROGMEM port_to_input_PGM[] = { |
67 | NOT_A_PIN, |
68 | NOT_A_PIN, |
69 | (uint16_t) &PINB, |
70 | };
|
71 | |
72 | const uint8_t PROGMEM digital_pin_to_port_PGM[] = { |
73 | PB, /* 0 */ |
74 | PB, |
75 | PB, |
76 | PB, |
77 | PB, |
78 | PB, // 5 |
79 | |
80 | };
|
81 | |
82 | const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { |
83 | _BV(0), /* 0, port B */ |
84 | _BV(1), |
85 | _BV(2), |
86 | _BV(3), /* 3 port B */ |
87 | _BV(4), |
88 | _BV(5), |
89 | |
90 | };
|
91 | |
92 | const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { |
93 | TIMER0A, /* OC0A */ |
94 | TIMER0B, |
95 | NOT_ON_TIMER, |
96 | NOT_ON_TIMER, |
97 | NOT_ON_TIMER, |
98 | NOT_ON_TIMER, |
99 | };
|
100 | |
101 | #endif
|
102 | |
103 | #endif
|
Es ist eine leichte abgeänderte Version (Pinbeschreibung + TIMER0... Define) der entsprechenden Datei für den Attiny8 aus dem https://github.com/damellis/attiny Paket. Wie gesagt, theoretisch wäre es das. Die Warnungen beim Compile kann man auch wegbekommen, wenn man mehr an der eigentlichen Arduino core-Source fummelt. Es ist aber IMHO icht notwenig/erwünscht das zu tun. Und wie auch gesagt, ist das der theoretische Weg. Das eigentliche ISP über den Arduino UNO auf den Attiny13 (angeschlossen wie Attiny45 oder Attiny8) kann ich mangels Hardware nicht testen.
Add: In der Datei arduino-1.0\hardware\arduino\cores\arduino\Arduino.h kann man die Zeile
1 | #if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
|
noch um ein || defined(_AVR_ATtiny13_) erweitern. Es ist aber nicht so gut dokumentiert was die daraufhin folgenden Makros #define DEFAULT 0 #define EXTERNAL 1 #define INTERNAL 2 bewirken. Mal im Sourcecode stöbern. DEFAULT hängt mit dem ADC zusammen.
wenn du so nett wärst mir zu erklären wozu die folgenden begriffe gut sind befrag ich gerne mal das grosse G XD: DEFAULT und ADC? hängt das mit dem Code zusammen oder mit der Schaltung?
Mit dem Quellcode der Arduino-Bibliotheken. Mit den Makros DEFAULT, EXTERNAL und INTERNAL werden für bestimmte AVRs bestimmte Codeteile angepasst. Und die Anpassung bei der das DEFAULT verwendet wird, betrifft die Hardware der im AVR enthaltenen Analog-Digital-Converter ADC-Einheit. Die anderen Anpassungen mit EXTERNAL oder INTERNAL habe ich beim Reinschauen in den Quellcode des Arduino nicht gesehen.
Weil es hier noch keine Success-Meldung gibt: Es geht! Danke Krapao! 1. boards.txt angepasst wie oben 2. pins_arduino.h erstellt wie oben 3. Arduino.h angepasst wie oben Und dieser Code hat schon mal gemacht was er soll, blinken an Pin6: void setup() { pinMode(1, OUTPUT); } void loop() { digitalWrite(1, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(1, LOW); // set the LED off delay(1000); // wait for a second }
Mit einem Attiny13 oder einem Attiny85? Der Tiny ist mit seinen 2KB Flash für die Arduino-Bibliothek ziemlich knapp bemessen.
Nique schrieb: > Weil es hier noch keine Success-Meldung gibt: > > Es geht! Danke Krapao! > > 1. boards.txt angepasst wie oben > 2. pins_arduino.h erstellt wie oben > 3. Arduino.h angepasst wie oben Krass wie einfach es sein kann, einen solchen Boliden wie den Tiny13 einfach mal so zu programmieren. Zum Glück gibts Arduino, sonst wüsste man gar nicht wie man da anfange sollten. Danke danke danke für diesen Tip! Endlich kann ich meine ganzen tinys wieder aus dem Müll holen....
Quack schrieb: > Kuebellord, hast du kein Leben? Vorsicht, hier wird man ganz leicht zur S** gemacht... Bzgl hilfreicher Tipps... vlg Thread von gestern... Und weg...
Harald Nagy schrieb: > Vorsicht Ja vor dem Cyberlord muss man schon Angst haben, jemand der im Internet unfreundlich ist und Leute anmault, mal was ganz neues, schon ein gefährlicher Typ ;)
Harald Nagy schrieb: > Quack schrieb: >> Kuebellord, hast du kein Leben? > > Vorsicht, hier wird man ganz leicht zur S** gemacht... > > Bzgl hilfreicher Tipps... vlg Thread von gestern... Ach du verträgst auch gar nichts. Nur weil du absolut keinerlei Selbstreflektion hast. Sonst hättest du mal gemerkt, dass genau DEIN Post und DEINE Kritik an anderen Usern, Off-Topic und unangemessen waren und du damit genau das gemacht hast, was du eigentlich kritiseren wolltest. Und das haben leider auch andere so gesehen. Damit kommst wohl nicht klar. Heulst du damit jetzt jeden Thread voll? Wie wärs mal mit EINSICHT? gruß cyblord
Es ist verhältnismäßig einfach, sich Leute vom Leibe zu halten, deren "Ergüsse" man sich getrost ersparen kann. Hier ist eine Methode beschrieben: Beitrag "User ausblenden" MfG Paul
> > Ach du verträgst auch gar nichts. Nur weil du absolut keinerlei > Selbstreflektion hast. Sonst hättest du mal gemerkt, dass genau DEIN > Post und DEINE Kritik an anderen Usern, Off-Topic und unangemessen waren > und du damit genau das gemacht hast, was du eigentlich kritiseren > wolltest. Und das haben leider auch andere so gesehen. Damit kommst wohl > nicht klar. Heulst du damit jetzt jeden Thread voll? Wie wärs mal mit > EINSICHT? > > gruß cyblord Ach halt die Klappe. Du bist in Zukunft einfach unsichtbar für mich...
Harald Nagy schrieb: > Ach halt die Klappe. Du bist in Zukunft einfach unsichtbar für mich... Soviel zum Thema: Einsicht... Vielleicht fehlt dir dazu aber noch etwas Reife. Dieselbe hat ja auch mit dem Alter wenig zu tun.
:
Bearbeitet durch User
Moin, ich habs gemacht wie in Autor: Nique (Gast) Datum: 26.03.2014 10:34 oben beschrieben, und habe den fehler "missing upload.tool" bekommen. damit is offensichtlich die boards.txt gemeint, wo offenbar eine zeile fehlt. weiss die einer? mfg Das TIER
Mike Oswald schrieb: > Ich hab das aus dem tutorial mal übernommen, Wie hast Du die Grafiken erstellt? Würde damit auch gerne anschauliche Darstellungen machen!
Hier ist ein Reository das über den Arduino-Boardmanager installierbar ist https://github.com/MCUdude/MicroCore Bei MCUdude gibt es auch für andere AVR Konfigurationen. Heiko
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.