Personal Fabrication Digitale Welt

Slides:



Advertisements
Ähnliche Präsentationen
Organisatorisches Die * bzw. ** Aufgaben müssen gelöst werden, da sie später wieder gebraucht werden. Musterlösungen werden zwei Wochen nach den Übungsblättern.
Advertisements

Entwicklung des Attiny-Boards Version 1.0 – 2.1 Prototyp.
Vom HW-Automaten zum Prozessor
2.3 Register-Transfer-Strukturen
Vom Steinzeitmonitor bis
MC WS07 J. Walter. MC Einführung Organisatorisches Einsätze – Beispiele Mikrocontroller.
Entwicklung des Attiny-Boards
Atmel AVR JTAG Einführung
Java: Grundlagen der Sprache
Teil 5: Embedded Systems
W. Oberschelp G. Vossen Kapitel 7.
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 12.1.
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Einführung in Visual C++
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Der Transistor Proseminar Basisinformationstechnologie
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
2.3 Register-Transfer-Strukturen
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zwischenpräsentation
Aufbau und Funktionsweise
Präsentation von Alexander Schönfeld
© Roland Angst, 2010Institute of Visual Computing Informatik I for D-MAVT Exercise Session 1.
Die Geschichte des Computers
Quelle: Fachreferat von Mathias Herbst 1.
Betriebssysteme & BIOS
3.2 Grundlegende digitale logische Schaltungen
3.4 CPU-Chips und Busse CPU-Chips
© Béat Hirsbrunner, University of Fribourg, Switzerland
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Embedded Systems Prof. Dr. H. Kristl
Das Binär-System Alles ist davon abhängig, ob Strom fließt oder nicht!
Eine Fernsteuerung für den Lego EV3 Roboter
Anwendung von Microcontollern
Multiprozessoren: Herausforderung für die Software
Programmieren in Assembler
Rechnerarchitekturen
Personal Fabrication Opamps
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter „EVA-WAS-Quickie“ Eingabe – Verarbeitung - Ausgabe.
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Personal Fabrication Drahtgebundene Kommunikation
Entwicklung des Attiny-Boards
Mikrocomputertechnik Jürgen Walter
Raspberry Pi Einführung
Aufbau, Funktion und Grundzusammenhänge
Institut für Angewandte Mikroelektronik und Datentechnik Course and Contest Results of Phase 5 Eike Schweißguth Selected Topics in VLSI Design (Module.
Projektarbeit – SS08 Kai Aras

Chair-Woei Miu Smartcards SMARTCARDS Wie sicher sind sie wirklich?
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Fragen.  Hardwarekomponenten sind die Bestandteile eines Computers, die Sie sehen und anfassen können.
Markus Heller, M.A. (DL8RDS)Datum: Folie Nummer 1 File: Einsatz von Mikrocontrollern in Amateurfunkprojekten Microcontroller in Selbstbauprojekten.
Programmieren in C / C++ ESP8266-Boards und das Internet der Dinge
C / C++ für das Internet der Dinge und Hausautomatisierung Arduino Uno / Nano / … Input, Interrupts, Timer, Sleepmode Hochschule Fulda – FB AI Sommersemester.
Erste Schritte im Internet of Things
Inhaltsverzeichnis Was ist Arduino? Hardwarekomponenten
Projektmodul DM Kurze Einführung Arduino und Arduino-Programmierung
System-on-Chip zur Steuerung von Messsystemen
Vom HW-Automaten zum Prozessor
Vom Transistor zum HW-Automaten
Aufbau und Anwendungen von Mikrokontrollern
מבוא למערכות מחשב ואסמבלי
 Präsentation transkript:

Personal Fabrication Digitale Welt DIY Personal Fabrication Digitale Welt `` Juergen Eckert – Informatik 7

Fahrplan Mikrocontroller FPGAs (sehr knapp) Getting started... Übung Hands on Glühwein und Plätzchen 14.1. Gastvortrag: Michael Huth, Uni Eichstätt-Ingolstadt Titel: Sharing Economy und Open Hardware – eine sozialwissenschaftliche Betrachtung

Entwicklung 1947: Transistoren, Bell Labs 1958: Jack Kilby, Erfinder des Integrierten Schaltkreises (IC), Texas Instruments. 1960er: Logikgatter beinhalten mehrere Transistoren in einem Chip UND, ODER, NICHT, ... Transistor-Transistor-Logik (TTL): 74xx Serie Complementary metal-oxide-semiconductor (CMOS) auf MOSFET Basis: 40xx Serie 1970er: Digitale Prozessoren 1971: Intel i4004 Mikroprozessor 1972: TMS1000 Mikrocontroller

Digitale Prozessoren Mikroprozessor Mikrocontroller Universell einsetzbar (z.B. Laptop, CPUs) Schnell, ben. viel Energie Viele externe Komponenten Spezifische Anwendung (z.B. Wandthermometer) Langsam, energiesparend Single-Chip Lösung TI erhält “Computer-On-A-Chip” Patent in 1973 (71 beantragt) Grenzen sind verwaschen

Mikrocontroller ATtiny85, Atmel Hardware Unterstützung Single-Chip Low-Power CMOS 8bit AVR erweiterte RISC Architektur Wichtige Mikrocontroller Komponenten

Reduced Instruction Set Computer RISC Ursprung: Komfortabler Befehlssatz für die Assemblerprogrammierung (1980) Schnell ausführbare Befehle; meist 1 Takt Wenige Befehle Konstante Länge Keine Spezialbefehle General-Purpose Register

Kernstruktur Programmzähler (Program Counter) Zeigt auf aktuelle Stelle im Programm Code (Flash, persistent, 10000 Write/Erase Cycles) Stapelzeiger (Stack Pointer) Zeigt auf oberstes Element des Aufrufstapels (Stack, beinhaltet Sprungadressen, Variablen, ...) Arithmetisch-logische Einheit (ALU) Rechenkern Minimalst: Addieren, negieren und konjugieren Erweitert: Subtrahieren, multiplizieren, vergleichen, ... (können durch Minimalfunktionalität auf kosten der Rechenzeit nachgebildet werden)

Workflow Übliche Programmiersprache C Andere Sprachen möglich: Assembler, Basic, C++, Javascript, Python, ... Bibliotheken .a = Sammlung an .o Files .elf= GNU executable

Bsp: 2 Zahlen aus dem SRAM addieren avrTest.c #include <avr/io.h> uint8_t a=20, b=32, res; int main(void){res=a+b;} # avr-gcc -save-temps -mmcu=attiny85 avrTest.c Speichert Zwischenschritte ab

Bsp Fortgesetzt: Assembler Resultat Siehe Datenblatt nächste Folie avrTest.s -- Auszug lds r25,a lds r24,b add r24,r25 sts res,r24 ALU hat keinen direkten Zugriff auf SRAM Werte müssen in Registern zwischengespeichert werden Benötigt 7 Takte 2 Takte Werte in Register laden 2 Takte Addieren 1 Takt 2 Takte Resultat zurück ins SRAM schreiben

Bsp Fortgesetzt: Objekt / EFL File # avr-gcc -g -mmcu=attiny85 -o avrTest.elf avrTest.o AVR Befehle, deren Struktur und Zeit siehe Datenblatt: 8-bit AVR Instruction Set, ATMEL http://www.atmel.com/images/doc0856.pdf

BSP Fortgesetzt: Binary Strom avrTest.elf ... 90 91 60 00 80 91 61 00 89 0f 80 93 62 00 ... Instruktionen in Word (16bit) AVR verwenden Little Endian Byteorder Byte 1. 2. 0xABCD -> 0xCD 0xAB

BSP Fortgesetzt: Binary Strom avrTest.elf ... 90 91 60 00 80 91 61 00 89 0f 80 93 62 00 ... add r24,r25 2410 = 1816 = 110002 2510 = 1916 = 110012

BSP Fortgesetzt: Binary Strom avrTest.elf ... 90 91 60 00 80 91 61 00 89 0f 80 93 62 00 ... Platzhalter im Assemblercode lds r25,a a = 006016 (= SRAM Startadresse)

BSP Fortgesetzt: Binary Strom avrTest.elf ... 90 91 60 00 80 91 61 00 89 0f 80 93 62 00 ... Platzhalter im Assemblercode lds r24,b b = 006116 (= SRAM Startadresse + 1)

BSP Fortgesetzt: Binary Strom avrTest.elf ... 90 91 60 00 80 91 61 00 89 0f 80 93 62 00 ... Platzhalter im Assemblercode sts res,r24 res = 006216 (= SRAM Startadresse + 2)

HEX File - Uploadbare Datei # avr-objcopy -j .text -j .data -O ihex avrTest.elf avrTest.hex Binäre ELF Datei enthält zu viele (unnötige) Informationen (wie verwendet Lib-Versionen) Flashspeicher extrahieren und in Intel HEX Format bereit stellen :100000000EC028C027C026C025C024C023C022C0DF :1000100021C020C01FC01EC01DC01CC01BC0112499 :100020001FBECFE5D2E0DEBFCDBF10E0A0E6B0E05E :10003000E6E7F0E002C005900D92A236B107D9F7CD :1000400020E0A2E6B0E001C01D92A336B207E1F7BE :1000500002D00FC0D5CFCF93DF93CDB7DEB790914D :10006000600080916100890F80936200DF91CF91E1 :060070000895F894FFCF93 :02007600142054 :00000001FF ???

Uploaden / Fashen / Brennen / … In-Circuit Serial Programming (ICSP) Mikrocontroller werden üblicherweise erst programmiert, wenn sie auf die Platine gelötet wurden In-System Programming (ISP) Joint Test Action Group (JTAG) auch zum debuggen Bootloader (Vor-) Installierter Code lädt HEX Datei in Flash und führt es aus Seriell, USB, SD-Karte, ... AVR Dragon: ISP + JTAG

Meine Programmer VOR 2000 (damals kosteten Progammer ein Vermögen!): KEINE DIY Programmer!! Nur original Programmer verwenden Spannungsanpassung, Schaltungsschutz Technischer Support (...es funktioniert einfach) Günstig (AVR MKII ab 30 Euro, keinen Klon kaufen) Meine Programmer VOR 2000 (damals kosteten Progammer ein Vermögen!): AVR PIC

Mikrocontroller w/o the pain: Arduino 2. AVR ATmega Open Source and Hardware „Download, Plug and Play“ Bootloader (USB) Viele Libraries und Boards 1. USB 22Euro Kleiner ab 10€ Foto: Wikipedia

Allzweckeingabe/-ausgabe (GPIO, General Purpose Input/Output) Ausgang: Tri-state Hohes Potential (Prozessorspannung z.B. 5V) Niedriges Potential (GND) Hochohmig (deaktiviert) Open-Collector / Open-Drain Ausgang ist Kollektor oder Drain eines Transistors/Mosfets Aktiv = GND Nicht Aktiv = Hochohmig; meist in Kombination mit Pull-up Achtung: Maximale Pin-Spannung beachten Maximale Ströme beachten („einige mA“) Meist mehr „Sink current“ (Strom in den Mikrocontroller) als „Source current“ (Strom aus dem Mikrocontroller) AVR

Allzweckeingabe/-ausgabe (GPIO, General Purpose Input/Output) Eingang: Zustand <VIL: low / 0 (z.B. 0.3VCC, ATtiny) >VIH: high / 1 (z.B. 0.6VCC, ATtiny) Dazwischen keine Zustandsänderung Maximale Spannungen beachten!! (z.B. AVR Pin ∈ [-0.5V;VCC+0.5V]) Beschaltung (Mikrocontroller intern) Floating: „unendliche“ Eingangsimpedanz (ähnlich zu Gate bei Mosfet) Pull-Up: Hochohmiger Widerstand (10k-100kOhm) nach VCC Pull-Down: Hochohmiger Widerstand nach GND Pull-Up-Down: Je nach Widerstandverhältnis stellt sich ein Mittelwert ein (unbelastet) AVR

Bsp: LED-Taster Taster: Pin 12 und GND LED: Pin 13 und GND (mit Vorwiderstand) Wenn der Taster gedrückt wird, leuchtet die LED Max. Verzögerung: X ns Max. Verzögerung mit 2 Taster und 2 LEDs : 2X ns 4 Taster+LEDs: 4X ns … CPU Zeit zu 100% belegt

Field Programmable Gate Array (FPGA) Sehr komplex Field Programmable Gate Array (FPGA) Hardware programmieren (Schaltungsstrukturen) Verilog HDL VHDL Extrem flexible und schnell Keine eigene Funktionalität Nur digitale GPIOs Schaltmatrix: Verbindungsstruktur zwischen Logikblöcken (LB) Konfiguration wird bei Systemstart von externen Flash geladen Flash Memory IO IO IO LB LB IO IO Foto: Wikipedia LB LB IO IO IO Logikblock

FPGA: Taster-Led Bsp Mikrocontroller FPGA MAX_BUTTONS mal: for(i=0; i<MAX_BUTTONS; i++) { digitalWrite(led[i], !digitalRead(button[i])); } Pull-up nicht dargestellt Je mehr Aufgaben erledigt werden müssen desto langsamer ist er Massive Parallelität Egal wie viele LEDs-Taster, Latenz ist immer gleich (instantan)

Interrupts Auf (externe) Ereignisse muss nicht aktiv gewartet werden (pollen) (Externe) Ereignisse können nicht linearen Code (Interrupt Service Routine, ISR) zur Ausführung bringen Foto: http://mlab.taik.fi Ein Mikrocontroller hat noch wesentlich mehr Hardware Support, mehr dazu das nächste Mal

Attiny 85 Interrupt Alternative zu Arduino: GNU Toolchain: avr-gcc + avr-libc (WinAVR, CrossPack AVR) + Eclipse Plugin AVR Studio (ATMEL)

Interrupt Zeitverlauf PROBLEM! Interrupt Interrupt Interrupt Interrupt Lineares Programm t Interrupt Routine Interrupt Routinen bei AVR nicht verdrängbar, bei komplexeren CPUs ist dies möglich (Priorisierung) Interrupt Routinen so kurz wie möglich (kein aktives Warten, siehe Folie zuvor) Interrupts können verloren gehen

Arduino Alternativen Quick (and Dirty) Hacks Development Sehr weit abstrahiert (it just works) Gut zum lernen Viele Libraries mit einem Klick geladen Vordefinierte DEV-Boards mit bestimmten Typen (groß, energiehungrig und teuer) Arduino Code auf eigenem Board möglich (umständlich, Einschränkungen?) Eigener Code auf Arduino Board (ohne Probleme) AVRs ab 1Euro!!

Glaubenskrieg: AVR ↔︎ PIC PIC Microchip AVR (ATMEL) Alternative Gleicher Preis- und Leistungsbereich Mehr Variationen: >600 verschiedene Chips Kostenloser C-Compiler Foto: Wikipedia Glaubenskrieg: AVR ↔︎ PIC Im Prinzip ist es egal...

LPC NxP 32bit Prozessor, ARM Cortex-M0+ (bis M3) Mehr Speicher, schneller, weniger Stromverbraucht, gleicher Preis (im Vgl. zu AVR) Frei Entwicklungsumgebung (Win, OS X, Linux) Programmer und Debugger in Dev-Board enthalten (funktioniert auch für selbstgebaute Designs) Arduino Header Für Einsteiger schwer Foto: Embedded Artists Alternative: STMicroelectronics 25 Euro

Even more Boards Espruino ESP8266 72Mhz ARM (ST) Kickstarter Projekt Javascript mit Konsole!! Xtensa LX3 32bit @ 80Mhz WiFi per AT Befehle für 3€!! Chinamodul ohne Doku! Software Entwicklung: SDK instabil! Nur für Experten!! Foto: Espruino Foto: Hackaday

Nächstes mal bei DIY… Kommunikation UART SPI I2C Jetzt in Übung Boards Hands on: LPC1769, LPC11U68, Arduino Leonardo, ESP8266, Espruino, Papilio Pro Glühwein (auch Antialk) und Plätzchen