Pollin Funk-AVR-Evaluationsboard

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Version vom 24. März 2008, 18:09 Uhr von Stefan (Diskussion | Beiträge) (Die Seite wurde neu angelegt: == Aufbau == Nichts besonderes zu vermelden. Für einen Ungeübten (mich) hat es ca. 2 h gedauert. Gegen Ende der Löterei lies meine Konzentration nach und ich musste...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Aufbau

Nichts besonderes zu vermelden. Für einen Ungeübten (mich) hat es ca. 2 h gedauert. Gegen Ende der Löterei lies meine Konzentration nach und ich musste ein paar Lötstellen mit Entlötlitze nachbehandeln. Besser eine Pause machen.

Funktionstests

Nach der genauen Betrachtung mit einer Lupe und keinen Auffälligkeiten wurde eine 9V Gleichspannung an die Klemme J5 angelegt. LED NETZ leuchtet. LED1 und LED2 sind aus. Mein Netzteil kann den Strom anzeigen. Folgende Werte wurden beobachtet:

  • ca. 20 mA bei AVR nicht eingesetzt, MAX232 nicht eingesetzt
  • ca. 22 mA bei AVR nicht eingesetzt, MAX232 nicht eingesetzt, RESET gedrückt
  • ca. 25 mA bei AVR nicht eingesetzt, MAX232 eingesetzt
  • ca. 26 mA bei AVR nicht eingesetzt, MAX232 eingesetzt, RESET gedrückt
  • ca. 30 mA bei ATmega8 eingesetzt, MAX232 eingesetzt

Einstellung der Taktquelle

Parallelport ISP Typ STK200

ATmega8 Fuses lesen

@echo off
echo Lese ATmega8 Fuses
d:\winavr\bin\avrdude -v -p atmega8 -c stk200 -P lpt1

Siehe auch

  • AVR Fuses
  • AVRDUDE
  • AVR Fuse Calculator von Mark Hämmerling. In den dortigen Default-Einstellungen ist der Watchdog aktiviert. Lässt man das so, funktioniert das Programm Blinky (s.u.) nicht wie erwartet: Nur LED2 zappelt, LED1 ist meist aus, weil vor dem Umschalten von LED1 der Watchdog den Atmega8 resettet, d.h. das Programm von neuem starten lässt.

ATmega8 1 MHz RC

@echo off
echo Setze ATmega8 Fuses auf 1 MHz interner RC-Oszillator
d:\winavr\bin\avrdude -v -p atmega8 -c stk200 -P lpt1 -U lfuse:w:0xC1:m -U hfuse:w:0xD9:m

ATmega8 12 MHz Quarz

Wenn das Board nach Anleitung aufgebaut wurde, d.h. in Q2 der 12,000 MHz Quarz eingesetzt wurde, kann man den ATmega8 auf max. 12 MHz einstellen:

@echo off
echo Setze ATmega8 Fuses auf 12 MHz Quarz
d:\winavr\bin\avrdude -v -p atmega8 -c stk200 -P lpt1 -U lfuse:w:0x2F:m -U hfuse:w:0xD9:m

Seriellport ISP vom Board

(ToDo)

Beispielprogramme

Blinky

Die beiden LED auf dem Board sollen im 1s Takt wechselweise An und Aus gehen:

<c> /*

   Atmega8
   Pollin Funk-AVR-Evaluationsboard v1.1
   Project -> Configuration Options in AVR Studio:
   Frequency:    1000000 bzw. 12000000
   Optimization: -Os
  • /
  1. include <avr/io.h>
  2. include <util/delay.h>

// LEDs sind high-active geschaltet

  1. define LED_AN(LED) (PORTD |= (1<<(LED)))
  2. define LED_AUS(LED) (PORTD &= ~(1<<(LED)))
  3. define LED_TOGGLE(LED) (PORTD ^= (1<<(LED)))
  4. define LED1 PD6
  5. define LED2 PD5
  6. define TASTER PB1

int main(void) {

 DDRB &= ~(1<<TASTER);          // Port B: Eingang für Taster
 DDRD |= (1<<LED1) | (1<<LED2); // Port D: Ausgang für LED1 und LED2
 // Anfangseinstellung
 LED_AN(LED1);
 LED_AUS(LED2);
 while(1)
 {
   LED_TOGGLE(LED1);
   LED_TOGGLE(LED2);
   _delay_ms(1000);  // Wert 1000 erlaubt ab avr-libc 1.6
 }

} </c>