SEm/labore/06 apb
(→Übertragung mit Hilfe des Komponenten APBUART) |
|||
(One intermediate revision by one user not shown) | |||
Line 5: | Line 5: | ||
== Einleitung == | == Einleitung == | ||
− | Dieses | + | Dieses Labor zeigt die Erstellung eines APB Komponenten basierend auf der GRLib. |
− | + | Dieser Komponent wird gebraucht um Taster zu lesen und LEDs zu steuern. | |
− | + | ||
== Analyse des APB Busses == | == Analyse des APB Busses == | ||
Line 15: | Line 14: | ||
Die Analyse des APB-Busses basiert auf folgender Schaltung. | Die Analyse des APB-Busses basiert auf folgender Schaltung. | ||
− | + | [[Image:SEm_ambaDesign.png|center|Schaltung zur Analyse des APB Busses]] | |
− | + | Das System wird durch die serielle Schnittstelle '''ahbuart''' gesteuert, welches ein Master des AMBA Busses ist. | |
− | Das System wird durch die serielle Schnittstelle '''ahbuart''' gesteuert, | + | Damit kann auf die andere serielle Schnittstelle, '''apbuart''', zugegriffen werden. |
− | welches ein Master des AMBA Busses ist. Damit kann die andere serielle Schnittstelle, | + | |
− | '''apbuart''', zugegriffen werden. | + | |
− | === | + | === Initialisierung des Masters AHBUART === |
− | + | {{TaskBox|content= | |
− | senden. Der '''ahbuart''' | + | Initialisieren Sie die Schaltung indem Sie den Charakter 55 h auf der RS232 Linie senden. |
− | herauszufinden. | + | Der '''ahbuart''' nützt es, um das Baudrate der seriellen Schnittstelle herauszufinden.}} |
=== Initializierung des Komponenten APBUART === | === Initializierung des Komponenten APBUART === | ||
− | + | {{TaskBox|content= | |
− | 8000.020C h. Dies wird mit Hilfe von der Sequenz C1 80000208 80001003 00000008 | + | Initialisieren Sie das Steuer- und das Baudrate-Register bei den Adressen 8000.0208 h und 8000.020C h. |
− | + | Dies wird mit Hilfe von der Sequenz <code>C1 80000208 80001003 00000008</code> durchgeführt.}} | |
− | In der Simulation | + | {{TaskBox|content= |
− | '''r.brate''' des Komponenten '''apbuart'''. | + | In der Simulation folgen Sie den Änderungen der Register '''r.rxen''' und '''r.brate''' des Komponenten '''apbuart'''.}} |
− | === | + | === Übertragung mit Hilfe des Komponenten APBUART === |
− | Starten Sie das Senden eines Charakters auf der seriellen Schnittstelle, indem Sie | + | {{TaskBox|content= |
− | dessen ASCII-Code | + | Starten Sie das Senden eines Charakters auf der seriellen Schnittstelle, indem Sie dessen ASCII-Code zur Adresse 8000.0200 h schreiben.}} |
− | In der Simulation, stellen Sie die | + | {{TaskBox|content= |
− | fest und folgen Sie | + | In der Simulation, stellen Sie die Senden des Charakters auf der seriellen Linie fest und folgen Sie den Änderungen der Register '''r.tcnt''' und '''r.thold''' des Komponenten '''apbuart'''.}} |
− | '''r.thold''' des Komponenten '''apbuart'''. | + | |
− | === Lesen des Status | + | === Lesen des Status des dem Komponenten APBUART === |
− | Lesen Sie das Statusregister des Komponenten, indem sie ein Wort bei Adresse 8000.0204 h | + | {{TaskBox|content= |
− | lesen. Dies wird mit Hilfe | + | Lesen Sie das Statusregister des Komponenten, indem sie ein Wort bei Adresse 8000.0204 h lesen. Dies wird mit Hilfe der Sequenz <code>80 80000204</code> durchgeführt.}} |
− | + | {{TaskBox|content= | |
+ | Analysieren Sie in der Simulation den zurückgelesenen Wert.}} | ||
− | Senden Sie einige Charakter auf der Linie '''rxd1''', d.h. auf dem | + | {{TaskBox|content= |
− | seriellen Eingang des Komponenten '''apbuart'''. | + | Senden Sie einige Charakter auf der Linie '''rxd1''', d.h. auf dem seriellen Eingang des Komponenten '''apbuart'''.}} |
− | + | {{TaskBox|content= | |
− | '''r.rhold''' des Komponenten '''apbuart'''. | + | Folgen Sie in der Simulation den Änderungen der Register '''r.rcnt''' und '''r.rhold''' des Komponenten '''apbuart'''.}} |
− | Lesen Sie erneut das Statusregister des Komponenten und | + | {{TaskBox|content= |
− | dem | + | Lesen Sie erneut das Statusregister des Komponenten und erklären Sie den Unterschied mit dem ersten Leseergebnis.}} |
=== Signale des APB Busses === | === Signale des APB Busses === | ||
− | + | {{TaskBox|content= | |
+ | Folgen Sie in der Simulation dem Datentransfer auf dem APB Bus.}} | ||
− | + | {{TaskBox|content= | |
− | '''apbo'''. | + | Erstellen Sie die Liste der Signale in den Typen '''apbi''' und '''apbo'''.}} |
− | Zeichen Sie | + | {{TaskBox|content= |
+ | Zeichen Sie einen Lese- und einen Schreibe-Zyklus eines APB Komponentes.}} | ||
=== Index und Adressen === | === Index und Adressen === | ||
− | Untersuchen Sie | + | {{TaskBox|content= |
− | die | + | Untersuchen Sie den VHDL-Code des Komponenten '''apbuart''' und finden Sie die Übereinstimmungen von '''pconfig'''. |
− | dient. | + | Bestimmen Sie, wozu dieses dient.}} |
− | Untersuchen Sie | + | {{TaskBox|content= |
− | die | + | Untersuchen Sie den VHDL-Code des Komponenten '''apbuart''' und finden Sie die Übereinstimmungen von '''pindex'''. |
− | AHB/APB | + | Erklären Sie, wie der Komponent der AHB/APB Brücke ('''apbctrl''') seinen Index übermittelt.}} |
− | + | Der Teil '''report_version''' erlaubt es, eine Mitteilung am Anfang der Simulation anzuzeigen. | |
− | Simulation anzuzeigen. | + | Der Code zwischen den Pragmas '''translate_off''' und '''translate_on''' wird vom Synthese-Tool ignoriert und nicht synthetisiert. |
− | '''translate_on''' | + | |
== Erstellung des APB Komponenten == | == Erstellung des APB Komponenten == | ||
− | + | Der zu erstellende Komponent wird dazu dienen, auf der Testplatte Schalter zu lesen und LEDs zu steuern.. | |
− | LEDs zu steuern.. | + | |
=== Registerplan === | === Registerplan === | ||
− | + | Der Komponent hat 2 Register: | |
* Das Register mit dem Zustand der Schalter bei Adresse 0x0 | * Das Register mit dem Zustand der Schalter bei Adresse 0x0 | ||
* Das Register mit dem Steuerwert der LEDs bei Adresse 0x4 | * Das Register mit dem Steuerwert der LEDs bei Adresse 0x4 | ||
− | Die LSBs von jedem Register geben den Zustand oder den Steuerwert der jeweiligen Ein- | + | Die LSBs von jedem Register geben den Zustand oder den Steuerwert der jeweiligen Ein- und Ausgänge (Schalter oder LEDs). |
− | und | + | |
=== Schaltung === | === Schaltung === | ||
− | + | Der Komponent hat folgende generischen Parameter: | |
− | Bus | + | |
+ | * '''pindex''': seinen Index auf dem APB Bus | ||
+ | * '''paddr''' und '''pmask''': die Parameter, welche bestimmen, bei welchen Bus-Adressen sich der Komponent befindet | ||
+ | * '''buttonnb''': die Anzahl Schalter welche an den Komponenten angeschlossen sind | ||
+ | * '''lednb''': die Anzahl LEDs welche vom Komponenten gesteuert werden | ||
− | + | {{TaskBox|content= | |
− | + | Erstellen Sie im Block '''gr_beamer''' einen neuen Komponenten, welcher am APB Bus angeschlossen ist.}} | |
− | + | ||
− | + | ||
− | Bringen Sie die Schalter- | + | {{TaskBox|content= |
− | '''gr_beamer''' Blocks. | + | Bringen Sie die Schalter-Eingänge und die LED-Ausgänge an die Ports des '''gr_beamer''' Blocks.}} |
− | Schreiben Sie | + | {{TaskBox|content= |
+ | Schreiben Sie den VHDL-Code des neuen APB Komponenten.}} | ||
− | Im Block '''beamer''', ziehen Sie die neuen Ein- und | + | {{TaskBox|content= |
− | Komponenten '''gr_beamer''' auf | + | Im Block '''beamer''', ziehen Sie die neuen Ein- und Ausgängen des Komponenten '''gr_beamer''' auf die Ports dieses Blocks.}} |
=== Simulation === | === Simulation === | ||
− | + | {{TaskBox|content= | |
− | Komponenten sicherzustellen. | + | Führen Sie eine Simulation des Systems durch, um die Funktionalität des neuen APB Komponenten sicherzustellen.}} |
{{navNamed|left=SEm/labore/05_amba|left_name=05 AMBA-Bus basiertes System|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/07_oszillo|right_name=07 Oszillo Peripheriebaustein}} | {{navNamed|left=SEm/labore/05_amba|left_name=05 AMBA-Bus basiertes System|up=SEm/labore|up_name=Anleitung auf Deutsch|right=SEm/labore/07_oszillo|right_name=07 Oszillo Peripheriebaustein}} | ||
[[Category:SEm]] | [[Category:SEm]] |
Latest revision as of 23:10, 19 June 2013
|
APB Komponent
Einleitung
Dieses Labor zeigt die Erstellung eines APB Komponenten basierend auf der GRLib. Dieser Komponent wird gebraucht um Taster zu lesen und LEDs zu steuern.
Analyse des APB Busses
Schaltung
Die Analyse des APB-Busses basiert auf folgender Schaltung.
Das System wird durch die serielle Schnittstelle ahbuart gesteuert, welches ein Master des AMBA Busses ist. Damit kann auf die andere serielle Schnittstelle, apbuart, zugegriffen werden.
Initialisierung des Masters AHBUART
Initializierung des Komponenten APBUART
Übertragung mit Hilfe des Komponenten APBUART
Lesen des Status des dem Komponenten APBUART
Signale des APB Busses
Index und Adressen
Der Teil report_version erlaubt es, eine Mitteilung am Anfang der Simulation anzuzeigen. Der Code zwischen den Pragmas translate_off und translate_on wird vom Synthese-Tool ignoriert und nicht synthetisiert.
Erstellung des APB Komponenten
Der zu erstellende Komponent wird dazu dienen, auf der Testplatte Schalter zu lesen und LEDs zu steuern..
Registerplan
Der Komponent hat 2 Register:
- Das Register mit dem Zustand der Schalter bei Adresse 0x0
- Das Register mit dem Steuerwert der LEDs bei Adresse 0x4
Die LSBs von jedem Register geben den Zustand oder den Steuerwert der jeweiligen Ein- und Ausgänge (Schalter oder LEDs).
Schaltung
Der Komponent hat folgende generischen Parameter:
- pindex: seinen Index auf dem APB Bus
- paddr und pmask: die Parameter, welche bestimmen, bei welchen Bus-Adressen sich der Komponent befindet
- buttonnb: die Anzahl Schalter welche an den Komponenten angeschlossen sind
- lednb: die Anzahl LEDs welche vom Komponenten gesteuert werden
Simulation
Navigation
05 AMBA-Bus basiertes System
Anleitung auf Deutsch
07 Oszillo Peripheriebaustein