mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny 13 mit Arduino Uno programmieren?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mike (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Tom (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

probier es einmal damit: http://hlt.media.mit.edu/?p=1229

Tom

von Mike O. (mike_o)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

von Mike O. (mike_o)


Bewertung
0 lesenswert
nicht lesenswert
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

von Krapao (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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
# ... alter Inhalt
# Neu HINZUGEFÜGT

attiny13.name=ATtiny13 (internal 1.2 MHz clock)
attiny13.bootloader.low_fuses=0x6a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=1200000L
attiny13.build.core=arduino:arduino
attiny13.build.variant=tiny13

Dann ist eine neue Datei anzulegen:
arduino-1.0\hardware\arduino\variants\tiny13\pins_arduino.h

In dieser Datei steht:
/*
  pins_arduino.c - pin definitions for the Arduino board
  Part of Arduino / Wiring Lite

  Copyright (c) 2005 David A. Mellis

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General
  Public License along with this library; if not, write to the
  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  Boston, MA  02111-1307  USA

  $Id: pins_arduino.c 565 2009-03-25 10:50:00Z dmellis $

  Modified 28-08-2009 for attiny84 R.Wiersma
  Modified 09-10-2009 for attiny45 A.Saporetti
*/

#ifndef Pins_Arduino_h
#define Pins_Arduino_h

#include <avr/pgmspace.h>

// ATMEL ATTINY13 / ARDUINO
//
//                  +-\/-+
// Ain0 (D 5) PB5  1|    |8  Vcc
// Ain3 (D 3) PB3  2|    |7  PB2 (D 2) Ain1
// Ain2 (D 4) PB4  3|    |6  PB1 (D 1) pwm1
//            GND  4|    |5  PB0 (D 0) pwm0
//                  +----+

#define TIMER0_OVF_vect TIM0_OVF_vect // avoid modification of WInterrupts.c file

#define digitalPinToPCICR(p)    ( ((p) >= 0 && (p) <= 4) ? (&GIMSK) : ((uint8_t *)0) )
#define digitalPinToPCICRbit(p) ( PCIE )
#define digitalPinToPCMSK(p)    ( ((p) <= 4) ? (&PCMSK) : ((uint8_t *)0) )
#define digitalPinToPCMSKbit(p) ( (p) )

#ifdef ARDUINO_MAIN

// these arrays map port names (e.g. port B) to the
// appropriate addresses for various functions (e.g. reading
// and writing) tiny45 only port B 
const uint16_t PROGMEM port_to_mode_PGM[] = {
  NOT_A_PORT,
  NOT_A_PORT,
  (uint16_t) &DDRB,
};

const uint16_t PROGMEM port_to_output_PGM[] = {
  NOT_A_PORT,
  NOT_A_PORT,
  (uint16_t) &PORTB,
};

const uint16_t PROGMEM port_to_input_PGM[] = {
  NOT_A_PIN,
  NOT_A_PIN,
  (uint16_t) &PINB,
};

const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
  PB, /* 0 */
  PB,
  PB,
  PB,
  PB, 
  PB, // 5

};

const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
  _BV(0), /* 0, port B */
  _BV(1),
  _BV(2),
  _BV(3), /* 3 port B */
  _BV(4),
  _BV(5),

};

const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
  TIMER0A, /* OC0A */
  TIMER0B,
  NOT_ON_TIMER,
  NOT_ON_TIMER,
  NOT_ON_TIMER,
  NOT_ON_TIMER,
};

#endif

#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.

von Krapao (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Add:

In der Datei arduino-1.0\hardware\arduino\cores\arduino\Arduino.h
kann man die Zeile
#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.

von Mike O. (mike_o)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Krapao (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Nique (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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
}

von markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mit einem Attiny13 oder einem Attiny85?
Der Tiny ist mit seinen 2KB Flash für die Arduino-Bibliothek ziemlich 
knapp bemessen.

von Cyblord -. (cyblord)


Bewertung
-1 lesenswert
nicht lesenswert
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....

von Quack (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Kuebellord, hast du kein Leben?

von Harald N. (haraldn)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Eumel (Gast)


Bewertung
1 lesenswert
nicht lesenswert
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 ;)

von Cyblord -. (cyblord)


Bewertung
-2 lesenswert
nicht lesenswert
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

von Paul B. (paul_baumann)


Bewertung
1 lesenswert
nicht lesenswert
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

von Harald N. (haraldn)


Bewertung
0 lesenswert
nicht lesenswert
>
> 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...

von Cyblord -. (cyblord)


Bewertung
-2 lesenswert
nicht lesenswert
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
von Das TIER (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Thomas (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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!

von peter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
mit Fritzing zum Beispiel

von Heiko K. (heikoch)


Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.