miniSTK

miniSTK 1.1

miniSTK entstand als Entwicklungs- und Testplatine für 8-Bit Mikrocontroller aus der Atmel AVR Reihe.

Das miniSTK ist eine stark vereinfachte und modernisierte Version des bekannten STK500 von Atmel.
Auf die HV-Programmierung, einstellbare Spannungsregler und verschiedene Sockel wurde verzichtet – dafür reicht zum Betrieb ein USB-Anschluss aus. Als USB UART Baustein wird der FT232RL verwendet, Treiber für fast alle aktuellen Betriebssysteme werden von FTDI angeboten.

Das Programmiersystem ist kompatibel zum STK500v2 Protokoll und kann auch als ISP-Programmiergerät für eigene Entwicklungen verwendet werden. Die USB UART Schnittstelle verbindet wahlweise das Programmiersystem mit der Entwicklungsumgebung oder kann als universelle Verbindung zum Mikrocontroller verwendet werden.


Funktionen

  • Kompatible Mikrocontroller
    • auf dem miniSTK: ATmega8 und pinkompatible (z.B. ATmega328)
    • an der ISP-Schnittstelle: Fast alle neueren ATmega und ATtiny
  • PC-Verbindung über Mini-B USB & FTDI FT232RL
  • Stromversorgung vom USB-Anschluss (überlastgeschützt) oder extern über Schraubklemmen
  • ISP Programmiersystem
    • direkt verbunden mit dem Mikrocontroller im Sockel
    • Pins im Ruhezustand hochohmig, frei verwendbar z.B. für SPI Bausteine
    • als ISP-Programmieradapter für eigene Schaltungen verwendbar (nur 5V, Versorgung vom miniSTK möglich)
  • USB UART-Verbindung (Rx/Tx)
    • Umschaltbar zwischen Programmiersystem und Mikrocontroller
    • Handshake-Leitungen (RTS/CTS) zusätzlich herausgeführt
  • Kompakte Maße: 75mm x 85mm
  • 8 Taster & 8 LEDs (frei belegbar, mit Pullup und Treiber)
  • Stecksockel für Schwingquarze im HC49-Gehäuse
  • Einstellbarer Taktgenerator (5V TTL, 0-2MHz)
  • LED Anzeige für die UART-Verbindung, Status und Aktivitätsanzeige
  • Schutzschaltung gegen Überlastung und Überspannung
  • Firmware kann über Bootloader & Windows-GUI aktualisiert werden
  • Vorbereitet für Erweiterungsplatinen, Teilbestückung oder Erweiterung des Programmiersystems

Kompatible Software

Das integrierte Programmiersystem wird über das STK500v2-Protokoll als „AVR ISP“ Programmieradapter angesprochen. Dazu kompatible Software:

  • Atmel AVR-Studio ab 4.19
  • AVRDUDE
  • Bascom

Bootloader (z.B. Arduino, FastBoot, LunaAVR) auf dem Mikrocontroller können über die USB-UART-Verbindung genutzt werden. Der Mikrocontroller kann über die Handshake-Leitung (DTR) zum automatischen Starten des Bootloaders zurückgesetzt werden.


Downloads

Aktuelle Version: 1.1 vom 24. November 2013 (846,35 kB)

Download “miniSTK” (4132-mal heruntergeladen)

Versionsinfo

  • 1.0 (08/2013): Erste Testversion für Entwicklung (nur Hardware)
  • 1.1 (11/2013): Anschluss für Erweiterungen und besseres Layout, Firmware & Addons erstellt, erste produzierte Version

USB Treiber

FTDI FT232RL Virtual COM Port (Linux/Mac/Windows)


Bedienung

miniSTK 1.1 + Addon #2

In der Programmiersoftware wird das miniSTK meistens als „STK500“ oder „AVRISP“ aufgeführt. Die Kommunikation läuft über das STK500v2 Protokoll.

Nach dem Einschalten ist die USB UART Schnittstelle standardmäßig mit dem Programmiersystem verbunden.
Um die Verbindung zum Mikrocontroller umzuschalten muss die Versorgung eingeschaltet sein (grüne Anzeige) und im Bereich von 4,25V bis 5,25V liegen. Sobald die Spannung den zulässigen Bereich verlässt wird die Verbindung getrennt um Querströme über die Datenleitungen zu verhindern.

