Themen:

AVR, avr-gcc, CAN, CPLD, Elektronik, Mikrocontroller, MSP430, PIC, Roboter, Schaltungen, Sensoren, Software, Testboards

ATMega48/88/168 Testboard v2.0

Tags: AVR, Schaltungen, Testboards
Stand: 9. Oktober 2006, 20:57
16 Kommentar(e)

Nun gibt es also auch das ATMega8 Testboard in einer zweiten Version. Wie auch beim ATMega16/32 Board sind nun alle Port-Stecker so platziert das auch gewinkelte Wannenstecker verwendet werden können. Neben einem I2C Eeprom sind jetzt auch alle Pins zusätzlich auf Buchsenleisten geführt, so dass man sie einfach mit einem Steckbrett verbinden kann.

ATMega168 Testboard

Ansonsten wurden alle Funktionen aus der vorherigen Version übernommen.

Schaltplan und Platinenlayout

Alle diese Daten gibt es unten auch noch einmal als Paket zum herunterladen.

Jumper

JP1
Ermöglicht das verwenden von Nullmodem und nicht gekreuzten Kabeln für die serielle Verbindung zum PC hin. Im Normalfall (Nullmodemkabel) sollten die Jumper “parallel” zum RS232 Steckers gesteckt werden.
JP2
Aktiviert die LEDs welche an PORTD.6 und PORTD.7 angeschlossen sind. Will man die LEDs nicht nutzen, so wird dieser Jumper einfach offen gelassen.
JP8
Aktivieren/Deaktivieren der I2C Pullups.
JP9
Schleift das Interrupt Signal des I2C Steckers zum Pin PC.3 durch.

Taster

Die Taster hängen an PORTC.0 und 1. Um sie zu verwenden sollte man die internen Pullup-Widerstände aktivieren, damit man bei nicht gedrücktem Taster einen definierten Pegel an dem Port hat.
Will man die Taster nicht verwenden, so kann man sie einfach ohne Probleme vergessen :-)

LEDs

Die LEDs sind an PORTD.6 und PORTD.7 angeschlossen. Um sie zu verwenden muss man den Jumper JP2 stecken. Die LEDs leuchten dann bei einem Low-Pegel.

Testprogramm

Hier noch ein kleines Testprogramm für avr-gcc/WinAVR um die Funktion des Boards zu überprüfen. Am Anfang sollte LED2 leuchten.
Drückt man dann Taster S2 werden die LEDs “umgeschaltet”, es leuchtet dann also nur noch LED1. Beim Druck auf Taster S1 wird dann eine kleine Nachricht an den PC gesendet werden.

Natürlich müssen Taktfrequenz und Baudrate an die eigene Platine angepasst werden.

C:
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <inttypes.h>

// Sollte schon im Makefile definiert sein.
// In dem Fall hier einfach löschen.
#define F_CPU       7372800UL

#define BAUD        19200UL
#define UBRR_BAUD   ((F_CPU/(16UL*BAUD))-1)

// Zeichenkette im Flashspeicher
prog_char msg[] = "Hello World!\n";

int
main(void)
{
    // Pullups für Taster aktivieren
    DDRC = 0x00;
    PORTC = (1<<PC0)|(1<<PC1);
   
    // LEDs aktivieren und LED2 leuchten lassen.
    DDRD = (1<<PD6)|(1<<PD7);
    PORTD = (1<<PD6);
   
    // UART Baudrate einstellen
    UBRRH = (uint8_t) (UBRR_BAUD>>8);
    UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff);

    // Aktivieren des UART Transmitters
    UCSRB = (1<<TXEN);

    // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
    UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
   
    uint8_t i = 0;
    char temp;
   
    while (1)
    {
        // Überprüfen ob Taster S1 gedrückt wurde
        if (bit_is_clear(PINC, PC0))
        {
            // Nachricht per UART senden
            while ((temp = pgm_read_byte(msg[i])) != '\0')
            {
                // Warten bis der Sendepuffer frei ist
                while (!(UCSRA & (1<<UDRE)))
                    ;
               
                // Daten in den Puffer schreiben und damit senden
                UDR = temp;
               
                i++;
            }
        }
       
        // Überprüfen ob Taster S2 gedrückt wurde
        if (bit_is_clear(PINC, PC1)) {
            // LEDs umschalten
            PORTC = (1<<PD7);
        }
        else {
            PORTC = (1<<PD6);
        }
    }
   
    return 0;
}

