Planung

Planung WS18/19, Stand 2018-10-29
Am 31. Oktober Praktikum (!) an den Teminen Pa und Pb

Inhalt WS18/19

Mit dem WS18/19 hat sich der Schwerpunktdes Moduls gegenüber den Vorjahren deutlich verändert.
Bisher stand das Verständnis eines USB-Device (z.B. Messgerät) im Vordergrund. Im Praktikum wurde ohne weitere Unterstützung durch Herstellerbibliotheken ein USB-Makro (die Hardware zur USB-Schnittstelle in einem µC) sowit in Betrieb gesetzt, dass der Host (z.B. Notebook) über USB mit dem Gerät Daten austauschen konnte.
Mit dem WS18/19 wird dieser Teil - der sogenannte USB-Stack - als vom Hersteller oder einem Drittanbieter gegeben vorausgesetzt. Im Vordergrund stehen jetzt fortgechrittenere Techniken in C (z.B. Funktionszeiger), um eine derart komplexe Hilfssoftware erfolgreich in ein eigenes Projekt einbinden zu können.
Am Ende ist es wieder möglich, zwischen dem Host und dem Device Daten auszutauschen, aber jetzt mit sehr viel mehr Bequemlichkeit auf seiten des Geräts (µC).


Skripte

VL 1-3, Speicher: Version 1.1, 2019-02-02
VL 4-5, Speicher/C: Version 1, 2018-10-26
VL 10, USB Stack: Version 1, 2018-11-21

Praktikum

Praktikumsunterlagen

Inhalt

Datei

Bemerkungen

Informationsblatt Versuchsumgebung/Board Infoblatt Board FRDM K28F Kurzbeschreibung des Boards, soweit für die Versuche nötig
Troubleshooting MCUXpresso Config Tools Installationshilfe Config Tools 4.1 Hinweise zum erstmaligen Aufruf der Config Tools
V2 Arbeitsblatt V2 Arbeitsblatt Zur Vorbereitung des 2. Versuchs (erste eigenständige Vorbereitung)
V2 Projektsammlung Projektsammlung V2 Archiv mit Projekten für V2 für MCUXpresso zur Vorbereitung
V2 Lösung V2 Lösung Der angegebene Programmcode ist eine von vielen Möglichkeiten.
U1 Arbeitsblatt U1 Arbeitsblatt Arbeitsblatt zur Übung in C. Visual Studio am PC genügt.
U1 Projektsammlung Projektsammlung Übung 1 Archiv mit Projekten für Visual Studio 2017, inklusive Testprogramme
U1 Lösung U1 Lösung
U1 Projekt mit Lösung zur letzten Aufgabe Projekt mit Lösung
V3 Arbeitsblatt V3 Arbeitsblatt Zur Vorbereitung des 3. Versuchs
V3 Projekt Projekt V3 Archiv mit Projekt für V3 für MCUXpresso zur Vorbereitung
V3 Lösung V3 Lösung (Fragen) Antworten zu V3
V3 Projekt V3 Lösung (Programm) Archiv mit einer Lösung zu V3 (Programm)
V4 Arbeitsblatt V4 Arbeitsblatt Zur Vorbereitung des 4. Versuchs
V4 Projekte Projekte V4 Archiv mit Projekten für V4 für MCUXpresso zur Vorbereitung

Werkzeuge

Entwicklungswerkzeuge

Die Programme MCUXpresso (benötigt) und MCUXpresso Config Tools (optional) können in der jeweilig aktuellen Version bei NXP heruntergeladen werden. Dazu ist eine Anmeldung erforderlich.
Ein passendes SDK für das Board FRDM-K28F kann man sich dort erzeugen lassen und es dann herunterladen.
Die Anleitungen für die SW finden Sie auch hier:

MCUXpresso User Manual
Config Tools User Manual
Installation Guide (MCUXpresso) Guide

Allgemeine Hilfen

USB TreeView

Sehr informative Darstellung aller aktuell an einen PC angeschlossenen USB-Geräte.
Das Programm ist im Original für MS-Windows entwickelt worden. Für Linux gibt es eine Adapation, von mir nicht getestet.

Windows: Download
Linux: Externer Link

Literatur

µC-spezifisch (Praktikum)

User Manual MK28FN2x, Rev. 4

Entält die für das Verständnis der Funktion der Module auf dem µC nötige Information. Der Hersteller liefert einen ganzen Satz von C-Funktionen (in der Regel eine Quelldatei pro Modul) mit, um übliche Aufgaben mit vordefinierten C-Funktionen lösen zu können.
Ein typisches Beispiel ist die Einstellung der Eigenschaften eines Pin und, sofern er als GPIO konfiguriert ist, die Einstellung der Richtung sowie die das Einlesen ode Ausgeben von Werten. Oft sind die Funktionen selbsterklärend, so dass man das Manual gar nicht benötigt.
PDF-Datei: Download

Development Board

Imn Praktkum wird ein fertiges Board (FRDM K28F) des Herstellers eingesetzt. Das kann man sich ausleihen oder, bei längerem Interesse, auch kaufen.
Für Interessierte hier die Dokumentation: Archiv, inkl. Schaltplan

USB

USB Organization

Webauftritt der USB Standard Organization. Enthält unter anderem alle offiziellen Standards
Speziell interessant das Unterverzeichnis Developers, dort finden sich auch Tools.
Die Standards sind die Referenz, allerdings zum Selbststudium eher ungeeignet. Dort sieht man nach, wenn man ein Detail wissen möchte.
Das gilt nicht für den USB selbst, sondern auch für die bisher standardisierten Klassen, z.B. HID. Die Klassenstandards enthalten in der Regel auch Beispiele am Ende, d.h. funktionsfähige Deskriptoren.
Man kann damit entweder schnell ein funktionsfähiges Gerät deklarieren (zum Test) oder auch einfach das eigene Verständnis testen.
Link: USB Org

Lakeview Research (Axelson)

Webauftritt von Jan Axelson. Axelson dürfte der englischsprachige Autor über den USB sein.
Er schreibt swowohl über den USB allgemein (USB Complete Series, aktuell ist die 4. Ausgabe) als auch Einzelthemen dazu.
Eine interessante Lektüre ist z.B. USB Mass Storage. Die Bücher können in vielen Fällen als Ersatz für den Standard genommen werden, zumindest soweit es um die Software geht.
Darüber hinaus behandelt USB Complete auch sinnvolle Themen außerhalb des Standards, z.B. das Einbinden und Ansprechen der Geräte unter Windows.
Es gibt auch eine deutsche Ausgabe, zumindest bis zur 2. Ausgabe - die genügt völlig.
Link: Lakeview Research

USB in a Nutshell (Peacock)

Eine hervorragende Kurzfassung zum USB aus SW-Entwicklersicht von Craig Peacock (30 Seiten!).
Dieses Dokument holt aus dem Standard alles Wesentliche für den Firmwareentwickler bis zur Enumeration. Das ist die beste mir bekannte Zusammenfassung, denn man benötigt tatsächlich 80% dessen, was beschrieben wird - und auch nicht mehr!
Die restlichen 20% sind auch nicht unnütz, nur benötigt die eine reiner Softwareentwickler eben nicht, zum Lesen trotzdem ebenfalls empfehlenswert.
PDF-Datei: Download
Link: Beyond Logic (Webauftritt)