Nachdem die Programmiersoftware die Verbindung zum miniSTK aufgebaut hat wird ein Synchronisationsbyte ausgetauscht, es ist daher nicht möglich die Schnittstelle zeitweise umzuschalten.
Die Verbindung kann durch gleichzeitiges Betätigen der Taster (PC-Verbindung & Reset) getrennt und dann umgeschaltet werden.

Externe Beschaltungen am Mikrocontroller dürfen die Programmier- und ggf. UART Pins nicht blockieren, zum Schutz sollten Serienwiderstände eingeplant werden. Im Ruhezustand und bei getrennter UART-Verbindung ist das miniSTK vollständig hochohmig, sämtlich Pins des Mikrocontrollers können frei verwendet werden.

Nicht unterstütze Kommandos

Durch die vereinfachte Hardware werden nicht alle Funktionen des STK500 unterstützt. Soweit möglich lehnt das miniSTK ungültige Befehle ab, AVR Studio zeigt dann entsprechende Fehlermeldungen.

  • Programmiermodus: Nur ISP, 5V
  • ISP Takt: 115kHz, 460kHz, 1.8MHz
  • Spannungen: VTarget messen, einstellen nicht möglich
  • Kein Firmware Update über AVR Studio

Fehlerbehandlung im AVR Studio

Das ältere AVR Studio (Version 4.x) unterstützt nur die Ports COM1 bis COM9.
Da Windows die Ports aufsteigend numeriert kann das miniSTK schnell eine zu hohe Port-Nummer zugewiesen bekommen, besonders wenn öfter verschiedene USB-RS232 Adapter oder Bluetooth Geräte verwendet werden.

Abhilfe schafft der Gerätemanager, in den Eigenschaften des COM-Port kann unter Anschlusseinstellungen -> Erweitert die Anschlussnummer geändert werden.
Schon belegte Nummern können verwendet werden solange das miniSTK nicht gleichzeitig mit der ursprünglich für den gewählten Port vorgesehenen Hardware angeschlossen wird.

Beim Verbindungsaufbau prüft das AVR Studio die Firmware Version und bietet ggf. ein Update an. Die STK500 Firmware ist nicht mit dem miniSTK kompatibel, ein Update würde fehlschlagen.
Um die Meldung auszublenden kann die vom miniSTK übermittelte Versionsnummer im Quelltext geändert werden. Außerdem wird bei Bedarf hier zeitnah eine aktualisierte Firmware zur Verfügung gestellt.


miniSTK 1.1

Hardware

Die Basisplatine ist in zwei Bereiche geteilt:
Links: Statusanzeige und Bedientaster, Programmiersystem, PC-Verbindung
Rechts: Entwicklungsbereich mit ATmega8 Mikrocontroller, LEDs und Tastern

Für weitere Details lohnt sich auch der Blick in den Schaltplan.

LED-Anzeige & Bedientaster

LEDFunktion
StBrotStandbyLeuchtet während USB-Enumeration und im Stromsparmodus
Rx/TxgrünÜbertragungBlinkt bei Datenübertragung (Tx = PC sendet)
STK/MCUgrünUART-VerbindungAnzeige der ausgewählten UART-Verbindung (STK: Programmiersystem, MCU: Mikrocontroller)
Resetrot/grün/orangeAktivitätsanzeigeRot: Mikrocontroller außer Betrieb
Grün: Mikrocontroller aktiv, Leerlauf
Grün blinkend: Programmiersoftware an-/abgemeldet
Orange: Verbindung zur Programmiersoftware aufgebaut
Orange blinkend: Programmieraktivität, ISP-Schnittstelle aktiv
MCUgrünMikrocontrollerLeuchtet bei aktiver Versorgung des Mikrocontrollers
FaultrotFehleranzeigeDauerleuchten: Spannung außerhalb des zulässigen Bereichs (4,25V - 5,25V)
Blinken: USB-Versorgung überlastet
Schnell blinken: Fehler im Programmiersystem, Abbruch

TasterFunktion
PC-VerbindungPC-Verbindung zwischen "MCU" und "STK" umschalten
ResetMikrocontroller zurücksetzen

Die Verbindung zur Programmiersoftware kann durch gleichzeitige Betätigung der Taster getrennt werden.

