Download weAut_01 automation controller - weinert

Transcript
Albrecht Weinert
weinert - automation
weAut_01
automation
controller
Benutzerhandbuch
Stand: 09.05.2013
weinert – automation Bochum
Prof. Dr.-Ing. Albrecht Weinert
Schattbachstraße 42
D-44801 Bochum
Telefon:
+49 (0) 234 7089634
Telefax:
+49 (0) 3212 12338681
E-Mail:
[email protected]
Internet:
weinert-automation.de
Steuernummer:
350/5264/0534
Finanzamt Bochum Süd
Umsatzsteuer-Identifikationsnummer gemäß § 27 a UStG: DE277642087
weAut_01 — Benutzerhandbuch (de 01)
Versionshistorie:
V.01.00,
V.01.04,
V.01.05,
V.01.07,
01.08.2011:
29.09.2011:
23.11.2011:
20.12.2012:
Neu
(aus Entwicklungsunterlage V.02.00)
Ergänzungen, Inbetriebnahme ausführlicher
Ethernet, ISP, div. Ergänzungen
einige Aktualisierungen
Version: V.01.07
Zuletzt geändert von A. Weinert am 09.05.2013
Versionsverwaltung (SVN):
https://ai2t.de/svn/indUcDoc/pub/weAut_01/weAut_01-UserMan-de01.odt
Download:
http://weinert-automation.de/files/weAut_01/weAut_01-UserMan-de01.pdf
Copyright © 2012 Albrecht Weinert All rights reserved.
Hinweis:
Tabellen, Listings, Bilder etc. sind gemeinsam durchnummeriert.
Inhalt
1. Einleitung ........................................................................................................................3
1.1 Inhalt und Zielgruppe (intended audience) ..............................................................3
1.2 Copyright......................................................................................................................3
2. Eigenschaften — Daten ................................................................................................4
2.1 Steckbrief ...................................................................................................................4
2.2 Technische Daten ......................................................................................................6
2.3 Aufbau, Leiterplatte, Gehäuse ...................................................................................7
2.4 Grundstruktur / Funktionsblöcke ...............................................................................8
2.3 Anwendung ................................................................................................................9
3. Die Komponenten ..........................................................................................................10
3.1 Bedienelemente und Anschlüsse ...........................................................................10
3.2 Stromversorgung ....................................................................................................14
3.3 Schutz, Einrichtungen, Anforderungen und Konzepte ...........................................17
3.4 Kommunikationsschnittstelle — Ethernet .............................................................19
3.5 Kommunikationsschnittstelle — V.24 / RS323 ....................................................20
Counter / timer / generator ............................................................................................22
3.6 Programmierung und Erweiterung ..........................................................................22
SPI...................................................................................................................................22
SPI als ISP ....................................................................................................................23
Rangierung / Erweiterung (Stiftleiste JP 1) ..................................................................25
Two-wire-interface / I²C ................................................................................................26
Small memory card (SMC) ...........................................................................................27
3.7 Prozessschnittstellen ..............................................................................................28
Binäre Prozesseingänge / digital input DI ..................................................................28
Analoge Prozesseingänge / analogue input AI ..........................................................28
Binäre Prozessausgänge / digital output DO .............................................................30
4. Softwareentwicklung ......................................................................................................31
4.1 Hardware-Randbedingungen .................................................................................31
Prozessor-Grundeinstellungen (Fuses) .......................................................................31
Port-Verwendung ..........................................................................................................31
4.2 Grundsätzliche Möglichkeiten .................................................................................33
4.3 Softwarewerkzeugkette .........................................................................................34
5. Die Grundsoftware weAutSys .......................................................................................36
5.1 Lizenz ....................................................................................................................36
5.2 Parallelbearbeitung und Ablaufsteuerung ..............................................................37
5.3 Kommunikation und Utilities ...................................................................................37
5.4 Dokumentation ........................................................................................................37
Anhang ...............................................................................................................................38
I
Inbetriebnahmeschritte ..............................................................................................38
A Abkürzungen ...............................................................................................................43
L Literatur .......................................................................................................................47
2
weAut_01 — Benutzerhandbuch (DE 01)
1.
Einleitung
weAut_01 ist eine µController-basierte, leistungsfähige Automatisierungsbaugruppe mit
●
16 Kanälen Prozess-Ein/Ausgabe nach Industriestandard,
●
2 Kommunikationsschnittstellen, nämlich RS232 und Ethernet,
●
und einigem Anderem mehr.
Mit dieser Baugruppe können Sie verteilte, vernetzte oder isolierte (stand alone)
Automatisierungsaufgaben flexibel lösen. Neben dem internen EEPROM kann auch eine
SMC (small memory card) für nicht flüchtige (persistente) Speicherung eingesetzt werden.
1.1
Inhalt und Zielgruppe (intended audience)
Dies Handbuch ist die Beschreibung der hardware- und softwaretechnischen Handhabung
der Baugruppe weAut_01 von weinert – automation. Es liefert die Informationen für
●
die Anbindung an die Prozesssignale, und an Kommunikationsschnittstellen
●
die Stromversorgung (Lastspannung, redundante Speisung) der Baugruppe
●
optionale Erweiterung und den Einbau in Gehäuse
●
das Schreiben der Software und die Programmierung des µControllers.
Die Software kann zum einen von Null an (from scratch) erstellt werden. Zum Anderen
kann sie auf Basis des leistungsfähigen Laufzeitsystems weAutSys geschrieben werden.
Dieses System stellt neben Hardwaretreibern und zahlreichen Hilfsfunktionen (utilities)
eine PLC-ähnliche Umgebung mit periodischen Zyklen, Timern etc. zur Verfügung. Des
Weiteren integriert sie einen bootloader, der jegliche zusätzliche Programmierhardware
entbehrlich macht.
Das erste Vorgehen "software from scratch" ist i.A. nur für extrem einfache oder sehr
komplizierte / spezielle Fälle angebracht. Die überwiegende Anzahl der Anwendungen
wird effektiver auf Basis von weAutSys erstellt.
Die Handbuch wendet sich also vorwiegend an den technisch versierten Anwender bzw.
Anwendungsentwickler beim Kunden. Einen kurzen Überblick über die Eigenschaften im
Sinne eines "executive summary" geben die Kapitel 2.1 und 2.2.
1.2
Copyright
Das vorliegende Handbuch, Schaltung und Layout der Baugruppe, wesentliche Teile der
Software weAutSys, sowie die meisten Bilder und Abbildungen sind, mit Copyright
Albrecht Weinert, urheberrechtlich geschützt.
Die betreffenden Produkte, Informationen und Dateien dürfen nur von Kunden im Rahmen
der von weinert – automation erworbenen Lizenz verwendet werden. Sie dürfen sie ohne
ausdrückliche Genehmigung nicht weitergeben.
Ein Teil der Informationen stammt erkennbar von den Herstellern der elektronischen Bausteine. Ein Teil der Laufzeitsoftware ist angepasste und verbesserte open source software.
Diese Anteile stehen unter LPGL oder BSD Lizenz. Sie sind somit, anders als z.B. GPL
auch für kommerzielle Produkte / Systeme verwendbar.
Auch diese Informationen und Werke von Dritten sind urheberrechtlich geschützt.
Respektieren Sie bitte auch deren Lizenzbedingungen und Rechte.
weAut_01 — Benutzerhandbuch (DE 01)
3
2.
Eigenschaften
2.1
Steckbrief
—
Daten
Die Automatisierungsbaugruppe weAut_01 kombiniert
◦
den Einsatzes preiswerter Standard - µController
◦
mit geringem Stromverbrauch im Sinne "green automation" und
◦
die Nutzung geeigneter open source - Ansätze sowie
◦
die Anwendungsprogrammierung in einer höheren Sprache (C)
mit industriegerechten Konzepten bei
◦
Prozessperipherieschnittstellen
◦
Stromversorgung
◦
Überwachung
◦
Schutz
Der Ansatz platziert sich bewusst zwischen
A)
PC- (Zusatz-) Platinen und
µControllerboards einerseits und
B)
kompakter industrieller Automatisierungstechnik andererseits.
Die Genügsamkeit bei Kosten, Strom- und Ressourcenverbrauch wird erreicht mit:
•
Ressourcen sparender Betriebssoftware
•
Bei Verwendung von Fremd-Software nur
a) lizenzgebührenfreie und mit
b) für kommerziellen Einsatz geeigneter Lizenz.
•
Verwendung nur von Standard-Kommunikationsschnittstellen
wie V.24 / RS232 und
Ethernet mit allen TCP-/UDP-IP-Möglichkeiten
•
Verzicht auf ein vorgegebenes, festes Aufbaukonzept
weAut_01 ist vom Hard- und Softwarekonzept her ein geschlossenes, fertiges Modul. Es
ist zwar durch Bestückungsvarianten und mit ggf. Zusatzmodulen modifizierbar, aber dies
wird aus Aufwandgründen nicht direkt unterstützt.
Erweiterungen über die gegebenen I/O-Möglichkeiten hinaus sollen vom
Ansatz her durch (Ethernet-) Vernetzung implementiert werden.
Die Baugruppe lässt sich mit einer lizenzgebührenfreien Werkzeugkette auf gut
dokumentierte Weise mit allen Möglichkeiten und Freiheiten in C programmieren.
Eine PLC-/SPS-Gewohnheiten entsprechende Basis von Zyklen, Timern und zahlreichen
Grunddiensten bietet optional das Laufzeitsystem weAutSys.
4
weAut_01 — Benutzerhandbuch (DE 01)
Die qualitativen Vorzüge im Sinne von industrieller Automatisierung / Prozesssteuerung
ergeben sich durch:
•
industriegängige Schnittstellen
•
industriegerechte Spannungsversorgung
•
professionelle Schutzkonzepte für alle Schnittstellen
•
Möglichkeit industriegerechter Aufbau- und Gehäusevarianten
vereinfacht durch einseitige Bestückung
•
hohe Qualität der Softwareerstellung bzw. der -auswahl.
Anmerkung: Diese unvollständigen Aufzählung von Qualitätsvorzügen gegenüber Produkten der
Kategorie A) bezieht sich auf den Einsatz in prozessnaher Automatisierung. Sie soll
hochwertige Produkte dieser Kategorie keineswegs abwerten. Diese sind von ihrem
Design her aber kaum für den direkten Anschluss an Prozessperipherie bzw. an
Feldgeräte, für längere Anschlussleitungen, höheren Spannungsniveaus und EMIAnforderungen konzipiert. Wer solche Produkte, insbesondere wenn sie ControllerAnschlüsse direkt an Klemmen herausführen dennoch so einsetzt, nimmt massive
Zuverlässigkeits- und oft auch Sicherheitsmängel in Kauf.
weAut_01 — Benutzerhandbuch (DE 01)
5
2.2
Technische Daten
Leiterplatte: 151 * 82 mm; zweilagig; einseitig bestückt; überwiegend SMD.
Prozessor: AVR ATMega1284
Speicher:
128K Flash (Programmspeicher), 16K RAM,
4K EEPROM (nicht flüchtig)
small memory cards (SMC, via SPI) einsetzbar (nicht flüchtig)
Ethernet:
10BaseT; 28J60; RJ45.
V.24/RS232: SubD 9pol.; +/- 12V; MAX202
Programmierung / Erweiterung:
ISP (10); 2Wire / I²C.
Prozess-I/O: 8 DI
24V / 12 V (190V max.) auch verwendbar als
8 AI
8 /10 Bit;
4V, 10V, 18V + Overflow
8 DO
Lastspannung;
max. 100mA; kurzschlussfest
Zähler / Generator (auch via SubD und MAX202)
Lastspannung / Versorgung:
24V / 12V (+10..+30V max.)
redundante Einspeisung:
24V / 12V (10..30V max.) neben der Lastspannung.
versorgt redundant / zusätzlich alles außer DO / Lastspannung;
ist geeignet auf für Pufferbatterie (9..24V)
und Wechselstromspeisung (AC, 18V~ max.) .
Erdung:
brückbare Trennung zwischen Schutzerde (PE Gehäuse, Schirme)
und Signalerde / Lastspannung „M“ (Gnd)
Schutz:
jeweils geeignete Schutzbeschaltungen
für alle Versorgungs- und I/O-Klemmen.
(Sicherung, Schutzdioden und -widerstände, robuste Treiber etc.)
Überwachung
der Lastspannung (per Komparator und Software).
zusätzlich softwareunabhängige Anzeige
"Lastspannung vorhanden" bzw.
"redundante Einspeisung vorhanden" durch jeweils zwei blaue LEDs.
6
weAut_01 — Benutzerhandbuch (DE 01)
2.3
Aufbau, Leiterplatte, Gehäuse
Die Automatisierungsbaugruppe weAut_01 hat eine zweilagige starre Leiterplatte; sie ist
einseitig und vorwiegend mit SMD-Bauteilen bestückt. Die einseitige Bestückung bietet
neben einigen Kosten-, Handhabungs- und Montagevorteilen die EMV-Vorzüge (fast)
durchgängiger Ground- bzw. Vcc-Planes, die zweilagig sonst nicht zu haben wären.
Eine Aufbautechnik wird dem Kunden bei der Baugruppe weAut_01 nicht vorgegeben.
Wahl und Einsatz eines geeigneten und ggf. notwendigen Gehäuses liegt in Anwenderverantwortung.
Bild 1 zeigt die Platinenabmessungen. Die Platine passt in ein entsprechend breites Hutschienengehäuse. Passend bei Abmessungen und Schraubbohrungen ist beispielsweise
das 157 mm breite Gehäuse "Wöhr SERIE 1570"; vgl. Bild 2 ([Wöhr 1050_deu.pdf,
1570_deu.pdf]). Diese Wöhr-Gehäuse lassen sich mit zwei Einstecklaschen auch ohne
Hutschiene an eine Wand schrauben. Taster und LEDs lassen sich mit Betätigungsachsen
und Lichtleitern (Zubehör) an die Frontplatte führen.
Alternativ zum Hutschienengehäuse lässt sich die Baugruppe auch in einem (serienmäßigen) Flachgehäuse mit Kabeldurchführungen einbauen, das dann auch die Anschlüsse
komplett verdeckt.
Weitere Gehäuse (Kunststoff, Aluminium) sind bei entsprechender Stückzahl lieferbar.
Bild 1: Platinenabmessungen
weAut_01 — Benutzerhandbuch (DE 01)
7
Bild 2: Profil und Front eines passenden Hutschienengehäuses [Quelle Wöhr]
2.4
Grundstruktur / Funktionsblöcke
Bild 3 zeigt die Grundstruktur von weAut_01.
•
Die grün gehaltenen Komponenten sind Teil des µControllers Atmega1284P.
•
Rot dargestellte Systemteile vermitteln die (Prozess-) Schnittstellen nach außen.
Alle Komponenten werden in den zugehörigen Kapiteln erläutert.
Bild 3: Blockbild
8
CPU: ATmega1284P; Ethernet: Enc28j60
weAut_01 — Benutzerhandbuch (DE 01)
Prozessor
Die eingesetzte CPU ATmega1228P hat 128 KByte Flash (Programmspeicher), 4KByte
EEPROM und 16KByte RAM (Arbeitsspeicher). Der Prozessor wird 20 MHz und 5V
betrieben. Dies ergibt seine maximal mögliche Arbeitsgeschwindigkeit.
Hinweis: Für weitgehend verminderte Anforderungen, insbesondere bezüglich der
Ethernet-Kommunikation, ist auch eine Bestückungsvariante mit der CPU
Atmega644P denkbar (Flash: 64K; EEPROM:2K, RAM 4K).
2.3
Anwendung
Die Baugruppe ist ausgestattet mit:
•
gängigen Prozessschnittstellen,
•
ein effektives Laufzeitsystem weAutSys
mit PLC ähnlichen Zyklen (threads)
und Möglichkeiten, wie u.a. Timer,
•
die Anwendungsprogrammierung in C,
•
die flexible Speisung sowie auch
•
der geringe Stromverbrauch
•
direkte Ansteuermöglichkeit von Relais und Schützen (12 / 24V)
•
direkte Ansteuerung von LED-Leuchten (12 / 24V)
•
direkte Erfassung analoger und binärer Prozesssignale
Diese Merkmale eröffnen vielfältige Anwendungsmöglichkeiten:
•
Ausgelagerte dezentrale Peripherie
•
Zähler, Energiemanagement.
•
Hausautomation (12V)
•
industrielle Automation (24V)
•
I/O-Konzentrator (und Vorverarbeiter) für beispielsweise PC-basierte
Automatisierung via Standard Ethernet Kopplung
•
Robuste Basis-Baugruppe für die µController - Ausbildung
•
Steuerung oder Automatisierung von Modellen und Laboraufbauten
Die hier nur angedeutete Breite der möglichen Anwendungsszenarien kann durch
Bestückungsvarianten und oder Varianten des Laufzeitsystems noch erweitert werden.
weAut_01 — Benutzerhandbuch (DE 01)
9
3.
Die Komponenten
3.1
Bedienelemente und Anschlüsse
Bild 4 zeigt die Lage der Bedien- und Anzeigeelemente. Absolute Maße beziehen sich auf
die linke untere Ecke der Leiterplatte.
Die SMD-LEDs können mit Lichtwellenleitern auch an weiter entfernten Frontplatten
sichtbar gemacht werden. Desgleichen lassen sich die Taster S2 „enter“ und S1 „reset“ mit
entsprechenden Kunststoffstangen (z.B. Potiachsen) von entfernteren Frontplatten aus
betätigen. Die Betätigung von „reset“ sollte mit der Frontplatte bündig abschließen bzw.
gegen versehentliches Betätigen sogar etwas versenkt sein.
links unten
rechts unten
Bild 4: Lage der B&B- und Anschlusselemente
10
weAut_01 — Benutzerhandbuch (DE 01)
Anschlussklemmen
Tabelle 5 zeigt die Anschlussklemmen die jeweils am oberen und unteren Rand der Baugruppe angeordnet sind. Es können sowohl Schraubklemmen (äußere Lötaugenreihe) als
auch Steckverbinder, auch für steckbare Schraubklemmen, (innere Lötaugenreihe)
bestückt werden. Das Rastermaß für die Klemmen ist 5 mm.
X9
X10 X11 X12 X13 X14 X15
DO7
DO6
DO5
Gnd Gnd
DO4
Gnd Gnd DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7
AI0 AI1 AI2 AI3 AI4 AI5 AI6 AI7
rangierbar JP2
X8
4K64-Gnd
X7
DO3
Gnd
X6
DO2
PE
X5
DO1
Gnd
X4
DO0
PE
X3
Lastspannung redund. Einspeis.
X2
L+ via Dio & R
X1
Lastspannung
unten
oben
X1 und X16 sind PE (Schutzerde), welche vom gemeinsamen Bezugspotential Gnd getrennt ist. Mit PE sind alle 5 Befestigungsbohrungen und die Gehäuse von Ethernet- und
der V.24-Buchse sowie des SMCard-Halters verbunden. Ein Widerstand zwischen PE und
Gnd (30K, 1/4W) verhindert ein „Weglaufen“ im Falle einer isolierten Versorgung.
X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30
Tabelle 5: Anschlussklemmen oben (neben SubD) und unten (neben RJ45 und SMC)
Die Lastspannung (X18 und X19) versorgt die digitalen Ausgänge sowie die übrige Elektronik, während die redundante Einspeisung (X4) ggf. nur letztere speist. Die höhere
Spannung beider Einspeisungen steht über eine Diode und einen Widerstand 2K5 an X3
zur Verfügung, z.B. als kurzschlussfeste Versorgung der Eingänge DI0 .. DI7.
1
PE
X15
2
3
Gnd
Gnd
X30 bietet einen Widerstand (4K64, 1%, max. 30V) gegen Gnd, der z.B. als Last für einen
Ausgang (DOx) oder einen Kontakt dienen kann.
4
Bild 6: JP2 neben X15 zur beliebigen Verwendung von X15 oder als Gnd oder PE
weAut_01 — Benutzerhandbuch (DE 01)
11
Anzeigeelemente
Zwei LEDs gn und ge im RJ45 Stecker (Ethernet)
auf parametrierbare Weise angesteuert durch Ethernet-Controller
(ENC28J60; z.B. gn: Link status ge: transmit), d.h. also zur flexiblen
Anzeige von Schnittstellenzuständen oder auch frei verwendbar
Zwei LEDs bl:
für „Lastspannung da“ (> ca.10V)
Zwei LEDs bl:
je für „redundante Einspeisung vorhanden“(> ca. 10V).
Acht LEDs gn:
für die binären / digitalen Ausgänge
Eine LED
für Fehler bei mindestens einem digitalen Ausgang
(Überstrom oder thermische Abschaltung)
rt:
Eine LED gn:
für Freigabe (enable) der digitalen Ausgänge
Acht LEDs gn:
für die digitalen Eingänge.
(hierfür gedacht, aber prinzipiell frei verwendbar.)
Eine LED rt:
freie Verwendung (PB4) durch die Software (Lastspannung weg)
Eine LED gn:
freie Verwendung (PB2) durch die Software (Run)
Bedienelemente
eine Reset-Taste
eine Taste mit freier Verwendungsmöglichkeit (PB0, Arbeitsname "enter")
Element
Funktion
Hinweis / Anmerkung
S1 „enter“
Port B0 auf Lo
von der Software auszuwerten
S2 „reset“
Reset; unmaskierbar
wirkt direkt auf den µController
LED 0
gn DO 0 Hi
LED 1..7 gn DO 2..7 Hi
direkt mit der Ansteuerung des betreffenden
DO-Ausgangstreibers gekoppelt
LED 8
rt
DO /fault (=PC4)
vom DO-Treiber-IC (Lo bei Überlast)
LED 9
rt
DO disable (= PC5 )
wenn Lo = LED An sind DO0..7 aus
LED 10 gn DI 0 (für Zustand DI)
LED 11..17
DI 1 ..7 gn dto.
LED 18
rt
Port B 4
LED 19
gn Port B 2
LED 20
bl
LED 21
LED 22
LED 23
von der SW frei ansteuerbar; der Zusammenhang mit DI ist gewollt, nicht erzwungen.
Lastsp. weg + freie Verwendung durch die SW (Test-LED)
“Run“
+ freie Verwendung durch die SW (Test-LED)
leuchtet ab etwa 12V mit konstanter Helligkeit
Lastspannung
vorhanden
bl
wie LED 20
bl redundante Einspeisung
bl vorhanden
leuchtet ab etwa 12V mit konstanter Helligkeit
wie LED 22
Tabelle 7: Anzeige- und Bedienelemente
12
weAut_01 — Benutzerhandbuch (DE 01)
Tabelle 7 zeigt die Funktionen der Anzeige-LEDs und der Bedientasten. Der dort dargestellte Zusammenhang zwischen dem Zustand der auch als Analogeingabe verwendbaren
digitalen Eingänge DI 0 .. DI 7 und den grünen LED 10 .. LED 17 ist so gewollt und von
der Anordnung der Klemmen und der LEDs (vgl. Bild 4) die sinnvolle Verwendungsmöglichkeit dieser LEDs. Dieser Zusammenhang wird allerdings durch die Software, die die
Eingänge bearbeitet und ggf. filtert, hergestellt. Insofern ist auch eine beliebige andere
Verwendung der LED 10 .. LED 17 möglich.
Hinweis:
Bei als AE verwendeten Eingängen wäre ein sinnvoller Zusammenhang zwischen
Eingangsspannung und Anzeige "grün" herzustellen. Dies ist aber nur anwendungsspezifisch darstellbar.
Im Gegensatz dazu ist der Zusammenhang der grünen LED 0 .. LED 7 und der Ansteuerung der digitalen Ausgänge DO 0 .. DO 7 per Hardware fest vorgegeben. Diskrepanzen
zwischen LED 0..7 und DO 0..7 in dem Sinne, dass eine LED leuchtet und der zugehörige
Ausgang Lo ist, ergeben sich nur durch die in Tabelle 8 dargestellten Umstände.
LED 9
LED8 LED 20/21
DOdisab DOfault LastspanPC5
PC4
nung. da
LED 18
Lastsp.
weg PB4
Zustand DO 0.. DO 7 verglichen
mit LED-Anzeigen LED 0 .. LED 7
(X = don't care
x = 0..7)
Aus
Aus
An
Aus
Übereinstimmung: LEDx an = DOx Hi/on
An
X
X
X
Alle DOx Lo/off (unabhängig von LEDx)
X
X
Aus *1)
An*1)
Aus
An *2)
X
X
Kein DOx mit brauchbarer
Ausgangsspannung
Mindestens ein DOx ist Lo trotz LEDx an
Tabelle 8: Anzeige der LED 0 .. LED 7 und Zustand der Ausgänge DO 0 .. DO 7
Hinweis zu *1):
*2)
Diesen Zustand mangelnder Lastspannung (<10V bzw. <19V) sollte
die Software mit DO disable eindeutig machen.
Der Ausgangstreiber schaltet bei Überlast / Übertemperatur u.U. alle Kanäle ab.
Das Rücksetzen geschieht per SW mit kurzzeitigem DO disable.
Die kurz gefasste Interpretation von Tabelle 8 ist:
Wenn keine der drei roten LEDs 8, 9 und 18 leuchten, sind die digitalen Ausgänge OK.
Ihr Ausgangszustand entspricht der jeweiligen Anzeige der LED0..LED7.
weAut_01 — Benutzerhandbuch (DE 01)
13
3.2
Stromversorgung
Die Gleichspannungsversorgung der digitalen Prozess-Ausgabe und der Sensoren der
Prozesseingabe wird üblicherweise auch „Lastspannung“ (load voltage) genannt.
●
In der industriellen Automatisierungstechnik ist diese üblicherweise 24V
mit einem Toleranzbereich von etwa 19 .. 27V.
●
Bei der Gebäudetechnik (Steuerung, Schutzsysteme, Alarmanlagen) und in der
(Nicht-Nutz-) Fahrzeugtechnik ist die Lastspannung überwiegend 12V (10..14V).
weAut_01 überdeckt beide Bereiche.
Lastspannung
nominell 12V oder 24V
Stromaufnahme ohne Prozesslast :
200, 90 .. 40 mA (bei Anlauf, 12V .. 24V);
siehe Hinweise 1 und 2 unten.
Stromaufnahme durch Prozesslast::
0..900mA
je nach Ansteuerung und Belastung der digitalen Ausgänge
Erlaubter Bereich:
10 .. 28V
Absolute max. rating:
-0,5V... +30V; kurzzeitig (0,1ms) 35V
Redundante Einspeisung: nominell 12V oder 24V
Stromaufnahme:
200, 90 .. 40 mA (bei Anlauf, 12 .. 24V)
Hinweis 2: Diese Stromaufnahme trägt entweder die Lastspannung oder die
redundante Einspeisung, letztere falls sie etwas (500mV) höher ist als die
Lastspannung.
Erlaubter Bereich: 10 .. 29V (120 ...60 mA,; vgl. Bild 9)
Absolute max. rating:
-50V...+30V; kurzzeitig (0,1ms) 35V
(Wechselspannungsspeisung möglich, s.u.)
Die redundante Einspeisung kann unter anderem auch
14
●
mit der Lastspannung verbunden werden, und sie sollte es, wenn keine weitere
Versorgung zur Verfügung steht, da dann alle Schutz- und Überspannungsdioden
im Einsatz sind.
●
mit externen Pufferkondensatoren verbunden werden, die über Dioden von der
Lastspannungsversorgung geladen werden. Damit lassen sich die Pufferzeiten für
den Prozessor, Eingaben etc. erhöhen.
●
mit einem (gepufferten) Akku oder einer Batterie 9,6 .. 24V verbunden werden
●
an eine Wechselspannung 8..12Veff angeschlossen werden (Hutschienentrafo z.B.)
weAut_01 — Benutzerhandbuch (DE 01)
Überwachung der Einspeisungen:
●
zwei blaue LEDs für Lastspannung; gut sichtbare Helligkeit ab etwa 11V
●
zwei blaue LEDs für die redundante Einspeisung;
gut sichtbare Helligkeit ab etwa 11V; vgl. Bild 9.
●
Komparator (µController - Port - Funktion) mit Schwelle bei etwa 10,5V *1)
nur für die Lastspannung,
vorgesehene Anzeige des Ausfalls per Software über die rote LED18.
Die Anzeigen der (2*2) blauen LEDs sind völlig unabhängig vom µController und dessen
Software und funktionieren auch während Reset oder ISP.
Die Komparator-Funktion ist hingegen per Software für den PB3 zu erbringen. Die mit
einer Diode entkoppelte Lastspannung wird geteilt (37,4K \ 4K64) mit der internen Bandgap- Referenz (1,1V) verglichen. Die Schwellen von 10,5V bzw. 19,5V *1) stellen die untere
Toleranzgrenze der Lastversorgung in einer 12V- bzw. einer 24V-Umgebung dar.
I / mA (rot)
Helligk./ %. (blau)
U/V
>5V: Wandlereinsatz,
>10V: Kontroll-LED-Anzeige >29V: Einsatz Schutzschaltung
Bild 9: Stromaufnahme und Kontrollanzeige der Einspeisung
LV-Überwachung für 24V-Betrieb *1)
Durch das Einlöten einer Drahtbrücke als Bestückungsvariante
wird (mit Teiler dann 37K4 \ 2K32) die Komparatorschwelle von
10,5V auf 19,5V geändert.
Siehe Bild 10 unten und die Abbildung rechts.
weAut_01 — Benutzerhandbuch (DE 01)
15
Bild 10:
Lage der Brücke für Lastspannungskomparator im 24V-Betrieb
(zwischen Prozessor und großem Elko C3; blaue Klammer)
Prozessorversorgung
Sie erfolgt (im gleichen Spannungsbereich 9..28V)
●
aus der Lastspannung
oder
●
aus der „redundanten Einspeisung“
Hinweis 1: Ist nur die redundante Einspeisung vorhanden (aber nicht die Lastspannung), so fallen
lediglich die digitalen Prozessausgänge (DO, Leistungstreiber, H-Schalter) aus.
Eingänge, RS-232, Ethernet-Anschluss, small memory card (SMC) etc. bleiben betriebsbereit. Auf diese Weise ist auch "Weiterdenken" trotz Lastspannungsabwurfs
(z.B. Notbetrieb, Alarmmeldungen) darstellbar.
Für die interne Prozessorversorgung (mit 5V) wird ein Spannungswandler (9..35V auf 5V)
eingesetzt. Diese aufwändige Lösung bietet gegenüber einem einfachen Längsregler —
insbesondere bei dem gegebenen weiten (Last-) Versorgungsspannungsbereich — wesentlich geringere Verluste und bessere Pufferzeiten.
Pufferung der Prozessorversorgung nach Ausfall der Einspeisung:
●
150ms bei vorher 24V
●
20 ms bei vorher 12V
Überwachung der Prozessorversorgung
Es gibt keine direkte Überwachung der (5V-) Prozessorversorgung. Sie ist in weiten Bereichen der überwachten Lastspannung gewährleistet. Die sogenannte Brown-out- Funktion
des Prozessors kann allerdings einen gezielten Reset anstelle eines „unkontrollierten Sterbens“ der Prozessorfunktion herbeiführen.
16
weAut_01 — Benutzerhandbuch (DE 01)
3.3
Schutz, Einrichtungen, Anforderungen und Konzepte
Bei Spannungsbereichen, Überlastfestigkeit und -schutz entspricht weAut_01 von der
Konzeption her industrieller Automatisierungstechnik. weAut_01 führt keine µControllerPins an Anschlussklemmen bzw. Steckverbindungen — im Gegensatz zu ungeschützten
Mikroprozessor- und PC-Baugruppen.
Hinweis / Warnung: Dies gilt nicht für „innen liegende“ Pfostenverbinder und die (ISP-) Programmierschnittstelle, die nur unter Laborbedingungen genutzt oder verändert werden.
Trotz ihrer Robustheit werden das Überschreiten der Grenzwerte und andere Handhabungsfehler die Baugruppe beschädigen.
Hinweise und Werte finden sich in den jeweiligen Kapiteln.
Hier werden jeweiligen Konzepte und Mittel zum Schutz stichwortartig zusammengefasst.
Schutz der Stromversorgungen (LV und red. Einsp.)
Einlötsicherung, Verpolschutzdiode, Transzorp-Diode (Suppessor);
Vorwärtsdioden vor dem Spannungswandler zur Prozessor-Versorgung (mit Vcc, 5V).
Schutz der Prozesseingänge digital und analog
Vorwiderstände, Zenerdiode, Filter-C
Maximale Eingangsspannung:
+/- 60V
(bzw. geltende Kleinspannungsgrenze)
Dauerfestigkeit:
+/- 240V bzw. 240Veff ~ (nicht gestattet, Vorschrift!)
Schutz binärer Prozessausgänge
Treiber-IC + Schutz der Lastspannung (LV, s.o.)
Der Treiber-IC erlaubt (Last-) Ausgangsspannungen bis 30V und Lasten bis (acht mal)
100mA. Die acht Ausgänge des Treiber-ICs ([10]) sind gegen Überlastung und Kurzschluss geschützt; sie sind direkt mit den DO-Ausgangsklemmen verbunden.
Hinweis / Warnung: Das Treiber-IC verträgt keine (Speise-) Spannung über 35V und keinerlei
Einspeisung in die (acht) Ausgänge. Desgleichen verträgt es zwar induktive Lasten,
aber nicht deren externe, also nicht selbst kontrollierte, Ab- und Zuschaltung.
Ein Verletzen dieser Grenzen und Regeln („eine passive Last pro Ausgang, fest
angeschlossen“) kann den Treiber-IC und damit damit die Baugruppe.zerstören.
Weitere Hinweise zu den Grenzwerten des DO-Treibers siehe bei [10].
Schutz der RS232 / V.24 Signale
Der eingesetzte Baustein MAX202CWE bietet 15kV-ESD-protection an den Ein- und
Ausgängen (9-pol. SubD). Dies betrifft die vier Signale TX, RX, RTS und CTS am SubDStecker; siehe auch das Datenblatt des eingesetzten (MAX-) Bausteins.
Dieser Schutz gilt auch für die auch vorgesehene Verwendung dieser Ein und Ausgänge
als „freie“ +/- 6..12V Binärein- und Ausgänge bzw. als Timer/Generator/Counter.
weAut_01 — Benutzerhandbuch (DE 01)
17
Schutz der Ethernet-Schnittstelle
Galvanische Trennung in der RJ45-Steckverbindung; siehe Bild 11.
PoE (power over Ethernet) ist an dieser Schnittstelle nicht erlaubt.
Bild 11: RJ-45-Buchse für den Ethernet-Anschluss mit Trafos, Filtern und LEDs
EMV, Erdung
Die großzügig bemessenen Versorgungsflächen (ground planes) bieten einigen Schutz
gegen Ein- und Abstrahlung. Empfohlen wird der Einbau in ein leitfähiges Kunststoff- oder
ein mit PE verbundenes Metallgehäuse.
PE (Gehäuse- / Schutzerde) und Gnd (Erde, 0V, Bezugspotential) sind getrennt. Die
Spannungsdifferenz soll 30V nicht überschreiten; vor "statischem" auseinander Driften
schützt ein Widerstand.
Die Trennung kann mit einem "Jumper" JP2-1=3 aufgehoben werden.
Hinweis:
18
Die Nutzung der seriellen Schnittstelle kann die genannte Trennung
von PE und Gnd aufheben, falls diese in der Gegenstelle gebrückt sind.
Es gibt auch (billige) "V.24-Kabel", die dies schon ohne Anschluss an
eine Gegenstelle normwidrig tun.
weAut_01 — Benutzerhandbuch (DE 01)
3.4
Kommunikationsschnittstelle — Ethernet
Es gibt eine Ethernet-Schnittstelle ([11], [12]) mit
●
10Base-T (10 Mb/s; 100ns bit time)
●
Automatic Polarity Detection and Correction
●
Full and Half-Duplex
●
Zwei Status-LEDs in der RJ45-Buchse
Der Controller ist ein ENC28J60 ([11]). Damit sind auf der Baugruppe praktisch alle
transport und application layer Protokolle und Anwendungen implementierbar.
Die durch den Controller 28J60 bedingten Grenzen sind
●
10Base-T (kein 100 / 1G)
●
kein Auto cross over
Im Lichte des Mikrocontrollers betrachtet sind dies keine Einschränkungen. Bei Anschluss
über einen halbwegs intelligenten switch/router wirken sie sich auch nicht auf das übrige
(ggf. schnellere) LAN aus.
Die Ethernet-Schnittstelle ist (naturgemäß) über Transformatoren potentialgetrennt. Die
eingesetzte RJ-45-Buchse hat Gleichtaktdrosseln zur Störunterdrückung; siehe Bild 11.
Die (kabelseitigen) Sekundärwicklungen sowie die unbenutzten Stiftpaare sind über Abschlusswiderstände (75 Ohm) und einen Kondensator 1nF/2kV mit PE verbunden. Dieser
untereinander verbundene (Gleichtakt-) 75-Ohm.Abschluss aller Adernpaare verbietet
nennenswerte Spannungen zwischen den Adern.
Hinweis: Die Baugruppe weAut_01 darf demgemäß nicht an ein Netzsegment mit
„power over Ethernet“ (PoE) angeschlossen werden.
MAC-Adresse
Diese ist eine für ein Gerät normalerweise weltweit eindeutige 48-Bit-Adresse, vom Typ
IEEE- MAC-48 bzw. nun EUI-48. Die letzten (least significant) 24 Bit sind eine vom Hersteller eindeutig vergebene Schnittstellennummer. Die ersten 24 Bit bezeichnen als OUI
die Herstellerfirma. OUIs müssen vom IEEE-RA gekauft werden.
Es gibt mehrere Möglichkeiten damit umzugehen:
1. OUI kaufen und singuläre EUIs vergeben.
Diese Dienstleistung wird von weinert – automation nicht angeboten.
2. Eindeutiges „locally administered“ Schema verwenden und Gerät zuordnen.
Der zweite Ansatz, der die direkte Interoperabilität der Geräte an einem (Sub-) Netz
gewährleistet, ist für (Automatisierungs-) Module in einem lokalen Netz angemessen bzw.
hierfür vollkommen ausreichend. Diese beiden Möglichkeiten werden durch das Bit 1 des
sechsten (most significant) Byte der MAC-Adresse unterschieden:
0=
globally unique (OUI + serial number)24 Bit
1=
locally administered.
weAutSys erlaubt die Konfiguration der MAC-Adresse und anderer TCP/IP-Einstellungen
über die Bedienschnittstelle(n) und deren persistente Hinterlegung im EEPROM (per Bedienung oder via ISP).
weAut_01 — Benutzerhandbuch (DE 01)
19
3.5
Kommunikationsschnittstelle — V.24 / RS323
Für die Kommunikation via V.24 und optional auch als zusätzliche E/A, insbesondere für
Timer / Generator / Counter dient an der Baugruppe eine 9polige SubD-Buchse (Bild 12).
Bild 12:
9 polige SubD-Buchse
(female),
Blick von außen
Die Buchse (female) ist üblicherweise am DCE (data circuit-terminating equipment,
Modem) während der Stecker (male) zum DTE (data terminal equipment, Rechner) gehört.
Die Verbindung ist 1:1; die genormten Signalbezeichnungen (Tabelle 13) beziehen sich
auf das DTE und damit nicht auf die (DCE-) Sicht der Baugruppe.
Die Pegel sind +/- 3..15 V (log 0 / 1); Pegelwandlung (und Schutz) für vier Signale macht
ein entsprechendes IC (MAX202).
Pin
Sicht DCE /
DTE weAut
Signal
Handhabung
1
CD (Hi:Träger da)
Empf
Send an Lötauge (0,6mm) abgreifbar *1)
2
RxD
Empf
Send UART-TX via MAX
3
TxD
Send
Empf UART-RX via MAX; JP1-Pin5 *2)
4
DTR (Hi: DTE ist bereit)
Send
Empf JP1-Pin1 via R 3K3 *3)
5
Gnd
6
DSR (Hi: DCE ist bereit)
Empf
Send an Lötauge (0,6mm) abgreifbar *1)
7
RTS (Hi: DTE will send.)
Send
Empf via MAX an JP1-Pin7 (-PB1/Count.)*4)
8
CTS (Hi: DCE kann empf.) Empf
Send via MAX von JP1-Pin 9 (-Timer/PD6-) *5)
9
RI (Hi: Call)
Send an Lötauge (0,6mm) abgreifbar *1)
Signal ground
Empf
Tabelle 13: SubD-Steckverbindung für RS232 (V.24) – Belegung
Anm. *1): Freie Verwendung, i.A. aber unbelegt / unbenutzt.
Anm. *2): Für Ponyserver-ISP "reset=!txd" (siehe unten, Bilder 14 und 15, Seite 23)
Anm. *3): Für Ponyserver-ISP "mosi=dtr"
20
(siehe Bilder 14 und 15, Seite 23)
weAut_01 — Benutzerhandbuch (DE 01)
Anm. *4): Brücken von JP1-Pin7=Pin8 (Bild 14) legt RTS (7) an Port B1 (Eingang);
Verwendung ist
a) Abfrage des RTS für V.24-Kommunikation (Flusskontrolle) oder
b) SubD Pin 7 als Zählereingang (Timer/Counter 1 External Counter Input)
Anm. *5): Brücken von JP1-Pin9=Pin10 (Bild 14) legt CTS (8) an Port D6 (Ausgang);
Verwendung ist
a) CTS-Flusskontrolle des V.24-Empfangs
(u.U. sinnvoll wegen begrenzter Puffergröße)
b) SubD Pin 8 als Generatorausgang
(PD6 - Timer/Counter2 Output Compare Match B Output)
Anm. *3): Zahlreiche Verwendungsmöglichkeiten; siehe unten.
Pegelanpassung (V.24 <-> TTL) und Schutz (ESD) macht für die vier Signale an den Pins
2, 3, 7 und 8 der SubD-Buchse ein Maxim-Baustein (MAX 202).
Das Laufzeitsystem weAutSys verwendet die V.24-Schnittstelle in Grundeinstellung als
Standardein- und -ausgabe für Befehle und Log-Ausgaben mit:
38400 baud, 8 Databits, 1 Stopbit, no parity, no flow control.
Über die (standardmäßig gesteckten) Brücken JP1-7=8 und JP1-9=10 stehen RTS und
CTS an den Ports PB1 bzw. PD6 zur Verfügung. Optional kann also CTS und/oder RTS
flow control genutzt werden (in weAutSys jeweils unterstützt).
Alternativ können statt CTS oder RTS auch beliebige Port-Funktionen (siehe auch
folgendes) genutzt werden. Das gilt grundsätzlich auch für RxD und TxD.
Bild 14: Anschluss V.24, timer counter generator (PD6, PB1) und Rangierung JP1
Die Belegung der Rangierstiftleiste JP1 passt zur ISP/SPI-Schnittstelle; vgl. die Bilder 14
und 15 auf Seite 23 und siehe unten.
weAut_01 — Benutzerhandbuch (DE 01)
21
Counter / timer / generator
Die an die Siftleiste JP1 geführten Ports PD5 (JP1-Pin6), PB1 (JP1-Pin8) und PD6 (JP1Pin10) können von da *) auch als freie Ports für interne Erweiterungen genutzt werden.
Hinweis *):
Bei einer solchen Verwendung ans freie Ports sind diese (elektrisch) ungeschützt.
Insofern dürfen diese dann lediglich für interne Erweiterungen verwendet werden.
Sie sind nicht als Prozess-I/O herauszuführen.
Bei Verwendung von PB1 als Eingang und PD6 als Ausgang können diese über den
MAX202-Baustein invertiert mit V.24-Pegeln ESD-geschützt auf die SubD-Buchse geführt
werden. Dies geschieht mit zwei Steckbrücken auf der Stiftleiste JP1; siehe dazu Tabelle
13 mit Erläuterungen sowie Bild 14).
Eine vorgesehene Verwendung dieser Ports ist
●
PB1 als Zähler. (8 bit) = Timer1 **) mit optional Clock - Eingang
●
PD6 als Generator / Zeitgeber (16 bit) = Timer2 mit optional compare/match BAusgang
●
PD5 (evtl.) Schalter des SMC-Schachts (= JP1-3; Lo : small memory card inserted)
Hinweis **): Timer 0 ( 8 bit) dient bei weAutSys intern fest vergeben als Systemzeitgeber
(tick interrupt). Die Timer 1 und 2 stehen der Anwendungssoftware zur freien
Verfügung
3.6
SPI
Programmierung und Erweiterung
Der ATmega1284 (644 etc.) bietet zwei SPI-Schnittstellen:
●
SP1 mit PB5..7=MOSI,MISO,SCK (standard SPI /ISP) und
●
SPI2 mit PD2..4=MISO,SKC,MOSI (UART as SPI / master only)
Beide werden genutzt:
SPI2:
●
für den Ethernet controller
●
für die SMC (Steckplatz / slot für kleine Speicherkarten)
SPI1:
●
als ISP
●
für die digitalen Ausgänge (DO)
●
für die LEDs der (digitalen) Eingänge (DI-LEDs) sowie
●
für mögliche Erweiterungen.
SPI1 wird für die vorhandene Peripherie (DO, DI-LEDs) mit maximaler Geschwindigkeit
(10 MHz = ½ Prozessortakt) betrieben. Bei SPI1 werden MISO, MOSI und SCK widerstandsentkoppelt für eingebaute Peripherie verwendet, um mit der ISP-Funktion nicht zu
kollidieren.
22
weAut_01 — Benutzerhandbuch (DE 01)
SPI als ISP
Hinweis:
Gnd
MISO
Gnd
SCk
Gnd
/Reset
Gnd*)
Gnd
1
MOSI
2
VCC
Für die Verwendung als SPI-Erweiterung vor allem aber als ISP-Schnittstelle wird SPI1 in
der übliche 10-Pin-Variante (statt 6-Pin) auf einen Wannenstecker geführt, siehe Bild 15
auf Seite 23. I.A. wird der 10-polige Wannenstecker „ISP“ nur bei Softwareupdates genutzt
und dann über ein Programmiergerät (wie z.B. smartUSB) oder über die serielle Schnittstelle (via Pfostenstecker JP1; s.u.) mit dem Entwicklungsrechner verbunden.
10
9
Bild 15: Belegung des ISP-SchnittstellenSteckers (10pol. Wannenstecker)
Hinweis: Pin 3 (Gnd) ist so üblich, obgleich
von Atmel als NC (unverbunden) definiert.
Der ISP-Wannensteckers kann als SPI für Erweiterungsmodule genutzt werden. Dies
funktioniert zusammen mit entsprechender alternativer Verwendung von 2wire (s.u.)
oder der Ports PB1, PD5 und PD6 (s.o.).
Warnung: Die vorgegebene (Standard-) Belegung der 10 Stifte für 6 Signale (Bild 15) ist schlecht
gewählt. Ein Voreilen von Gnd ist kaum machbar, ein Nacheilen sogar wahrscheinlich.
Ziehen und Stecken unter Spannung ist also eher kritisch zu sehen.
Die hier nicht verwendete 6-polige (Bild 17) Belegung wäre diesbezüglich noch
kritischer.
Via Programmiergerät,
hier mySmartUSB als Beispiel,
zum Entwicklungsrechner
Bild 16:
ISP an Programmiergerät
Für die Verwendung des Programmiergeräts mySmartUSB muss für Windows der
Treiber von Silicon Labs (CP210x USB to UART) installiert sein. Mit dem Befehl
2
VCC
MOSI
Gnd
6
1
MISO
SCK
/Reset
avrdude -p atmega1284p -P com7 -c avr911 -n -v
als Test werden die Einstellungen des µControllers ausgelesen aber nichts programmiert.
Statt com7 im Beispiel ist der jeweils verwendete COM-Port einzusetzen.
5
Bild 17: Alternative 6polige Belegung des
ISP-Schnittstellen-Steckers; so z.B. beim
Programmierer mySmartUSB light.
Hinweis:
weAut_01 verwendet diese
Belegung nicht.
weAut_01 — Benutzerhandbuch (DE 01)
23
Bei Nutzung des kompakteren (und schnelleren) Programmiergeräts mySmartUSB light
benötigt man einen Adapter von dessen 6poliger ISP-Belegung (Bild 17) zur hier verwendeten 10poligen (Bild 15).
Der entsprechende Testbefehl mit mySmartUSB light lautet dann sinngemäß
avrdude -p atmega1284p -c avrisp2 -P com4 -n -v
ISP (SPI) via direktem seriellem Anschluss
Alternativ kann die ISP-Schnittstelle auch ohne zwischengeschaltetes Programmiergerät
mit der seriellen Schnittstelle des Entwicklungsrechners verbunden werden.
Solche Verfahren laufen unter Begriffen wie "[serial] bit banging" oder "Pony".
# serial ponyprog (weAut_01 direkt)
programmer
id
= "ponyWeAut";
desc = "weAut serial, reset=!txd sck=!rts mosi=dtr miso=!cts";
type = serbb;
reset = ~3;
sck
= ~7;
mosi = 4;
miso = ~8;
Listing 18: Konfiguration für "Pony direkt"
(in C:\Programme\WinAVR\bin\avrdude.conf bzw. /etc/avrdude.conf)
Diese Programmiermöglichkeit kann in der Konfiguration gemäß Listing 18 ohne zusätzliche Hardware genutzt werden, wenn jeweils die Pins 1, 5, 7 und 9 vom Wannenstecker
"ISP" und der Rangierstiftleiste JP1 verbunden werden; vgl. die Bilder 14, 15 und 20. Das
1 zu 1-Verbinden aller 10 Pins (mit dem üblichen Programmierflachkabel) ist einfachkeitshalber ebenso möglich; siehe Bild 19.
9-pol. SubD: V.24 zum Entwicklungsrechner
10-pol. Flachband 1 zu 1 – Verbindung
ISP = JP1
Bild 19:
ISP an V.24
Pony programming
ohne Zusatzhardware
24
weAut_01 — Benutzerhandbuch (DE 01)
Der Vorzug der direkten Verbindung ist in der Einsparung eines zusätzlichen Programmiergeräts. Der häufig behauptete Geschwindigkeitsnachteil war hingegen, im
Vergleich mit dem smartUSB, entweder
bei manchen Systemen und USB-zu-seriell-Adaptern nicht zu beobachten
— eher das Gegenteil (Windows Server 2003, Linux Mint 12 mit /dev/ttyS0)
•
oder aber
so gravierend, dass alles außer fuses Lesen und Setzen praktisch unmöglich
war (Windows 7 mit USB-Adapter).
•
Hinweis:
smartUSB light ist nicht nur schneller als smartUSB, es kann auch fuses
programmieren. Er hat aber die 6polige Schnittstelle und wird leider ohne
Adapter auf 10polig geliefert
Seriell zum Entwicklungsrechner
"Bitbang" oder "Pony" programming
ohne zusätzliches Programmiergerät
Einreihiges. Flachband 1 zu 1 - Verbindung ISP = JP1, siehe auch Bild 21
Es genügt, die unteren 5 Pins von ISP
und Pfostenverbinder JP1 zu verbinden
Bild 20:
ISP an V.24 (einreihig)
PD6
/CTS
PB1
/RTS
PD5
/RX
Gnd*)
/SMCin
1
DTR
2
VCC
Rangierung / Erweiterung (Stiftleiste JP 1)
10
Bild 21: Belegung der Stiftleiste JP1
(oberhalb 10pol. Wannenstecker)
9
Hinweis: Untere Reihe 1 zu 1 mit unterer
Reihe des ISP-Wannenstecker für serielle
ISP verbinden; vgl Bilder 14 und 20.
"DTR" (Pin1 ) geht über Schutzwiderstand (3K3) direkt an die SubD- (V.24) Buchse und ist
nur für "ISP via serielle Schnittstelle" gedacht. "/RTX", "/RTS" und "/CTS" sind hingegen
(via MAX Baustein) invertiert und pegelgewandelt.
ISP über diese serielle Schnittstelle mit dem bootloader von weAutSys
Am wenigstenaufwändig ist die Änderung der System oder Anwendungssoftware mit dem
in weAutSys integriertem bootloader. Nur dessen Laden/Ändern selbst erfordert einen der
vorher beschriebenen Wege.
weAut_01 — Benutzerhandbuch (DE 01)
25
Two-wire-interface / I²C
Das (komplexe) 2wire- oder I2C-Protokoll wird von über 1000 ICs und vielen Zusatzmodulen, wie LCD-Displays, verstanden. Der I2C ist in üblicher Belegung an der Stiftleiste JP3
(Bild 22) verfügbar. Da dieser Anschluss die (5V-) Versorgung mitführt, kann er auch
gleich eine Erweiterungsbaugruppe speisen.
SDA______________JP3_Pin1____PC1
VCC______________JP3_Pin2
Gnd______________JP3_Pin3
Bild 22: Belegung der 2wire-Stiftleiste
SCL______________JP3_Pin4____PC0
([6])
Alternative Verwendung
Mit JP3 lassen sich auch PC0 und PC1 als Ports auf eine Erweiterungsbaugruppe zur dortigen beliebigen Verwendung führen. Beispielsweise lassen sich DCF77-Empängermodule
mit einen Steuereingang (meist enable) und einem Datenausgang hier anschließen.
Wird auch die ISP-Schnittstelle als SPI (Bild 22) auf diese Erweiterungsbaugruppe geführt,
können dort auch zwei weitere SPI-Module (mit PC0 und PC1 als CS) betrieben werden.
Wird diese Schnittstelle weder als SPI noch für solche Erweiterungen verwendet, können
JP3_Pin1 (PC1) als Test-Pin_1 und JP3_Pin4 (PC0) als Test-Pin_2 für die Entwicklung
bzw. Beobachtung der Software konfiguriert und Verwendet werden. Das ist eine Art
"messtechnisches Äquivalent" zu den Test-LEDs (rt und gn) und wird in weAutSys für die
Softwareinstrumentierung so unterstützt.
Kein JTAG
Die Verwendung der JTAG-Schnittstelle (des Prozessors) ist nicht vorgesehen. Hierfür
würden die Ports PC2 bis PC5 benötigt; sie sind anderweitig fest belegt; vergleiche
Tabelle 26 ab Seite 32. Das Mengengerüst erlaubt es auch nicht, auf vier Ports zu
verzichten.
Hinweis:
26
Für das Funktionieren der Baugruppe ist es unabdingbar, die "JTAG-fuse"
entsprechend zu setzen (Fuse High, Bit 6, JTAGEN auf 1 = disable).
weAut_01 — Benutzerhandbuch (DE 01)
Small memory card (SMC)
weAut_01 hat einen Steckplatz für SMC (kleine Speicherkarten) am unteren rechten Rand,
welche ausschließlich die SPI-Schnittstelle nutzt (SPI2 und PC6 als \CS).
Write protect- Schalter (Schieber) und andere Mechanismen sind bei passenden SMCs
nicht vorgesehen.
Allerdings hat der eingesetzte SMC-connector (DM3AT) einen Schalter, der bei eingesetzter Karte JP1-Pin 3 (über 50 Ohm) an Gnd legt, also ein "card detection switch. Dieser
kann bei Bedarf von dort auf einen freien Port, vorzugsweise PD5, gebrückt werden; vgl.
dazu das Bild 14 auf Seite 21 sowie Bild 21 auf Seite 25.
Das Abfragen dieses Ports kann den Aufwand des probehalber Ansteuerns einer Speicherkarte nur zur Feststellung, dass gar keine gesteckt ist, ersparen. Bei Verwendung von
SMCs sollte die Brücke auf PD5 (JP2 3=6) gesetzt werden – ggf. auch als Draht oder
SMD-Widerstand auf der Baugruppenunterseite eingelötet.
SMCs sind gerade wegen ihrer SPI-Schnittstelle bestens für µController mit SPI als
Speichererweiterung geeignet.
Pin
Name
Signal Function
1
2
NC
/CS
3
DI
Master Out/Slave In (MOSI)
4
5
6
7
8
Vdd
CLK
Vss
DO
RSV
Supply Voltage 2.7V .. 3.6V
Clock
Ground
Master In/Slave Out (MISO)
Reserved
No Connect
Chip Select
Tabelle 23:
SMC - Signale im SPI-Mode
[52] ist eine gute Beschreibung der Grundlagen zur Handhabung einer SMC, es beschreibt
(als Standard) dies und die Basis-Kommunikation, Kartenregister und dergleichen
ausführlicher.
weAut_01 — Benutzerhandbuch (DE 01)
27
3.7 Prozessschnittstellen
Binäre Prozesseingänge / digital input DI
Anzahl:
Spannung:
8
24 V / 12V
kompatibel mit einzeln — d.h. kanalweise —
konfigurierbaren Schwellwerten bzw. Hysteresen:
H)
1
über 10,9 V
0
unter 9,0V
(narrow, High)
L)
1
über 6,1V
0
unter 3,3V
(narrow, Low)
W)
1
über 10,9 V
0
unter3,3V
(Wide hysteresis)
weAutSys unterstützt diese drei möglichen Betriebsarten und zusätzliche Filteroptionen
Eingangsimpedanz:
60 kOhm
Filter / Tiefpass:
66,5µs
Erlaubter Eingangsspannungsbereich: +/- 60V (Kleinspannung)
abs. max. rating :
Hinweis,
+/- 250V bzw. 250Veff ~ (zerstörungsfrei)
Warnung:
Schaltung und Layout verteilen den Eingangsspannungsabfall auf zwei
Widerstände und verwenden relativ viel Platz für weite Abstände untereinander und zu
empfindlichen Bauelementen.
Dennoch verbieten geltende Vorschriften zu Luft- und Kriechstrecken i.A. mehr als
+/-60 V an den Eingangsklemmen. Halten Sie diese Sicherheitsvorschriften streng ein.
Analoge Prozesseingänge / analogue input AI
Jeder der 8 (digitalen) Eingänge kann auch als Analogeingang genutzt werden. Hier sind
die Möglichkeiten und die Genauigkeit gegenüber den grundsätzlichen Möglichkeiten des
µControllers jedoch etwas eingeschränkt, da die Schaltung dafür nicht primär ausgelegt
ist. Die Einschränkung bestehen in der 2%-Genauigkeit der Eingangsteiler, der (auch
nutzbringend einsetzbaren) Nichtlinearitäten der Schutzdioden und dem Fehlen einer
getrennten "analogue ground plane".
Für sehr viele Anwendungen ist eine solche (einfache) AI jedoch vollkommen hinreichend.
Eingangsteiler:
* 0,27
(+/-2%)
Filterzeitkonstante:
66,5µs
(fg = 15kHz)
Messbereich A: 0..+4V
B
C
0..+10V
0..+18V
10 Bit Auflösung, „single ended“-Verwendung eines Kanals
interne 1,1V-Referenz
dto., dto., mit der internen 2,5V-Referenz (Bild 24, Seite 29)
dto., dto., mit VCC = 5V als Referenz; hier wird das obere
Ende des Bereichs von der Schutzdiode beschnitten (Bild 25).
Andere Messbereiche sind mit zusätzlicher äußerer Beschaltung oder durch die Verwendung von zwei Kanälen als Differenzeingang und dem internem Verstärker (des
µControllers) denkbar, aber i.A. weniger sinnvoll.
28
weAut_01 — Benutzerhandbuch (DE 01)
Die Bilder 24 und 25 zeigen für die o.a. Bereiche B und C der Zusammenhang der analogen Messung bzw. AI-Antwort mit der Eingangsspannung. Bei sinnvoller Beschränkung
auf die oberen 8-Bit (der 10Bit-Auflösung) zeigt sich eine gute Übereinstimmung der
Kanäle ebenso wie auch eine stabile Rate Volt pro digit (untere grüne Kurve), solange die
Eingangsspannung unterhalb des Einsatzes der (DI-) Schutzschaltung / Begrenzung
bleibt.
Der für reine Messzwecke an sich störende Einsatz dieser Begrenzung (oberhalb von
etwa 10V, Bild 25) kann auch nützlich sein, wenn niedrige Werte mit guter Auflösung und
Genauigkeit erfasst werden sollen und man zusätzlich einen großen „Overflow-“ Bereich
hoher Werte unterscheidbar erfassen möchte.
Der Bereich C (Bild 25) ist bei Lastspannung 12V bzw. 24V und mit einer entsprechenden
Beschaltung von Namur-Gebern für Kurzschluss- und Drahtbrucherkennung geeignet.
Bild 24:
Analogeingänge
(Bereich B)
Bedingung: Kanäle 1, 2 & 3 an
Messgleichspannung 0..11V
AD: 2,56V ref,
Wandlungstakt 20MHz/128
Bild 25:
Analogeingänge
(Bereich C)
Bedingung: Kanäle 1, 2 & 3 an
Messgleichspannung 0..36V
AD: VCC= 4,94V ref,
Wandlungstakt 20MHz/128
Alle 8 digitalen Eingänge lassen sich, wie gesagt, einzeln als Analogeingänge konfigurieren; dies wird von weAutSys unterstützt. Bei gleichem Bereich und der bei Bild 24 und 25
angegebenen Wandlungsrate sind alle 8 Kanäle in weniger als einer Millisekunde abgearbeitet. Die Anwendungssoftware kann bei Bedarf also jeweils aktuelle Analogeingangswerte in ihrem 1ms-Zyklus verarbeiten.
weAut_01 — Benutzerhandbuch (DE 01)
29
Binäre Prozessausgänge / digital output DO
Anzahl:
8
Logisch 1 " = An" : Lastspannung - 0,8V
Logisch 0 = "Aus" : Hi-Impedanz
(evtl. geringfügiger Reststrom)
Laststrom:
100 mA
max. pro Ausgang
Laststomsumme:
800 mA (max) für alle 8 Kanäle gemeinsam
Lastarten:
Geeignet für ohmsche und induktive Last.
Schutz:
Absteuerung bei Überlastung (Kurzschluss) und Übertemperatur
durch das Treiber-ICs ([10]).
Fehlererkennung:
Der Überlastfall wird als Fehlerzustand angezeigt (LED 8
und Software). Aus dem Fehlerzustand kommt man durch
disable / enable des Treiber-ICs wieder raus.
In den Grenzen der kurzzeitigen Überlastbarkeit (d.h. ohne in den Fehlerzustand mit Abschaltung zu geraten) sind auch Glühlämpchen (Signallampen z.B.) ansteuerbar. Deren
etwa um den Faktor 10 erhöhter Einschaltstrom wird i.A. einen Vorwiderstand erfordern,
um die sofortige Überstromabschaltung zu vermeiden.
Counter / timer / generator
Dies stellt eine der alternativen Verwendungen der SubD-Buchse und des Schutz- und
Pegelwandlungsbausteins (MAX202), also der V.24 / RS232-Schnittstelle bzw. von Teilen
von ihr, dar. Näheres siehe dort auf Seite 22.
Mit Verzicht auf die serielle Kommunikation stehen hier auch zwei Ein- und zwei Ausgänge
mit vielfältigen Verwendungsmöglichkeiten zur Verfügung.
30
weAut_01 — Benutzerhandbuch (DE 01)
4.
Softwareentwicklung
Diese Kapitel behandelt die grundsätzlichen Möglichkeiten und Randbedingungen für die
Software der Baugruppe unabhängig von der Wahl eines bestimmten Laufzeit- / Betriebssystem wie weAutSys.
weAutSys ist natürlich genau für diese Bedingungen gemacht bzw. hierfür konfigurierbar
(MCU = atmega1284p , PLATFORM = weAut_01). Im Allgemeinen ist es empfehlenswert, die Anwendungssoftware auf der Basis einer weAutSys-Lizenz zu entwickeln.
4.1 Hardware-Randbedingungen
Prozessor-Grundeinstellungen (Fuses)
Variante 1, robust: l
Variante 2, stromspar.:
fuse F7
lfuse FF
hfuse D9
hfuse D9
efuse FD
efuse FD
Ein stabiler Lauf des (Quarz-) Oszillators ist absolut "spielentscheidend".
Variante 1 unterscheidet sich hier lediglich durch die "robustere" Einstellung (full swing).
Port-Verwendung
Die AVR-Controller ATmega164A, ATmega164PA, 324A, 324PA, ATmega644A, 644PA
und der bei weAut_01 eingesetzte ATmega1284 haben vier weitgehend frei konfigurierbare 8-Bit-Ports PA bis PD. Die Freiheit ist insofern eingeschränkt, als die verwendeten
integrierte I/O-Subsysteme, wie UARTs, SPIs, timer/counter, AD, Komparator, two-wireinterface und so weiter, an bestimmte Port-Pins gebunden sind.
Alle 32 Port-Anschlüsse sind als digitale Aus- oder Eingänge mit zuschaltbarem Pull-UpWiderstand nutzbar, sofern keine ihrer jeweiligen eben erwähnten Sonderfunktion verwendet wird. Die Schaltung der Baugruppe weAut_01 nutzt viele dieser Sonderfunktionen fest,
schließt einige aus und sie erlaubt bei manchen die optionale Nutzung der jeweiligen Sonderfunktionen oder als freie Ports für Erweiterungen.
Fest genutzte Sonderfunktionen
SPI (PB5..7):
ISP, Master-SPI für Baugruppenperipherie (DO, DI-LEDs)
SPI2 (UART2, PD2..4):
Master-SPI für Ethernet-controller und SMC
UART (PD0..1):
serielle Schnittstelle (V,24 / RS232)
Komparator (PD3):
für die Überwachung der Lastspannung
Optional nutzbare Sonderfunktionen
Two wire (PC0..1):
2wire / I²C-Erweiterung
Timer 1 (PB1)
Zähler
auch invertiert via RTS-Eingang, SubD
Timer 2 (PD6)
Generator
auch invertiert via CTS-Ausgang, SubD
Ausgeschlossene Sonderfunktionen
JTAG (PC2..5):
Ports sind für andere Zwecke fest belegt.
weAut_01 — Benutzerhandbuch (DE 01)
31
Pin
Verwendung
Alternative
Anmerkung
Port A Digitale Eingänge 0..70V
Analog-Ein
+/- 240 V abs. max, rating
PA0
DI 0
AI 0
PA1..6
DI 1..6
AI 1..6
PA7
DI 7
AI 7
Eingangsteiler
Filter
Schutzdiode
Port B
PB0
Taste „Enter“
(0: gedrückt)
PB1
Eingang RTS, Eingang Zähler 1
PB2
LED gn
PB3
Komparatoreingang Lastspannung
PB4
LED rt
PB5
SPI1
MOSI
PB6
SPI1
MISO
PB7
SPI1
SCK
frei verwendbar
freier Port
JP1 Pin 8; rangierbar
frei verwendbar
(LED 19)
Eingangsteiler
frei verwendbar Lastspannung weg (Komp.)
(LED 18)
ISP direkt,
aber andere SPI-Geräte
entkoppelt (jew. 270 Ohm)
Port C
PC0
TwoWire (I²C)
SCL
freier Port
JP3 Pin 4 testpin1
PC1
TwoWire (I²C)
SDA
freier Port
JP3 Pin 1 testpin0
PC2
/CS für DI-LEDS
(Register)
PC3
/CS für DO
(Register)
PC4
Eingang DO /fault
und LED rt
PC5
DO enable (1) und LED (rt, 0))
LED "DO disable"
PC6
MicroSD
/CS
Pegelanpassung 3V; SPI2
PC7
Ethernet
/CS
PD0
UART0
RX
PD1
UART0
TX
PD2
SPI2 (UART1)
MISO
PD3
SPI2 (UART1)
MOSI
PD4
SPI2 (UART1)
SCK
PD5
MicroSD
PD6
Ausg. CTS, Ausg. Timer/Generator 2 LED gn, Port
PD7
Ethernet INT (Int31)
mit SPI1, Übernahme mit
positiver Flanke
Port D
UART via MAX202
/inserted (JP1-3=6)
SPI für Ethernet und small
memory card (SMC)
freier Port
JP1 Pin 6
JP1 Pin 10, rangierbar
Tabelle 26: Port-Verwendung
32
weAut_01 — Benutzerhandbuch (DE 01)
4.2
Grundsätzliche Möglichkeiten
Es gibt Werkzeuge für die Programmierung des µControllers in Assembler, C, ja sogar in
C++, in der exotischen Sprache "BasCom" und sicher für manche andere Programmiersprache mehr.
Sprache
Der hier verfolgte, empfohlene Ansatz ist die durchgängige (ausschließliche) Verwendung
von C. Dies und die Vermeidung von Assembler ist gängige Industriepraxis im embedded
Bereich. Für die AVR Atmel controller ist die GNU Werkzeugkette (GNU, GCC) als AVRGCC bzw. WinAVR geeignet.
Der GNU-C-Compiler für AVR und die zugehörigen Bibliotheken machen ihre Sache weitgehend richtig gut — mit ganz wenigen (teilweise bösen) "Ausrutschern". Insofern kommt
man um das Lesen (.s-files) des Assembler-Ergebnisses nicht herum. Das meiste lässt
sich dann mit Umformulieren der C-Quelle schrittweise verbessern. Wenn denn doch
punktuell signifikante Verbesserungen durch Assembler möglich und nötig sind, ist inline
assembler in der C-Quelle das Mittel der Wahl und ohne Bruch der Werkzeugkette
möglich.
Plattform, Werkzeuge
Diese GNU Compiler lassen sich auch mit zeitgemäßen leistungsfähiger und auch im professionellen Bereich genutzter Entwicklungswerkzeugen, wie SVN, Doxygen und Eclipse
nutzen bzw. und in diese integrieren.
Für die serielle Kommunikation mit dem Modul hat sich das Programm HTerm bewährt.
Für die Analyse des Netzwerkverkehrs (Ethernet) ist Wireshark (am besten ergänzt mit
einem sog. break out switch) geeignet und bewährt.
Alle diese Softwarewerkzeuge sind frei von Lizenzgebühren als download erhältlich. Erfolgreiche Installationen und Nutzungen gab unter (jeweils professionell) Windows Server
2003, Windows XP sowie Windows 7 (32) und Windows 7 (64), wobei letztere die meisten
Probleme machen.
Relativ problemlos ließ sich die ganze Kette auch unter Linux Mint (12, 14) aufbauen und
nutzen. Hier versagten lediglich die Doxygen binaries; Doxygen musste hierfür aus den
Quellen neu gebaut werden.
Der Vorzug der Windowsplattform ist die Nutzung des in vielen Entwicklungsabteilungen
genutzten und dort für viele andere Werkzeug notwendigen Quasi-Standards. Der Vorzug
von Linux ist die nun vollkommene Freiheit von Lizenzgebühren – und dass dort Wireshark
vernünftig läuft.
Es ist auch möglich, größere versionsverwaltete (SVN) Projekte abwechselnd bzw. gleichzeitig unter Windows- und der Linux-Plattformen zu bearbeiten. Der Preis hierfür ist etwas
zusätzlicher Sorgfalt bei Konfigurationsdateien sowie das doppelte Bereitstellen von ein /
zwei Skripten, also xyz.bat und xyz.sh, die dann (versionsverwaltet) konsistent zu halten
sind.
Hinweis:
Konkrete Hinweise, Kommandos und Beispiele hier beziehen sich
auf die Windows-Plattform.
weAut_01 — Benutzerhandbuch (DE 01)
33
4.3 Softwarewerkzeugkette
Eclipse und SVN
Man nehme pure Eclipse (>= Galileo, Indigo, Juno)
+
CDT (bzw. gleich die C/C++ Installationsvariante)
+
AVR Eclipse plug-in
+
Subclipse (Required) 1.6.5 (http://subclipse.tigris.org/update_1.6.x)
(http://avr-eclipse.sourceforge.net/updatesite)
WinAVR, GCC und Libraries
WinAVR installieren aus z.B.
26.02.2010
nach
28.840.282
WinAVR-20100110-install.exe
C:\Programme\WinAVR
Für den reinen Eclipse- (+Automake-) Betrieb braucht man keine Pfadergänzung. Gestaltet man Projekte so, dass Alles auch von der Kommandozeile bzw. (batch-) automatisiert
verwendet werden kann, ist der Pfad um zwei WinAVR-Verzeichnisse zu ergänzen:
PATH=C:\bat;C:\programme\util;C:\programme\jdk\bin;
C:\programme\WinAVR\bin;C:\programme\WinAVR\utils\bin;
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\Programme\TortoiseSVN\bin
Warnung zu Windows 7: Das bei (deutschem) Windows 7 im Explorer als C:\programme\
angezeigte Verzeichnis heißt gar nicht so — man vergleiche mit dem dir-listing.
Eine heimtückische Falle.
On-Board- Programmierung
Die Programmierung erfolgt „on board“ über die ISP-Schnittstelle; vgl. u.A. Bild 22 auf
Seite 26. Die kleine Baugruppe mySmartUSB ist ein bewährter und schneller Weg von
einem PC via USB zur ISP-Schnittstelle.
Hat man am Entwicklungsrechner direkt (oder über ein simples USB-Gerät) eine serielle
Schnittstelle, benötigt man für weAut_01 kein Programmiergerät, sei es mySmartUSB oder
ein anderes. Wenn man mySmartUSB dennoch zur Verfügung haben möchte, gehe man
so vor:
Man installiere aus
26.02.2011 4.462.916 tool_usb-treiber-myavr-board-v5.4.24.zip
25.10.2009 5.479.464 CP210x_VCP_Win2K_XP_S2K3.exe
für alles außer Windows 7 bzw. für Windows 7 aus
06.09.2011 4.463.927 tool_usb-treiber-myavr-board-v5.4.24-win7.zip
25.10.2009 5.492.504 CP210x_VCP_Win7.exe
oder neuere, passendere Dateien in den zwei Schritten Entpacken und Installieren:
1.)
2.)
34
jar xfv tool_usb-treiber-myavr-board-<vers>.zip
CP210x_VCP_<target>.exe
weAut_01 — Benutzerhandbuch (DE 01)
Erst nach (!) dem Lauf des Installationsprogramms den mySmartUSB anschließen.
Den verwendeten (neuen) Comm-Port kann man bei installiertem Java-Framework
Frame4J klären mit
java ShowPorts
oder durch Nachschauen im Windows-Gerätemanager. Den neu hinzugekommenen
Pseudo-Comm-Port (z.B. com3) muss man man in die (Eclipse-) Konfiguration, und ggf.
in Batch-und make-files eintragen bzw. sinngemäß so verwenden.
avrdude -p atmega1284p -c avr911 -P com3 -U flash:w:leprog.hex
Hinweis:
Man kann den verwendeten Pseudo-Comm-Port im Windows-Gerätemanager auf
einen anderen freien Port ändern. Letzteres ist sinnvoll, wenn man dasselbe
Entwicklungsprojekt bzw. make-File auf mehreren Arbeitsstationen verwenden will.
Dann sollte der Einfachkeit halber überall der gleiche Port verwendet werden.
Hinweis 2: Häufig funktionieren bei avrdude „zweistellige“ Com-Ports, also z.B. COM15, nicht.
Falls man von diesem Bug betroffen ist, muss man sich auf den Bereich COM1 ..
COM9 beschränken. Gelegentlich hilft auch -P \\.\COM15 [sic!] gegen die „handle“
Fehlermeldung anstelle des einfachen -P COM15 .
Hinweis 3: Windows 7 reagiert auf das Ziehen einiger auch in Programiergeräten verbauter
USB2serial converter trotz korrekt installierter Treiber mit Absturz. Es handelt sich um
hoffentlich vorübergehende Probleme einiger Hersteller mit dem 64 bit-System.
Hinweis 4: Unter Linux sind für mySmartUSB[light] keine zusätzlichen Treiber erforderlich.
-P /dev/ttyUSB0 verbindet zum Gerät --- mit dem dann die Programmiersoftware
(zumindest direkt installierte Binaries) i.A. Nicht zurecht kommt. Hier nimmt man dann
ohne Nachteile eine vorhandene serielle Schnittstelle direkt (s.o.).
weAut_01 — Benutzerhandbuch (DE 01)
35
5.
Die Grundsoftware weAutSys
Im Rahmen der durch die Hardware gegebenen Randbedingungen (siehe letztes Kapitel)
gibt es vielfältige Möglichkeiten des Einsatzes von Software-Eigenentwicklungen und von
open source Paketen.
Empfohlen wird der Einsatz der Grundsoftware / des run time Systems weAutSys als
Basis.
5.1
Lizenz
weAutSys ist eine von weinert – automation entwickelte Grundsoftware unter kommerzieller Lizenz. Ein Teil der Komponenten von weAutSys enthält auch modifizierte open source
Software mit LGPL bzw. BSD Lizenz. Diese Teile bleiben open source und behalten ihre
jeweilige LGPL bzw. BSD Lizenz.
LGPL und BSD beeinträchtigen nicht die kommerzielle Lizenz von Produkten, die so
lizenzierte Teile modifiziert oder unverändert inkorporieren.
Die übrigen Teile und damit das Gesamtpaket weAutSys stehen unter kommerzieller
Lizenz. Mit dem Erwerb einer hiermit ausgelieferten Baugruppe erwirbt man das Nutzungsrecht für die Software auf der selbigen Baugruppe. Jede andere Verwendung, das
Rückübersetzen und re-engineering, und jede Verbreitung in binärer Form oder als
Quelltext stellen einen strafbaren Verstoß gegen die Nutzungbedingungen dar.
Neben diesem mit eine erworbene Baugruppe gekoppelten Nutzungsrecht können weitere
darüber hinausgehende Lizenzen erworben werden.
Softwarekomponenten
Komponente
Lizenz
gnu-C-libraries
LGPL
AVR-C-libraries
LGPL
Grundsystem
kommerziell (weinert - automation)
Systemtreiber
kommerziell (weinert - automation)
ProtoThreads
BSD - Lizenz
lwIP
BSD - Lizenz
ENC28J60-Treiber
kommerziell (weinert - automation)
SMC-Treiber
kommerziell (weinert – automation)
bootloader
open source (bzw. gleiche Lizenz wie AVR109 loader)
36
weAut_01 — Benutzerhandbuch (DE 01)
5.2
Parallelbearbeitung und Ablaufsteuerung
Der Anwendungsprogramierer setzt bei weAutSys seine Software in "vorgefertigte"
Threads, im PLC / SPS-Sprachgebrauch auch "Zyklen genannt", ein. Diese werden
entweder periodisch oder ereignisgesteuert aufgerufen. Es gibt u.A.
●
1ms-Zyklus
●
10ms-Zyklus
●
100ms-Zyklus
●
1s-Zyklus
●
Anlauf
●
Bedieneingabe
●
Kommunikation
Die Periode der zyklischen Threads kann einfach durch Nutzung alle ungerade, alle gerade, alle n Mal beliebig ganzzahlig verlängert werden. Darüber hinaus stehen beliebig
Timer, auch mit (sehr) langen Laufzeiten, in Millisekunden-Granularität zur Verfügung.
Die periodischen Nutzer-Zyklen können angehalten und wieder gestartet werden (PLC run
und PLC stop).
5.3
Kommunikation und Utilities
weAutSys unterstützt die Kommunikation via RS.323 mit oder ohne symmetrische CTS/
RST-Flusskontrolle. Mit letzterer sind P2P-Verbindungen zwischen zwei Baugruppen einfach möglich.
weAutSys unterstützt die Ethernet-Kommunikation und bietet alle Möglichkeiten des TCP/
IP-Stack uIP. DHCP und im EEPROM hinterlegte Konfigurationen werden unterstützt.
Darüber hinaus bietet weAutSys zahlreiche (Hilfs-) Funktionen zu Arithmetik, Kommunikation, Formatter, Parser und I/O, welche in Hinblick auch die Atmel 8bit RISC-Prozessoren
optimiert sind.
Darüber hinaus sind einige Anwendungsprotokolle, wie NTP, Modbus, Telnet, unterstützt
bzw. implemetiert.
5.4
Dokumentation
Zu weAutSys gibt es Veröffentlichungen und eine separate Dokumentation in englischer
Sprache. und die Dokumentation des C-Codes, erzeugt aus den Quellen mit Doxygen,
siehe auch
https://weinert-automation.de/files/weAutSys/doxygen/ .
weAut_01 — Benutzerhandbuch (DE 01)
37
Anhang
I
Inbetriebnahmeschritte
Sichtkontrolle
Alles bestückt
Visueller Vergleich mit Bild 27, z.B.:
Quarz am µController 20MHz und am Ethernet-Chip 25 MHz
Die vier "großen" Puffer-Elkos haben 330µF und eine Spannungsfestigkeit von 35V
Keine offensichtlichen Kratzer, Lötspritzer, Kurzschlüsse
Bild 27:
Versuchsaufbau für die Erstinbetriebnahme
Für die nächsten Schritte benötigt:
Netzgerät 0..35V, 1A mit Spannungs- und Strommessung; Schutzwiderstand 10 Ohm
Spannungsmesser
38
weAut_01 — Benutzerhandbuch (DE 01)
Hochfahren der redundanten Einspeisung
0..30V mit Vorwiderstand (etwa 10 .. 15 Ohm) und Strommessung
Stopp über 300mA (Fehlbestückung, verpolte Bauelemente)
Kontrolle der Vcc (5V) und der +3V3 (3,3V)
Stopp, wenn hängt oder +10%
Aufzeichnen der Stromaufnahme (muss oberhalb 10V Einspeisung fallen)
Kontrolle des Einsatzes der (oberen) Leuchtdioden (ab ca. 10V an, ab 12V hell)
Ermitteln des Einsatzes der Transzorp-Diode (muss deutlich über 24V und deutlich
unter 35V sein)
Testen negative Einspeisung (keine Stomaufnahme, kein "Durchschlagen" zum
Wandlereingang, messbar an Klemme X3)
Bild 28:
Messpunkte
für Vcc (5V +/- 0,1V)
2 Durchkontaktierungen
und für 3V3 (3,3V +/- 0,1V)
"Pad" des Reglers
Hochfahren der Lastspannung
0..30V mit Vorwiderstand (etwa 10 .. 15 Ohm) und Strommessung
Stopp über 300mA (Fehlbestückung, verpolte Bauelemente)
Kontrolle der Vcc (5V) und der +3V3 (3,3V)
Stopp wenn hängt oder +10%
Aufzeichnen der Stromaufnahme (muss oberhalb 10V Einspeisung fallen)
Kontrolle des Einsatzes der (unteren) Leuchtdioden (ab ca. 10V an, ab 12V hell)
Ermitteln des Einsatzes der Transzorpdiode (muss deutlich über 24V und deutlich unter
35V sein)
Testen negative Einspeisung mit Vorsicht:
deutliche Stomaufnahme ab 0,5V ist OK bzw. muss so sein (Verpolschutz),
Lastspannung darf nicht unter -0,9V kommen
sonst Stopp (Fehlbestückung)
Man darf hierbei nicht über 1A gehen, sonst ist die Sicherung F1 gefährdet.
weAut_01 — Benutzerhandbuch (DE 01)
39
Ansprechen des Prozessors, Setzen der Fuses
ISP an Programmiergerät bzw. direkt seriell anschließen, vgl. die Bilder 14 bis 20 ab Seite
16. Hier ist es i.a. empfehlenswert, zunächst "seriell direkt" (pony, bit bang) zu nehmen, da
"mySmartUSB" fuses nicht schreiben kann. (mySmartUSB light kann es.)
Auslesen der fuses gemäß Listing 29,das auch den erwarteten Lieferzustand eines
fabrikneuen ATmega1284 zeigt.
$$ entweder ser $> avrdude -p atmega1284p -c ponyWeAut -P com1 -v
$$ oder via USB $> avrdude -p atmega1284p -P com7 -c avr911 -n -v
avrdude:
avrdude:
avrdude:
avrdude:
Device signature = 0x1e9705
safemode: lfuse reads as 62
safemode: hfuse reads as 99
safemode: efuse reads as FFs.c
Listing 29: .: Auslesen der fuses mit seriell direkt (bit bang) oder mySmartUSB o.ä.
Setzen der Fuses auf lfuse = FF, hfuse = D9 und efuse = FC mit
avrdude -p atmega1284p
..avrdude -p atmega1284p
avrdude -p atmega1284p
Hinweis:
-c ponyWeAut -Pcom1
-c ponyWeAut -Pcom1
-c ponyWeAut -Pcom1
-U lfuse:w:0xFF:m
-U hfuse:w:0xD1:m
-U efuse:w:0xFC:m
Die wesentlichen Unterschiede zum Lieferzustand sind JTAG aus, BOD an,
low power crystal, f*1, long start-up.
Kontrolle des Ergebnisses durch Auslesen
Optional Kontrolle ob Quarz mit 20MHz (50ns Periode) schwingt.
Tastkopf mit Vorwiderstand verwenden (1:10), sonst "bläst" man den
Oszillator häufig aus.
Bild 30:
Messpunkt: rechts am "rechten Kondensator" C17
Falls (im übernächsten Schritt) die Testsoftware und insbesondere die serielle Kommunikation fehlerfrei läuft, kann die Kontrolle der Quarzgeneratoren durch das Messen der
korrekten Quarzfrequenz mit Messgeräten (gemäß Bild 30) entfallen. Die serielle Kommunikation ist recht empfindlich gegenüber Abweichungen von der korrekten Taktfrequenz.
Hinweis:
Falls der Quarz nicht schwingt, versuche man es mit lfuse = F7.
Das ist "full swing" statt "low power" (d.h. kaum messbar höherer Stromaufnahme).
Also sinngemäß:
avrdude -p atmega1284p
-c ponyWeAut -Pcom1
-U lfuse:w:0xF7:m
Wenn es nun geht, ist auch alles in Ordnung. Im Rahmen der Exemplarstreuung von
Wandler (5V), Prozessor und Quarz gibt es Kombinationen, in denen die Einstellung "low
power" nicht sicher schwingt. Außer in sehr stromverbrauchkritischen Anwendungen mag
man sich auch von vornherein für die "full swing" Einstellung entschließen.
40
weAut_01 — Benutzerhandbuch (DE 01)
Hinweis 2: Das Setzen der fuses ist kritisch. Man kann damit
den µController und so die Baugruppe unbrauchbar
machen; Reparaturhinweis ggf. weiter weiter unten.
Bei der Gelegenheit (und ggf. auch als Kontrolle der Messeinrichtung) gleich den Quarzoszillator des 28J60 an C14
kontrollieren (25 MHz, 40 ns).
Bild 31:
fuse
Messpunkt am Kondensator neben dem Quarz
Lieferzust. WeAut std
alternativ
lfuse
62
FF
F7
hfuse
99
D1 / D0
D9 / D8
efuse
FF
FC
Änderung std.>alternativ
Quarz schwingt sicherer und schneller an
EEPROM wird mit chip erase gelöscht
Tabelle 32: Übersicht fuse settings
Meist ist es gewünscht, dass der Inhalt des EEPROMS eine Neuprogrammierung „überlebt“, z.B. wenn dort Konfigurationsdaten, wie die MAC-Adresse, hinterlegt sind.
Anderenfalls setze man die hfuse statt auf D1/D0 auf D9/D8 mit sinngemäß
..avrdude -p atmega1284p
-c ponyWeAut -Pcom1
-U hfuse:w:0xD9:m
Falls vorhanden kann man nun die ISP auf ein USB-Programmiergerät "mySmartUSB"
umsetzen, um die serielle Schnittstelle freizumachen.
In diesem Falle erneutes Probeauslesen der gerade gemachten fuse settings nun mit:
avrdude -p atmega1284p -P com7 -c avr911 -n -v
Erinnerung: Fuses lesen kann der mySmartUSB, nur schreiben kann er sie nicht.
Hinweis:
Die hfuse-Einstellungen D0 oder D8 anstatt D1, D9 gelten für die (empfohlene
Verwendung der weAutSys bootloaders.
Einschub: fuse repair
Falls man aus Unachtsamkeit die fuse Einstellungen "zerschossen" hat, kann dass leider
so weit gehen, dass der Prozessor mit der ISP-Schnittstelle nicht mehr "spricht".
Dann kann man auf diesem Wege die fuses auch nicht mehr korrekt setzen.
Aus dieser Sackgasse helfen Programmiergeräte mit anderen "Nicht-ISP-" Ansätzen
(JTAG oder 12V Programmierspannzng).
Oft geht es aber auch viel einfacher mit dem schlichten Einspeisen eines externen
Prozessortakts:
Rechteck, TTL oder CMOS,
etwa 1 bis 2 MHz,
am besten mit einem 50 Ohm Entkopplungswiderstand.
Einspeisepunkt wäre "die linke Seite des linken Kondensators", also im Bild 30 gespiegelt
zum Messpunkt.
Wenn der µC nun mit der ISP-Schnittstelle spricht, ist man natürlich gerettet.
weAut_01 — Benutzerhandbuch (DE 01)
41
Meilenstein: µC läuft
Wenn man hierher gelangt ist
•
läuft der Prozessor in der richtigen Grundbetriebsart (Frequenz etc.) und
•
"spricht" mit Programmiergeräten (pony und mySmartUSB) via ISP
Falls das nicht geht ...
... nicht weiter, sondern klären / reparieren!
Testsoftware aufspielen
Mit der Testsoftware (weAutSys + Demo-/Testprogramm) und den entsprechenden makeEinstellungen generiert man die Software mit:
$$$>make clean
$$$>make all
Geladen wird sie mit einem Programmiergerät "smartUSB"
$$$> avrdude -p atmega1284p
-P com7
-c avr911
-U flash:w:main.hex
oder mit einem Programmiergerät smartUSB light"
$$$> avrdude -p atmega1284p
-c avrisp2
-P com4 -U flash:w:main.hex
oder via "seriell direkt"
$$$> avrdude -p atmega1284p
-P com1
-c ponyWeAut -U flash:w:main.hex
oder via serielle Schnittstelle und dem weAutSys bootloader
$$$> avrdude -p atmega1284p -c avr109 -b 38400 -P com1 -U flash:w:main.hex
Nach Einspielen der (auf weAutSys beruhenden) Test- Demosoftware:
Serielle Kommunikation — z.B. mit HTerm 0.8beta — testen. Einstellung:
38400 Baud, 8 Bit, 1 Stop, no parity, no flow control
newline at LF, send on enter LF, [connect]
Terminaleingabe "abort" muss zu Abbruch und Neustart mit "watchdog" als "reset cause"
führen.
Reset-Taste muss zu Abbruch und Neustart mit "ext. reset" als "reset cause" führen.
Eine diesbezügliche Anzeige erhält man mit dem Kommando "runInfo".
Anschließen der Ethernet-Schnittstelle (direkt oder indirekt) an einen DHCP-Server. Der
Server oder der nächstgelegene Switch muss 10MBit/s können.
Kommando "IPconfig" an der seriellen Schnittstelle muss u.a. die erhaltene IP-Adresse
zeigen. Wenn dieser Test funktioniert, ist auch der 25 MHz-Takt des ENC28J60 OK und
muss nicht eigens geprüft werden.
42
weAut_01 — Benutzerhandbuch (DE 01)
A
AC
Abkürzungen
Wechselstrom; alternating current
AI..
analogue input
ANSI
American National Standards Institute
AO..
analogue output
API
Application Programme Interface
ARP
Address Resolution Protocol
bl
blau
B&B
Bedienen und Beobachten (von Prozessen)
BIST
Built-in Self-Test
BSD
Berkeley Software Distribution (Lizenz)
CRC
Cyclic Redundancy Check:; Prüfkodeverfahren auf Polynomdivision beruhend
C/S
Client-Server
/CS..
chip select (i.a. 0-aktiv, signalisiert durch /)
CSMA/CD
/ Analogeingabe
/ Analogeingabe
Carrier Sense Multiple Access with Collision Detect
DHCP Dynamic Host Configuration Protocol
DI..
digital input
/ Binäreingabe, i.A. 24V
DNS
Domain Name System
DO..
digital output
EAI
Electronic Industries Alliance
/ Binärausgabe, i.A. 24V
EAI323 neuere Bezeichnung für RS232/V.24
ED
Einschaltdauer (relative Angabe in % der Zeit AN)
EMC, EMV
EMI
Elektromagnetische Verträglichkeit, Störsicherheit, Störfestigkeit
Elektromagnetische Interferenz / Störung
EUI-48 48-bit Extended Unique Identifier: EUI-48™ is a concatenation of a 24-bit OUI value
assigned by the IEEE-RA and a 24-bit extension identifier assigned by the organisation with
that OUI assignment; ersetzt MAC-48; (es gibt auch EUI-64;...)
FAQ
Frequently Asked Questions
(Hilfetexte in Frage-Antwort-Form)
ge, gn
gelb, grün
Gnd
ground, Erde, Bezugspotential, 0V
GNU
GNU is not Unix
GPL
[GNU] General Public License
(infizierende open source Lizenz)
weAut_01 — Benutzerhandbuch (DE 01)
43
GSS
Generic Security Service
GUID
Globally Unique Identifier
Hi
High, hoher Pegel, VCC, 5V/3,3V, Lastspannung,
HTML
Hypertext Markup Language [RFC 1866]
HTTP
Hypertext Transfer Protokoll.
Internet-Protokoll zur Übertragung von Seiten.
i.A. logische 1, true
HTTPS HTTP über SSL. Abgesicherte Übertragung.
HW
Hardware
IC
integrated circuit; integrierter Schaltkreis
ICMP
Internet Control Message Protocol
IEC
International Electrotechnical Commission
IEEE
Institute of Electrical and Electronics Engineers
IEEE-RA
IEEE Registration Authority
ISO
International Standardization Organization
ITI
Information Technology Industry Council
IP
Internet Protocol
ISP
in system programming
J2ME
Java 2 Micro Edition
JAR
Java Archive. (.zip + Semantik)
JDK
Java Development Kit; der Werkzeugsatz für die Entwicklung mit Java
JRE
Java Runtime Environment; JDK-Subset ohne Entwicklungswerkzeuge.
JTAG
Joint Test Action Group
LAN
Local area network; Datennetz für mittlere Entfernungen
LED
Leuchtdiode
LGPL
[GNU] Lesser General Public License bzw. früher Library General Public License
Lo
Low, niedriger Pegel, Gnd, 0V,
LV
load voltage; Lastspannung, Lastversorgung, i.A. nominell 24V, gel. auch 12 V
MAC
Media access control
i.A. logische 0, false
MEVA Labor für Medien und verteilte Anwendungen (meva-lab.de)
MISO
SPI-Signal Master in / slave out
MOSI
SPI-Signal Master out / slave in
MS
Microsoft
44
weAut_01 — Benutzerhandbuch (DE 01)
µC µ-C Mikro-Controller, µController
NAMUR Normenarbeitsgemeinschaft für Mess- und Regeltechnik in der Chemischen Industrie
NIC
network interface card / circuit
NT
Betriebssystem Windows NT (MS)
OMG
Object Management Group
OS..
operating system / Betriebssystem
OUI
Organizationally Unique Identifier; 28 Bit; z.B. genutzt als erste drei (von 6) Bytes
einer MAC-Adresse (MAC-48; EUI-48), OUI wird verteilt / verkauft vom IEEE-RA
P2P
point to point
PAM
Pluggable Authentication Module
PA, PB, PC, PD
Port A..D
PC
Personal Computer
PCB
Printed circuit board
process control block
protocol control block
PE
protecting earth, Schutzerde
PLC
programmable logic controller (deutsch SPS)
PWM
Pulsweitenmodulation
(Darstellung von 0..100% als relative An-Zeit eines digitalen Ausgangs)
rt
rot
R&D
Research and Development
RARP
Reverse Address Resolution Protocol
RDF
Resource Description Framework (W3C)
RISC
Reduced instruction set computer
RPC
Remote Procedure Call
RX
Receive, Empfang
sw
schwarz
SCK
SPI-Signal shift clock
SMC
Small memory card, kleine Speicherkarte bzw. Steckplatz / Slot dafür
SMTP
Simple Mail Transfer Protocol
SNTP
Simple Network Time Protocol
SPI
serial periphery interface
SPS
speicherprogrammierbare Steuerung (englisch PLC); kleines Automatisierungsgerät
(Leiterplatte)
(process / thread Datenstruktur, Betriebssystem)
(Verbindungsdatenstruktur bei lwIP)
weAut_01 — Benutzerhandbuch (DE 01)
45
SQL
Structured query language, Datenbankbearbeitungssprache
SSD
Start-of-Stream delimiter:
SSL
Secure Socket Layer. Protokollschicht zu Absicherung.
SSPI
Security Support Provider Interface
SVN
Subversion
TCP
Transmission Control Protocol
TM
Trade Mark (Warenzeichen)
TWI
Two Wire Interface (entspr. Philips® Inter-IC bzw. I2C bus)
TX
Transmit.; Senden
UDP
User Datagram Protocol
UL
Lastspannung; siehe LV
UML
Unified Modelling Language
URI
Uniform Resource Locator
UTP
Unshielded Twisted Pair wire
Vcc
Voltage Collector Collector; positive Versorgungsspannung (i.A. 5V oder 3,3V)
Vdd
Voltage Drain Drain; positive Versorgungsspannung (i.A. 3,3V oder 5V)
VTG
target voltage (i.A. via ISP; =VCC)
V, Vss, Veff Volt, ss: Spitze-Spitze / peak to peak, eff: effektiv (quadratischer Mittelwert)
W2K8
Betriebssystem Windows Server 2008 (MS)
W3
Amerikanische Kurzform für WWW
W3C
World Wide Web Consortium
WeAut Kurzform von weinert - automation (weinert-automation.de)
WebDAV Web-based Distributed Authoring and Versioning
WS
Workstation
WSDL Web Services Description Language
XML
46
eXtensible Markup Language
weAut_01 — Benutzerhandbuch (DE 01)
L
Literatur
[1]
Atmel Corporation,
8-bit Microcontroller with 16/32/64/128K Bytes In-System Programmable Flash
Atmega164A Atmega164PA Atmega324A Atmega324PA
Atmega644A Atmega644PA Atmega1284 Atmega1284P — Summary
(ausführlicher Überblick, atmel-Dokument 82725.pdf)
[2]
Atmel Corporation,
8-bit Microcontroller with 16/32/64K Bytes In-System Programmable Flash
Atmega164P Atmega324P ATmega644P — Automotive
(umfassendes Datenblatt, atmel-Dokument doc7674.pdf = db_atmega164p-324p-644p.pdf)
[3]
Atmel Corporation, 8-bit AVR Microcontrollers Application Note
AVR040: EMC Design Considerations
(atmel-Dokument doc1619.pdf)
[4]
Atmel Corporation, 8-bit AVR Microcontrollers Application Note
AVR042: AVR Hardware Design Considerations (atmel-Dokument doc2521.pdf)
[5]
Atmel Corporation, 8-bit AVR Microcontrollers Application Note
AVR109: AVR Self programming
(atmel-Dokument doc1644.pdf)
[6]
Atmel Corporation, 8-bit AVR Microcontrollers Application Note
AVR1308: Using the XMEGA TWI
(atmel-Dokument doc8054.pdf)
[7]
Atmel Corporation, 32-bit AVR Microcontrollers Application Note AVR32817:
Getting Started with the 32-bit AVR UC3 Software Framework lwIP TCP/IP Stack
(atmel-Dokument doc32817.pdf)
[8]
Atmel Corporation, 32-bit AVR Microcontrollers Application Note AVR32733:
Placing data and the heap in external SDRAM
(atmel-Dokument doc32121.pdf)
[9]
I2C-bus specification and user manual
User manual: UM10204.pdf
[10]
Allegro MicroSystems, Inc.
UDN2987x-6 DABIC-5 8-Channel Source Driver with Overcurrent Protection 2987-6.pdf
[11]
Microchip Technology Inc. ENC28J60
Data Sheet
Stand-Alone Ethernet Controller with SPI Interface
(Dokument 39662c.pdf)
[12]
Microchip Technology Inc., M. Simmons. Application Note AN 1120
Ethernet — Theory of Operation (Dokument 01120a.pdf)
[15]
NXP Semiconductors
Product Data Sheet
BCV27; BCV47 NPN Darlington transistors
(Dokument BCV27_BCV47.pdf)
[20]
William von Hagen
The definite guide to GCC
Rev. 03 — 19 June 2007
second edition, apress 2006
[22]
Sandra Loosemore, Richard M. Stallman, Roland McGrath,
Andrew Oram, Ulrich Drepper
The GNU C Library Reference Manual
Edition 0.12 last updated 2007-10-27
for version 2.8
(libc.pdf)
[23]
Adam Dunkels, SICS (Swedish Institute of Computer Science)
The uIP Embedded TCP/IP Stack The uIP 1.0 Reference Manual
June 2006 (uip-refman.pdf)
weAut_01 — Benutzerhandbuch (DE 01)
47
[24]
Adam Dunkels, SICS (Swedish Institute of Computer Science)
Full TCP/IP for 8-Bit Architectures 2003 (mobisys2003.pdf)
[25]
Adam Dunkels, SICS (Swedish Institute of Computer Science)
Design and Implementation of the lwIP TCP/IP Stack
2001 (lwip.pdf)
[26]
Adam Dunkels, SICS (Swedish Institute of Computer Science) et alii
Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded
Systems
2006 (dunkels06protothreads.pdf)
[27]
Sathyanarayanan Thammanur and Chris Borrelli (Xinilx)
TCP/IP on Virtex-II Pro Devices Using lwIP
XAPP663 (v1.1.1) August 30, 2004, (xapp663.pdf)
[41]
IEEE Standards Organisation
Guidelines for use of the 24-bit Organizationally Unique Identifiers (OUI) (eui.pdf)
[42]
IEEE Standards Organisation
Guidelines for use of a 48-bit Extended Unique Identifier (EUI-48™) (eui48.pdf)
[43]
Richard M. Stallman, et al.
GNU Coding Standards
(standards.pdf; updated January 27, 2011)
[44]
Richard M. Stallman, Roland McGrath, Paul D. Smith
GNU Make A Program for Directing Recompilation (Version 3.82 July 2010 make.pdf)
[45]
ANSI
International Standard ISO/IEC 9899:1999 (E)
Programming languages — C
(Second edition1999-12-01 ansi_c.pdf)
[51]
Maxim
Application Note 3969
(AN3969.pdf)
SD Media Format Expands the MAXQ2000's Space for Nonvolatile Data Storage
[52]
...
[53]
SD Group (Panasonic Corporation, SanDisk Corporation, Toshiba Corporation)
Technical Committee SD Card Association
SD Specifications, Part 1, Physical Layer, Simplified Specification Version 3.01
(May 18, 2010; Part_1_Physical_Layer_Simplified_Specification_Ver3.01_Final_100518.pdf)
48
weAut_01 — Benutzerhandbuch (DE 01)