Downloads:

atmega168_testboard_v2.zip [516.10 kB]

Zum Anfang

Kommentare

# anton meinte am 15. November 2006, 14:58 dazu:

Hallo, kannst du bitte eine Stückliste mit den Bauteilen die man braucht machen?

mfg anton

# IceMan meinte am 19. November 2006, 22:43 dazu:

Bist du sicher das du die Platine aufbauen willst!?

6x  1µF/63V RM2 5mm - 
1x  10µF/63V RM2 5mm - 
1x  100µF/35V RM3,5 8mm - 
8x  100nF ker RM2,5 - 
2x  22pF ker RM2,5 - 
2x  1N4148 - 
1x  LM2940 - 
1x  Quarz RM5 - 
20x Stiftleiste RM2,5 - 
30x Buchsenleiste RM2,5 - 
1x  SUbD 9pol - 
5x  Buchse 10pol abgewinkelt - 
1x  Trimmer 10k 5,0/2,7 - 
1x  Trimmer 20k 3,5/1,5 rund - 
2x  LED rot 3mm - 
1x  LED grün 3mm - 
3x  Taster 4,5*6,5 - 
1x  Spule 100µH - 
1x  24C256 - 
1x  ATMega168 - 
1x  Max232 - 
1x  Gleichrichter RM5 rund Typ S 01 - 
1x  IC-Fassung 28pol - 
1x  IC-Fassung 16pol - 
1x  IC-Fassung 8pol - 
1x  Schraubklemme 2pol

# Fabian Greif meinte am 2. Dezember 2006, 01:24 dazu:

Es ist jetzt auch eine Bestellliste für Reichelt in der atmega168_testboard_v2.zip Datei dabei.

# HAns meinte am 8. Januar 2007, 08:22 dazu:

WO schließt man den Mikrocontroller an?? und welche kann man dort anschließen?

# Fabian Greif meinte am 8. Januar 2007, 18:06 dazu:

IC3 ist der Mikrocontroller (siehe Schaltplan/Bestückungsplan).
Es kann dort ein ATMega8, ATMega48, ATMega88 oder ATMega168 eingebaut werden (AT90S2333 und AT90S4433 sollten auch noch gehen).

# Matthias Wulff meinte am 27. Februar 2007, 10:19 dazu:

Ein kleiner Fehler im Programm

//hinter PC1 fehlt eine ) Klammer

// so ist es richtig

// Überprüfen ob Taster S2 gedrückt wurde if (bit_is_clear(PINC, PC1)) { // LEDs umschalten

# Frank meinte am 6. April 2007, 23:48 dazu:

Hallo ich muss sagen die Seiten sind echt Super. Ich habe das Bord aufgebaut,und in Betrieb genommen. Nun möchte ich eigene Programme schreiben. Mit welcher Software kann ich das realisieren? Was benötige ich noch an Verbindungen zum Pc zum Programmieren? Gibt es für das Bord für Anfänger einer Anleitung wie ich ?mein ? erstes Programm in den Prozessor bekomme? Ich habe mich bis jetzt mit SPS Steuerungen beschäftigt, zwecks Programmierung in Kontaktplan gib es so was auch für den Mega? Oder noch andere Programmiersprachen für den Mega? Und welche sind es und wenn es geht nicht alles in Englisch. Danke wäre Super wenn mir geholfen werden kann :-)

