Hallo zusammen, ich habe in meinem Praktikum folgende Aufgabenstellung bekommen. Ein CPLD (XC9572XL) soll über seine JTAG Schnittstelle von einem Microcontroller (STM32F107) programmiert werden. Der Microcontroller soll also als JTAG Programmer dienen. Ich bräuchte eine JTAG Emulation für den Microcontroller. Die JTAG Schnittstelle des CPLD hängt an I/O Ports des Microcontrollers. Bevor ich jetzt anfange so etwas selbst du schreiben (was vermutlich deutlich länger dauert), hier meine Frage. Kennt jemand eine entsprechende Bibliothek, ich hab leider schon ein Problem damit die Aufgabenstellung kurz und klar zu formulieren und nach dem richtigen zu googeln. Ich finde viele JTAG Emulationen für den PC aber bisher war noch nichts entsprechendes für meinen Fall dabei. Gruß und vielen Dank, Tobias
Hallo Tobias, das Praktikum ist dann für Dich erfolgreich, wenn Du nicht nur copy+paste benutzt. Du willst doch etwas lernen, oder? VG Pete
Hi Pete, klar will ich was lernen und das kommt bisher auch nicht zu kurz :) Wenn es allerdings eine fertige Bibliothek gibt nehme ich die gerne her, sowas gehört nach meinem empfinden auch dazu. Gruß Tobi
Tobias Weber schrieb: > ich habe in meinem Praktikum folgende Aufgabenstellung bekommen. Ein > CPLD (XC9572XL) soll über seine JTAG Schnittstelle von einem > Microcontroller (STM32F107) programmiert werden. Der Microcontroller > soll also als JTAG Programmer dienen. Versaloon wird von OpenOCD unterstützt und implementiert JTAG auf einem STM32 µC: https://github.com/versaloon/versaloon Das Repository ist etwas unübersichtlich weil da auch der User Code für den PC mit drin ist. Hint: "dongle/firmware/". Den µC Teil hatte ich mal auf LPC13xx für die CCC R0ket portiert: https://github.com/turboj/versaloon-r0ket/tree/master/firmware die interessanten Teile verstecken sich im "Interfaces" und "USB_TO_XXX" Ordner.
Bibliothek ist hier: http://www.clifford.at/libxsvf/ Für PIC gibt es das fertig, dagegen kannst Du Dein Werk dann testen: http://dangerousprototypes.com/docs/Bus_Pirate_JTAG_XSVF_player
Openocd oder blackmagic probe (https://github.com/blacksphere/blackmagic/wiki) anschauen, kann aber gut sein das du noch support (ja, auch das kann man im Praktikum lernen, und es würde sich die Community freuen ;) ) für die Chips hinzufügen musst.
??? Er will doch einen CPLD flashen, nicht JTAG/SWD am ARM machen: Tobias Weber schrieb: > CPLD (XC9572XL) soll von einem Microcontroller (STM32F107) programmiert Also nochmal: Lothar schrieb: > http://www.clifford.at/libxsvf/
Tobias Weber schrieb: > klar will ich was lernen OK, dann fange an: 1. schaff dir ein Grundgerüst. Dazu kann (nicht MUSS) z.B. ein chinesischer ST-Link dienen, der enthält bereits einen µC, eine Mini-USB-Buchse und ein paar Pins an einer Wannensteckleiste - UND: er ist billig, so 2..4 Euro. Dessen Schaltung findet man per Google. Damit hast du ne HW, ohne dich anstrengen zu müssen. 2. schaff dir ein Konzept. So ein Programmer braucht ja etwas, das ihm gesagt werden muß, damit er was tut. Also konzipiere das Interface zwischen Programmer und PC, also wer wem auf welche Weise was sagt - und schreibe das Konzept auf, das ist der Anfang aller weiteren Entwicklungsaktivitäten. Du willst sowas sicherlich per USB betreiben, also überlege dir eine USB-Schnittstelle, ob VCP oder was sonst, über die die Kommunikation laufen soll. 2a. Hier kannst du im Prinzip schon mal dein Grundgerüst für deine Firmware anfangen, also Pins und Takte aufsetzen, dann Interface zum PC hin schreiben, dann Kommandoauswertung und dann Trockentest, ob deine Firmware erstmal läuft und mit deinem PC-Programm zusammen läuft. 3. lies die JTAG-Dokumentationen und leg dir ein Konzept zurecht für den Lowlevel-Betrieb, also wie Clock, Daten rein und raus und tms betrieben werden müssen, um irgendwo irgendwas rein und raus zu bekommen. Da gibt ein weiteres Papier als Grundlage für alles Weitere. Hier kanst du mit dem Firmwareschreiben weitermachen, ein paar (temporäre) Kommandos in die Kommandoauswertung rein, um auf Kommando ein oszillografierbares JTAG-Datenspiel zu erzeugen und so. 4. Jetzt ist es Zeit, sich um die eigentlichen Programmieralgorithmen zu kümmern, also der HiLevel-betrieb: Daten und Kommandos rein, JTAG-Signalspiele raus. Ungefähr so wäre die Vorgehensweise, also fang an und suche nicht nach den gebratenen Tauben, die gibt's nicht wirklich. W.S.
Hi Tobias, kurz gefragt: Was ist Dein Ausbildungsstand? Was für ein Praktikum ist das und welcher Zeithorizont wurde für die Aufgabe vereinbart? Grüße, marcus
Hallo zusammen, ich studiere aktuell Elektrotechnik (5. Semester) und werde nach dem Praktikum als Werksstudent da bleiben, einen festen Zeitrahmen gibt es nicht aber es sollte wohl nicht unbedingt ein Jahr dauern. Vielen Dank soweit, ich werde mir die Vorschläge durchschauen und melde mich sobald ich Fortschritte mache. VG Tobi
Ah, danke für die Info. Wenn Du Dich auf das Thema konzentrieren kannst und die Hardware zuverlässig läuft: - 2-3 Tage für eine Portierung bzw. - 5-7 Tage für aus dem Vollblock schnitzen Cooles Thema! marcus
Marcus H. schrieb: > Wenn Du Dich auf das Thema konzentrieren kannst und die Hardware > zuverlässig läuft: > - 2-3 Tage für eine Portierung bzw. > - 5-7 Tage für aus dem Vollblock schnitzen So lange? ;-) Nach seinem 'Empfinden' geht es aber doch nicht darum, irgendetwas selber zu programmieren, sondern mit den richtigen Suchbegriffen die fertige Lösung vorzufinden. Oder habe ich etwas falsch verstanden? Tobias Weber schrieb: > Wenn es allerdings eine fertige Bibliothek gibt nehme ich die gerne her, > sowas gehört nach meinem empfinden auch dazu.
Tobias Weber schrieb: >... einen festen Zeitrahmen gibt es > nicht aber es sollte wohl nicht unbedingt ein Jahr dauern.
Hi zusammen, ich habe mich jetzt mit dieser Bibliothek beschäftigt: http://www.ethernut.de/en/xsvfexec/index.html Gut auskommentiert und relativ nahe an meinem Anwendungsfall dran. Vielen dank für die bisherigen Antworten. Die nicht portablen Codeteile (weil Plattformabhängig) sind in einem extra File ausgelagert. VG Tobias
m.n. schrieb: > Nach seinem 'Empfinden' geht es... ..., Nee, du hast das schon ganz richtig erfaßt. Das heutige E-Technik-Studium scheint mir eher eine Lehranstalt für Kopierer zu sein als etwas, das den jungen Leuten die Fähigkeit zu selbständigem Denken und Tun vermittelt. Und die Zeitangaben von Marcus H. erscheinen mir herzlich illusorisch. Aber viellecht bezieht sich das ja nur auf das Finden von interessant erscheinendem Zeugs im Internet. W.S.
W.S. schrieb: > Und die Zeitangaben von Marcus H. erscheinen mir herzlich illusorisch. Ja, ich weiß, dass ich nicht der Schnellste bin... >Aber viellecht bezieht sich das ja nur auf das Finden von interessant >erscheinendem Zeugs im Internet. Yep, ich habe die Angewohnheit vorhandene Doku zu lesen. Deswegen zitiere ich die auch laufend bei Lösungsvorschlägen. Scherz beiseite - wenn ich mir die Zeit anschaue, die ich für meine Diplomarbeit gebraucht habe: Das hat damals fast ein halbes Jahr gedauert. Dieselbe Aufgabe würde ich heute wohl in vier Wochen lösen. Habe aber auch etwas geübt in den letzten zwanzig Jahren... Insofern darf der Praktikant ruhig etwas länger brauchen. Dafür hat er vermutlich auch einen anderen Stundensatz...
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.