Anschlüsse am Mikrocontroller

Alle Pins des Mikrocontrollers sind auf Stiftleisten neben dem Sockel herausgeführt und beschriftet. Die Leisten sind mit 15,24mm Abstand im 2,54mm Raster angeordnet, so kann z.B. eine Lochrasterplatine oder ein Nullkraftsockel über den Mikrocontroller gesteckt werden.

Pin 1-14 des Mikrocontrollers liegen direkt neben dem Sockel (untereinander zwischen der „1“ und „14“ Beschriftung).
Links daneben liegen 13 zusätzliche Lötaugen (verbunden mit Pin 15-28), hier kann eine 26-polige Stiftleiste zum Anschluss von Erweiterungen eingelötet werden. Um einen Wannenstecker aufstecken zu können muss der Reset-Pin (Pin 1 am Sockel) entfernt werden.

Die Anschlüsse parallel zum Schwingquarz (Pin 9/PB6 & 10/PB7) sollten nicht über Flachbandkabel verlängert werden wenn ein Quarz verwendet wird. Lange Leitungen wirken als Antenne und können den Oszillator stören.

USB UART

Am Mikrocontroller sind die Rx/Tx-Anschlüsse (Pin 2/PD0 & Pin 3/PD1) fest mit der UART Schnittstelle verbunden. Bei getrennter Verbindung ist die Schnittstelle hochohmig.
Die Handshake-Signale RTS & CTS (Stiftleiste „HS“, CTS oben) führen direkt zum FT232RL und werden beim Umschalten der Verbindung nicht getrennt. Alle Leitungen laufen über Serienwiderstände (270Ω).

LEDs & Taster

Jede LED wird von einem Treibertransistor geschaltet und belastet den Pin mit ca. 200µA.
LED: High aktiv, mit Pulldown (>20kΩ)
Taster: Low aktiv, mit Pullup (10kΩ) und Serienwiderstand (330Ω)

Quarzsockel

In den Sockel „XTAL“ können HC49 Quarze eingesetzt werden. Der Quarz ist direkt mit den Osziallator-Pins XTAL1 und XTAL2 (Pin 9/PB6 & 10/PB7) des Mikrocontrollers verbunden. Lastkapazität (gegen Masse): 22pF

ISP-Schnittstelle

An der ISP-Schnittstelle liegen parallel das interne Programmiersystem und die Datenleitungen zum Mikrocontroller. So kann entweder ein externes Programmiergerät mit dem Mikrocontroller verbunden werden, oder das miniSTK externe Schaltungen programmieren.

MISO12VCC
SCK34MOSI
RESET56GND
AVR ISP Pinbelegung, 6-Pin Standard

Pin 1 ist durch einen weißen Punkt markiert.

Taktgenerator

Über Pin 9/XTAL1 kann der Mikrocontroller das Signal (5V TTL, 0-2MHz) als Systemtakt nutzen. Der Taktgeber ist nur bei eingeschalteter Versorgung aktiv.

Messpunkte

  1. Betriebsspannung VCC Mikrocontroller (gelb)
  2. Masse (schwarz)
  3. Analog-Referenzspannung ARef (orange)
  4. Masse (schwarz)
  5. Taktsignal 500kHz, 5V TTL (weiß)

Am Messpunkt 1 (VCC) darf keine Spannungsquelle angeschlossen werden.

5V Anschluss (Schraubklemmen)

An den Klemmen können +5V und Masse z.B. zur Versorgung von Erweiterungsplatinen abgegriffen werden.

Ein externes 5V-Netzteil kann parallel angeschlossen werden, die gleichzeitige Verwendung mit der USB-Versorgung ist möglich.

Achtung: Dieser Anschluss ist direkt mit der Schaltung (ohne Spannungsregler, Strombegrenzung oder Verpolungsschutz) verbunden! Netzteile dürfen nur an der Schraubklemme, nicht am Mikrocontroller oder an Messpunkten angeschlossen werden!

Passende Steckklemme: Rastermaß 3,81mm; RIA 31369102 (z.B. Reichelt „AKL 369-02“)


Verwendung als ISP-Programmieradapter