# Frank Ulbrich meinte am 17. Juni 2007, 21:28 dazu:

Tolle Sache diese Platine. Hat jemand zufällig aus der Runde noch eine Leerplatine für mich, die er mir verkaufen könnte. Habe Interesse das Board nachzubauen.

Gruß Frank Ulbrich

# Leo meinte am 11. Dezember 2009, 19:39 dazu:

Hallo Fabian, danke für die Mühe, die Du Dir gemacht hast! Ich werde das Testboard morgen mal nachbauen. Eine Anmerkung hätte ich noch: Du schreibst “per Jumper lässt sich zwischen Nullmodem und gekreuztem Kabel umstecken”. Ein Nullmodemkabel ist jedoch ein gekreuztes Kabel, das “normale” ungekreuzte wäre ein serielles Verlängerungskabel. Vielleicht könntest Du das noch klarstellen ;-) Viele Grüße, Leo

# Fabian Greif meinte am 12. Dezember 2009, 19:25 dazu:

Hallo Leo,

Ein Nullmodemkabel ist jedoch ein gekreuztes Kabel, das “normale” ungekreuzte wäre ein serielles Verlängerungskabel. Vielleicht könntest Du das noch klarstellen

Überzeugt ;-) Ist geändert.

Grüße Fabian

# Thomas Erber meinte am 8. Januar 2010, 13:47 dazu:

Hallo,

ich bin ganz neu hier. Wollte mal fragen obs das “ATMega48/88/168 Testboard v2.0” irgendwo komplett zu kaufen gibt? mfg Thomas

# Fabian Greif meinte am 10. Januar 2010, 15:42 dazu:

ich bin ganz neu hier. Wollte mal fragen obs das ?ATMega48/88/168 Testboard v2.0? irgendwo komplett zu kaufen gibt?

Nein, nicht das ich wüsste. Die Platine ist allerdings relativ leicht selbst zu ätzen (wenn man die Möglichkeit dazu hat, ansonsten bleiben nur die professionellen Leiterplatten-Hersteller).

Grüße Fabian

# Martin meinte am 8. März 2010, 15:50 dazu:

Hallo,
Ich habe ein “ATMega48/88/168 Testboard v2.0” fertig gebaut! sollte jemand Interesse haben dann Mail an info@carreno.de
Gruß Martin

# Stephan Harms meinte am 14. August 2010, 14:25 dazu:

Hallo, mit dem Board bin ich sehr zufrieden jedoch habe ich für eine v3.0 des Boards einen kleinen Versesserungsvorschlag: Der Jumper JP4 bedient sowohl die SCL- als auch die SDA-Leitung. Daher sind die beiden Leitungen auch bei nicht gesetztem Jumper über die Pull-Up-Widerstände verbunden. Man sollte lieber zwei Jumper verwenden, damit die Leitungen entkoppelt sind. Viele Grüße Stephan

# Zh4ng meinte am 14. April 2013, 22:34 dazu:

Hi Fabian, Sach mal, wozu ist der Trimmer R9 da (75H 20K) ? Im Moment bekomme ich den echt schlecht. Ich habe in dem Rastermaß nichts anderes gefunden. Leider habe ich die Platine schon geätzt, sonst hätte ich eine Alternative eingebaut.

Gruß, Zh4ng

# Fabian Greif meinte am 16. April 2013, 13:58 dazu:

wozu ist der Trimmer R9 da

Den kannst du einfach weglassen. Der dient nur zum Testen des Analog-Digital-Wandlers, um für den einen veränderbare Spannung zur Verfügung zu haben.

Grüße Fabian

Deine Meinung:

  • Textformatierung ist mit Markdown möglich.
  • HTML wird entfernt.
  • Kommentare werden moderiert und sind daher eventuell nicht sofort sichtbar.
  • Irrelevante Kommentare werden gelöscht.