Archiv der Kategorie: AVR

Atmel-Programmierung

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
PB1 (MISO/AIN1/OC0B/INT0/PCINT1) MISO:Programmieradapter Data Output;  SPI Master Data Input / Slave Data Output
AIN1: Analog Komparator, Vergleichsspannung (Istwert);  Analog Comparator, Negative Input
OCOB: 8Bit-PWM Kanal B;  Timer/Counter0 Compare Match B Output
INT0: Unterbrechung(Interrupt) programmierbar (bei fallender oder steigender Flanke oder bei Nullpegel);  External Interrupt 0 Input
PCINT1: Interrupt bei toggle?; :Pin Change Interrupt 0, Source 1
6
PB2 (SCK/ADC1/T0/PCINT2) SCK: Programmieradapter Clock Input;  Serial Clock Input
ADC1: A/D-Wandler 1;  ADC Input Channel 1
T0: “Timer” kann als Zähleingang verwendet werden;  Timer/Counter0 Clock Source
PCINT2: Interrupt bei toggle?; : Pin Change Interrupt 0, Source 2
7
PB3 (PCINT3/CLKI/ADC3) PCINT3: Interrupt bei toggle?;  Pin Change Interrupt 0, Source 3
CLKI;  External Clock Input
ADC3: A/D-Wandler 3;  ADC Input Channel 3
2
PB4 (PCINT4/ADC2) PCINT4: Interrupt bei toggle?; PCINT4: Pin Change Interrupt 0, Source 4
ADC2: A/D-Wandler2;  ADC Input Channel 2
3
PB5 (PCINT5/RESET/ADC0/dW) RESET! LOW AKTIV! ohne besondere Programmierung nicht nutzbar!;  Reset Pin
PCINT5: Interrupt bei toggle?; : Pin Change Interrupt, Source 5
ADC0: A/D-Wandler 0;  ADC Input Channel 0
dW;  debugWIRE I/O
1
VCC  Versorgungsspannung:  ATtiny13V: 0 – 4 MHz @ 1.8 – 5.5V, 0 – 10 MHz @ 2.7 – 5.5V;  ATtiny13: 0 – 10 MHz @ 2.7 – 5.5V, 0 – 20 MHz @ 4.5 – 5.5V 8
GND  Masse 4

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
PA6 (ADC6) I/O PORTA, Pin 6 ADC Channel 6 34
PA7 (ADC7) I/O PORTA, Pin 7 ADC Channel 7 33
PB0 (XCK/T0) I/O PORTB, Pin 0 T0: Timer0 External Counter Input.
XCK : USART External Clock I/O
1
PB1 (T1) I/O PORTB, Pin 1 T1:Timer1 External Counter Input 2
PB2 (INT2/AIN0) I/O PORTB, Pin 2 AIN0: Analog Comparator Positive I/P
INT2: External Interrupt 2 Input
3
PB3 (OC0/AIN1) I/O PORTB, Pin 3 AIN1: Analog Comparator Negative I/P
OC0 : Timer0 Output Compare Match Output
4
PB4 (SS) I/O PORTB, Pin 4 In System Programmer (ISP) 5
PB5 (MOSI) I/O PORTB, Pin 5 In System Programmer (ISP) 6
PB6 (MISO) I/O PORTB, Pin 6 In System Programmer (ISP) 7
PB7 (SCK) I/O PORTB, Pin 7 In System Programmer (ISP) 8
PC0 (SCL) I/O PORTC, Pin 0 TWI Interface 22
PC1 (SDA) I/O PORTC, Pin 1 TWI Interface 23
PC2 (TCK) I/O PORTC, Pin 2 JTAG Interface 24
PC3 (TMS) I/O PORTC, Pin 3 JTAG Interface 25
PC4 (TDO) I/O PORTC, Pin 4 JTAG Interface 26
PC5 (TDI) I/O PORTC, Pin 5 JTAG Interface 27
PC6 (TOSC1) I/O PORTC, Pin 6 Timer Oscillator Pin 1 28
PC7 (TOSC2) I/O PORTC, Pin 7 Timer Oscillator Pin 2 29
PD0 (RXD) I/O PORTD, Pin 0 USART Serial Communication Interface 14
PD1 (TXD) I/O PORTD, Pin 1 USART Serial Communication Interface 15
PD2 (INT0) I/O PORTD, Pin 2 External Interrupt INT0 16
PD3 (INT1) I/O PORTD, Pin 3 External Interrupt INT1 17
PD4 (OC1B) I/O PORTD, Pin 4 PWM Channel Outputs 18
PD5 (OC1A) I/O PORTD, Pin 5 PWM Channel Outputs 19
PD6 (ICP) I/O PORTD, Pin 6 Timer/Counter1 Input Capture Pin 20
PD7 (OC2) I/O PORTD, Pin 7 Timer/Counter2 Output Compare Match Output 21
AREF Analog Reference PIN for ADC 32
GND Ground 31
Avcc Voltage Supply = Vcc for ADC 30
XTAL1 Input to Inverting Oscillator Amplifier 13
XTAL2 Output to Inverting Oscillator Amplifier 12
GND Ground 11
Vcc Vcc=+5V 10
RESET Reset Pin, Active Low Reset 9