====== USB Background Debugging Interface (USB-BDI) ====== Das USB-BDI Interface erlaubt den Zugriff von einem Hostrechner über eine USB Schnittstelle zum mpc555 als Target Prozessor. Von diesem Interface existieren zwei Varianten: Die Revision 1 (mit einer grünen Leiterplatte) und die Revision 2 (mit einer roten Leiterplatte). ===== Beschreibung ===== Das Herz des Interfaces bildet der PX2LP USB Mikrocontroller von Cypress. Da dieser jedoch kein SPI unterstützt, wird für die Kommunikation mit dem MPC555 ein externer SPI-Controller eingesetzt. Für eine effiziente Kommunikation mit dem MPC555 werden die BDI-Kommandos direkt und ohne Änderung via SPI zum Prozessor durchgeschleift. Das Resultat wird in umgekehrter Reihenfolge ebenfalls direkt durchgeschleift. ===== Übersicht (Rev. 1) ===== [{{ .:usb-bdi_top.jpg?300px&direct|NTB USB-BDI Rev. 1 für MPC555}}] - Board Power LED (grün) - USB Power LED (weiss) - Debug Mode LED (blau): Leuchtet, wenn sich der Prozessor im Debug Modus befindet. - BDI Live LED (gelb): Blinkt, wenn das BDI korrekt läuft. - USB Mode LED (gelb): Leuchtet, wenn das BDI an einer USB 2 oder 3 Schnittstelle angeschlossen ist. - USB-Power-Jumper: Ist der Jumper vorhanden, wird das BDI über die USB-Schnittstelle versorgt. - Target-Power-Jumper: Ist der Jumper vorhanden, wird das BDI vom Target versorgt. - EEPROM-Jumper: Muss immer gesteckt sein! - Reset-Taster: Startet das BDI neu. ===== Übersicht (Rev. 2) ===== [{{ .:usb-bdi-rev2_top.jpg?300px&direct|NTB USB-BDI Rev. 2 für MPC555}}] - USB Power LED (weiss) - USB Mode LED (gelb): Leuchtet, wenn das BDI an einer USB 2 oder 3 Schnittstelle angeschlossen ist. - BDI Live LED (gelb): Blinkt, wenn das BDI korrekt läuft. - BKPT LED (gelb): Leuchtet wenn beim debuggen des BDI ein Breakpoint gesetzt wird. (nicht beim Debugen des MPC555) - Freeze Mode LED (blau): Leuchtet, wenn sich der Prozessor im Debug Modus befindet. - Board Power LED (grün) - Power-Jumper: Ist der Jumper auf der Stellung 1/2, wird das BDI über USB versorgt. Ist der Jumper auf der Stellung 2/3 (wie auf dem Foto abgebildet), so wird das BDI vom Headerboard versorgt. - EEPROM-Jumper: Muss immer gesteckt sein! - Reset-Taster: Startet das BDI neu. ===== Schema und Datenblätter ===== * {{.:usb-bdi-mpc555_rev1.pdf|Schema für USB-BDI Rev. 1}} * {{.:usb-bdi-mpc555-rev2.pdf|Schema für USB-BDI Rev. 2}} * {{:embedded_systems:mpc555:datasheetcy7c68013a.pdf|EZ-USB FX2LP CY7C68013A Datenblatt}} * {{:embedded_systems:mpc555:usermanualcy7c6801xa.pdf|EZ-USB FX2LP CY7C68013A Users Manual}} ===== Firmware ===== Eine detailierte Beschreibung der Firmware ist [[http://wiki.ntb.ch/externalData/doxygen/bdi_firmware/index.html|hier]] verfügbar. ===== Treiber ===== Der Treiber, für das mit der Firmware geladenen BDI ist im [[software:inf_win_driver_package:start|INF Win Driver Package]] enthalten. Falls Sie als Student ein BDI erhalten haben, das keine Firmware besitzt, versuchen Sie nicht diese selbst zu laden, sondern melden Sie sich bei den Mitarbeitern des Instituts für Ingenieurinformatik. ===== Firmware Programmieren und Downloaden ===== ==== Benötigte Komponenten ==== * [[http://sdcc.sourceforge.net/ |SDCC Compiler]] (auch im [[http://www.ntb.ch/ntb/kiosk | Kiosk]] verfügbar, getestet mit Version 3.0.0 & 3.3.0) * [[http://www.mingw.org/|MinGW]] (auch im [[http://www.ntb.ch/ntb/kiosk | Kiosk]] verfügbar, getestet mit Version 5.1.6) * [[http://gnuwin32.sourceforge.net/ | GNU Core Utils for Windows (GnuWin)]] (auch im [[http://www.ntb.ch/ntb/kiosk | Kiosk]] verfügbar, getestet mit Version 5.3.0) * [[http://www.cypress.com/?rID=14321|Cypress CY3684 EZ-USB FX2LP Development Kit]] (getestet mit Version 1.7.0.2) * {{:embedded_systems:mpc555:hex2bix.rar|Hex2Bix}} * {{:embedded_systems:mpc555:cyusbdriver.rar|Treiber für CyUSB}} ==== Vorbereitungen ==== - Alle Programme installieren und die benötigten Dateien herunterladen.\\ **Achtung:** Der SDCC Compiler muss im Standard-Pfad C:\SDCC\ installiert werden, sonst funktioniert er nicht korrekt! - Den Jumper 8 entfernen und den Jumper 7 bzw. 6 und 7 umstecken damit das BDI nur vom USB versorgt wird. (Achtung Jumper nicht umstecken falls sich das BDI noch auf dem MPC555 Board befindet.) - Das BDI mit dem PC verbinden und dafür sorgen, dass der Treiber richtig geladen wird. - Der Treiber ist nicht signiert. Wenn man während des Aufstarrtens des PC F8 drückt kann man die Treibersignierung ausschalten. - Unter //Control Panel\All Control Panel Items\System\Advanced system settings\Environment Variables\Path// die Pfade von GnuWin und dem SDCC Compiler hinzufügen. ==== Kompilieren ==== In einem ersten Schritt müssen die Makefiles ausgeführt werden. Dies geschieht indem man in Eclipse unter: //Window/Show View/Make Target// anklickt. Im sich öffnenden Fenster die Ordner lib und src öffnen. Zuerst die Dateien im Ordner lib mit //all// kompilieren danach mit dem //all// im Ordner src die restlichen Dateien kompilieren. ==== IIC Datei erstellen==== In Eclipse unter External Tools Configuration auf der linken Seite Programm anklicken und dann auf New launch configuration. Unter Name: //ConvertHex2IIC//, unter Location: Pfad zum Hex2bix.exe File, unter Working Directory: //${workspace_loc:/MPC555-USB-BDI}// und unter Arguments: //-m 65535 -i -F 0xC2 -O eeprom/ntb_mpc555_usbbdi_firmware.iic src/ntb_mpc555_usbbdi_firmware.hex// eintragen. Danach kann mit einem Klick auf den Play Button mit dem kleinen Koffer die iic Datei erstellt werden. ==== ICC Datei herunterladen ==== Heruntergeladen werden kann mit dem Programm //CyConsole EZ-USB// das beim Cypress CY3684 EZ-USB FX2LP Development Kit dabei ist. Dazu muss zuerst den Jumper 8 wieder setzen und danach auf den Button Lg EEPROM drücken und das erstellte .iic-File auswählen. Ist die Firmware heruntergeladen wird dies im unteren Feld angezeigt.