Ohne zusätzlichen Pegelwandler können nur Ziele mit 5V Betriebsspannung programmiert werden!

  1. Mikrocontroller aus dem Sockel entfernen
  2. Zielsystem mit der ISP-Schnittstelle verbinden
  3. Schalter „MCU“:
    • Einschalten um das Ziel mit Spannung zu versorgen
    • Ausschalten wenn des Ziel über eine eigene Versorgung verfügt
  4. Verbindung aufbauen und Programmierung starten

Das miniSTK misst die Spannung des Zielsystems. Liegt die Spannung außerhalb des zulässigen Bereichs (4,25V – 5,25V) wird die ISP-Verbindung getrennt. Die gemessene Spannung kann am PC ausgelesen werden, z.B. auf dem „Hardware“-Reiter im AVR-Studio Dialog.


Firmware-Update

Updates können über den FastBoot Bootloader und z.B. UpdateLoader eingespielt werden.

Bootloader-Passwort: „Leoa“, 115200 Baud

Das Passwort wird von der Firmware erkannt und startet automatisch den Bootloader. Sollte die Firmware beschädigt sein und den Bootloader nicht aktivieren kann der Mikrocontroller über den Messpunkt (beschriftet mit „1“) neben der USB-Buchse zurückgesetzt werden (beim Verbindungsaufbau kurz mit GND/Masse verbinden).


Erweiterungen

miniSTK – Addon #1

Addon #1 (Potis, RGB-LED, LCD, SD-Karte, CAN, RTC) für das miniSTK

Weiterlesen…

miniSTK – Addon #2

Addon #2 (Lötpunkte, Netzteil, Arduino-Shield-Steckplatz) für das miniSTK

Weiterlesen…

Anschluss von Erweiterungsplatinen

Benötigtes Zubehör:

  • Flachbandkabel 26-polig, ca. 10cm
  • 5V-Verbinder mit Steckklemmen
  • optional: Abstandshalter (für 3,2mm Bohrungen, mindestens 15mm)

miniSTK und Addon #2 gestapelt

Die 5V-Versorgung wird nur über die Steckklemmen verbunden und liegt nicht auf dem Flachbandkabel. Selbstklemmende Kunststoff-Abstandshalter verhindern Kurzschlüsse (z.B. Reichelt „AH2 19.1“)

Hardware-Modifikation

Die Basisplatine muss nicht vollständig bestückt werden – je nach Anwendungszweck kann sie auch ohne USB-Schnittstelle oder Programmiersystem aufgebaut werden.

Bei Vollbestückung nicht benötigte Bauteile:

  • R56 (Schaltplan Seite 2): Handshake RTS & CTS überbrückt
  • R39 (Schaltplan Seite 2): USB-Versorgung permanent aktiviert
  • R34 (Schaltplan Seite 3): UART-Verbindung getrennt
  • R58 (Schaltplan Seite 4): Reset-Taster direkt mit Reset-Pin verbunden
  • R38 (Schaltplan Seite 6): Schalter „MCU“ überbrückt

Je nach Konfiguration werden an den entsprechenden Stellen 0-Ohm Widerstände eingesetzt.

R56 verbindet die Handshake-Leitungen RTS & CTS permanent. Alternativ kann auch ein Jumper auf der Stiftleiste „HS“ gesetzt werden.

Schalter Versorgung Mikrocontroller

Ohne den Schalter „MCU“ lässt sich die Bauhöhe deutlich reduzieren, z.B. um Erweiterungsplatinen direkt aufzustecken. R38 wird mit einem 0-Ohm Widerstand bestückt (Bauform 0805) um den Mikrocontroller permanent zu versorgen.

Teilbestückung der Basisplatine

Bestückung ohne USB-Schnittstelle, mit USB-Versorgung:

  • entfällt inkl. Außenbeschaltung: IC2.1, IC3.1 außer R32, R33
  • R39 aktiviert die USB-Versorgung permanent

Bestückung ohne Programmiersystem:

  • entfällt inkl. Außenbeschaltung: IC4.1, S5.2 („PC-Verbindung“)
  • Pin 10 & 11 am IC3.1 permanent auf High-Pegel legen um die UART-Verbindung durchzuschalten (in Rev. 1.1 ist dafür keine Brücke vorgesehen)
  • R58 verbindet den Reset-Taster direkt mit dem Zielsystem

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert