Archiv der Kategorie: AVR

Atmel-Programmierung

Erstes “Nutzprojekt” – Impulsgeber (Sekundenbereich) für Steckbrett mit ATtiny13

Kleines “Projekt” – Impulsgeber 0,25 Sekunden bis 11 Sekunden in 0,25 Sekundenschritten einstellbar. Zusammengefrickelt auf Lochraster.

Schaltplan:

1_Zeitgeber_Attiny13_achtel

Platine – 1/8 Europa – Blackboard

impulsgeber

Platine – 1/8 Europa – und die Realität

1_Zeitgeber_Attiny13_achtel_lochraster

Das C-Programm: pulsgenerator_attiny13_programm

ATtiny13-Versuchsboard

Nachdem mir das “Gefrickel” mit dem t13 auf dem STK500 zu viel wurde, ein kleines Versuchsboard (natürliche passend für mein Stecksystem). Schnittstelle zum Programmieren die ISP6 (vom STK500 holen) und viele stabile Anschlüsse.

Gesamtansicht Top Top+Parts Bottom
attiny13-gesamt-mod attiny13-top-mod attiny13-top-parts-mod attiny13-bottom-mod

Download

Aufgebaut:

attiny13_exp

und “Hallo Welt” gesagt:

Attiny 13 auf STK500 (V2) programmieren

Leider ist in dem Handbuch zum STK500 nichts über den ATtiny13 zu finden. Ich wollte für mein Homematic-Projekt diesen aber programmieren. Nach einigen Stunden bin ich zu folgender Lösung gekommen:

  1. ISP6 Schnittstelle nutzen: ISP6IN auf SPROG1
    stk500v2_attiny13_1
  2. Verbinde PORTB.PB5 mit PORTE.RST und PORTB.PB3 mit PORTE.XT1
    stk500v2_attiny13_2
  3. Stecke den ATtiny13 auf SCKT3400D1
    stk500v2_attiny13_3

Und nochmal alles zusammen.
stk500v2_attiny13_4

Testen (Systemabhängig! hier STK550V2 mit USB-Adapter unter Linux mit entsprechenden Bibliotheken) – keine Angst liest nur das Fuse Low Byte aus:
sudo avrdude -v -p t13 -c STK500v2 -P /dev/ttyUSB0 -U lfuse:r:/dev/stdout:b

DDR, PORT und PIN am Atmel-Mikrocontroller

Hier bissie aufpassen! Die Verständnisfrage ist die Wesentliche!

DDR Data Direction Register das Beinchen wird als Ein (0) – bzw. Ausgang (1) gesetzt.Im Einschaltaugenblick sind erstmal alles Eingänge
PORT Wenn DDR als Ausgang gesetzt, einschalten (1) und ausschalten (0).Wenn DDR als Eingang gesetzt, INTERNEN Pull-Up-Widerstand einschalten (1) und ausschalten (0).
PIN Wenn DDR als Eingang gesetzt, kann dieser abgefragt werden.

Atmel – ATtiny 13 – Pins

Pin Name Alternative Funktion Pin Nr
PB0 (MOSI/AIN0/OC0A/PCINT0) MOSI: Programmieradapter Data Input; SPI Master Data Output / Slave Data Input
AIN0: Analog Komparator, Referenzspannung (Sollwert);  Analog Comparator, Positive Input;
OC0A: 8Bit-PWM Kanal A;  Timer/Counter0 Compare Match A output
PCINT0: Interrupt bei toggle?; : Pin Change Interrupt 0, Source 0
5

ATMega32 – Pins

Pin Name Beschreibung Alternative Funktion Pin Nr
PA0 (ADC0) I/O PORTA, Pin 0 ADC Channel 0 40
PA1 (ADC1) I/O PORTA, Pin 1 ADC Channel 1 39
PA2 (ADC2) I/O PORTA, Pin 2 ADC Channel 2 38
PA3 (ADC3) I/O PORTA, Pin 3 ADC Channel 3 37
PA4 (ADC4) I/O PORTA, Pin 4 ADC Channel 4 36
PA5 (ADC5) I/O PORTA, Pin 5 ADC Channel 5 35