Hiho Forengemeinde, zunächst eins, ja ich habe die anderen Posts gelesen zu dem Thema aber trotzdem bleiben diverse Fragen für mich übrig. Was habe ich vor: Verwendung des FT2232H zum direkten programmieren für einen TMS320F28069 unter Verwendung des JTAG's durch CCS. Probleme: Alle Leitungen sind mir soweit klar die ich anschließen muss. TDI / TDO TMS TCK sind bereits verbunden, aaaaaber was mache ich mit dem Reset ?!?! In diversen schematics von evaluations boards habe ich gefunden das Reset direkt auf den Pin danach gelegt wird ( also bei dem FT2232H auf die 20 ). Nur steht weder im Datenblatt noch sonst wo was vom Reset was wohl von den unterschiedlichen JTAG Standarts einfach der Fall ist. Der Chip hat ja in der JTAG Konfiguration noch diverse GPIO's die noch ein H und L tragen, heißt das das diese während der Programmierung auf High und Low gezogen sind ? Denn das steht auch nicht im Datenblatt oder ich bin blind. Nun dachte ich mir das ich durch das aufzuspielende EEPROM diese Frage lösen kann und habe das FTProg geladen, aber witziger Weise gibts da drin gar kein JTAG als Auswahlmöglichkeit, was mir das ganze noch undurchsichtiger macht. Ich hoffe ich konnte mein Problem konkret genug schildern. Mfg Christian
Das TI-Teil dafür ist der XDS100. Für den gibt es auch einen Schaltplan. Siehe processors.wiki.ti.com/index.php/XDS100 Der FTDI-Chip wird vom Treiber in den JTAG-Modus geschaltet. Die nicht direkt für JTAG benötigten Pins sind GPIOs, die durch den Treiber gesetzt werden. Je nach Prozessor ist eine unterschiedliche Beschaltung weiterer Signale erforderlich, was Du daran siehst, dass es den XDS100 in mehreren Revisionen gibt, wobei nur die neueren alle Prozessorarchitekturen unterstützt. Der XDS100v1 kann zB kein ARM. fchk
Naja anhand des Schaltplanes sitzt da ein Xilinx dazwischen wo ich nicht weis welche Funktion der erfüllt, denn in der Referenzschaltung vom FT2232H wird sowas gar nicht benötigt. Und TDI TDO TMS / TCK kann man ja direkt verbinden, es fehlt ja wie gesagt nur der Reset, der bedient wird. Ich besitze so nen XDS100 aber ich würde gern einfach das USB Kabel nehmen und mit der Platine verbinden und alles ist gut. Wenn du sagst der Treiber setzt den Chip in JTAG, warum brauch ich dann den EEPROM ? Danke im Voraus
Soweit ich weiß, muß die Flash-Programmierung des TMS extern getimt werden. Das wird dann wohl der FPGA (beim Olimex XDS100v3 ein Actel) erledigen. Aus diesem Grund gibt es auch keine Programmier-Spezifikation (Register etc.) sondern nur einen Binär-Blob, der als C-Library angesprochen wird. Von daher benutze ich den SCI-A Boot. Damit wird ein kleines Assembler-Programm in das M0-SARAM geladen und gestartet. Das schaltet dann ggf. die Security aus und lädt dann den zweiten Teil (C-Programm) in das L0-SARAM. Dieses nutzt dann letztendlich die TI-Bibliothek um den Flash zu programmieren. Das ist zwar etwas unständlich, braucht aber keine spezielle Hardware.
Mein Gott, bei DEN Preisen für so einen popeligen XDS100 Programmieradapter ist doch jegliches Nachdenken über selbstgebaute Adapter oder gar Software reinste Zeitverschwendung!
Es geht mir doch nicht um den Preis! Aber wenn so ein Chip auf dem Markt ist der angeblich relativ einfach JTAG kann, dann ist für mich die Auffassung : Chip nach Referenz auf die Leiterplatte, das FTProg angeschürt bzw Treiber auf den Rechner und dann einfach mit CCS das Ding programmieren. Das was Joerg beschrieben hat ist für mich für das was ich damit erreichen will zum umständlich. Mir fehlt doch nur eine Leitung.... Das muss doch realisierbar sein.
@ Christian Illig (christianillig) >Es geht mir doch nicht um den Preis! Worum dann? >Aber wenn so ein Chip auf dem Markt ist der angeblich relativ einfach >JTAG kann, JTAG an sich ja, aber die softwareseitige Anbindung (TREIBER) ist bei fast allen JTAG Adapten VERSCHIEDEN. Das ist arg komisch und eigentlich Unsinn, praktisch aber Realität. Ein JTAG-Adapter von TI kann keine JTAG-Software von Atmel ansteuern. Das liegt nicht am JTAG sondern in der darüberliegenden Treiberebene. > dann ist für mich die Auffassung : Chip nach Referenz auf die >Leiterplatte, das FTProg angeschürt bzw Treiber auf den Rechner und dann >einfach mit CCS das Ding programmieren. Dem ist nicht so. Siehe oben! >Das was Joerg beschrieben hat ist für mich für das was ich damit >erreichen will zum umständlich. Was willst du denn erreichen? den IC per CCS anzusprechen. Eben DAS macht ein fertigen Adapter ala XDS100 aus der Kiste. Der wurde exta als kostengünstige Alternative erfunden. >Das muss doch realisierbar sein. Kauf dir ein XDS100.
Christian Illig schrieb: > Naja anhand des Schaltplanes sitzt da ein Xilinx dazwischen wo ich nicht > weis welche Funktion der erfüllt, denn in der Referenzschaltung vom > FT2232H wird sowas gar nicht benötigt. Meines Wissens ist beim XDS100v1 kein CPLD vorhanden, das ist erst bei v2 und v3 dazu gekommen. Welche Version hast Du? Für die 28xx'er reicht Version 1. Besorge Dir davon den Schaltplan. > Wenn du sagst der Treiber setzt den Chip in JTAG, warum brauch ich dann > den EEPROM ? Im EEPROM sitzt die USB PID/VID, Konfigurationsinfos für den Chip im UART-Modus sowie ein Bit, das angibt, ob der Treiber den Chip im VCP oder im D2xx-Modus enumerieren soll. fchk
So, ich habe mir den Schaltplan für den XDS100v1 von TI besorgt, und es ist definitiv kein CPLD drauf, sondern alles diskrete Logik, die Du problemlos nachbauen kannst. Quasi Copy&Paste. Der XDS100v1 benutzt nicht den FT2232H, sondern den FT2232C. Das ist ein ganz anderer Chip, anderes Pinout, Full Speed statt High Speed etc etc. Du solltest den trotzdem verwenden, um eben XDS100v1 Kompatibilität zu haben, um auf das CPLD verzichten zu können. Oder: Schau Dir das an: http://web.eecs.umich.edu/~hero/EE452/Labs/Docs/usbstk5515_Schematics_RevA.pdf Auf der letzten Seite ist ein XDS100v1 drauf, in vereinfachter Form, weil hier die Pegelwandler etc und die EMU0/EMU1 Signale nicht benötigt werden. Das 1:1 abzupinnen sollte im Bereich Deiner Möglichkeiten liegen. Dann sagt TI: EEPROM needs to be programmed for VID 0403 PID A6D0. The device name string should be, “Texas Instruments Inc. XDS100 Version 1.0”. fchk
@ Frank K. (fchk) >problemlos nachbauen kannst. Quasi Copy&Paste. Und was hat er dabei gewonnen? https://www.olimex.com/Products/DSP/Emulators/TMS320-JTAG-USB/ Wem das zu teuer ist, kauf ein (subventioniertes) C2000 Lauchpad, dort ist ein XDS100 incl. galvanischer Trennung drauf, und das für schlappe 20 Euro.
Frank K. schrieb: > So, ich habe mir den Schaltplan für den XDS100v1 von TI besorgt, und es > ist definitiv kein CPLD drauf, sondern alles diskrete Logik, die Du > problemlos nachbauen kannst. Quasi Copy&Paste. > > Der XDS100v1 benutzt nicht den FT2232H, sondern den FT2232C. Das ist ein > ganz anderer Chip, anderes Pinout, Full Speed statt High Speed etc etc. > Du solltest den trotzdem verwenden, um eben XDS100v1 Kompatibilität zu > haben, um auf das CPLD verzichten zu können. > > Oder: Schau Dir das an: > http://web.eecs.umich.edu/~hero/EE452/Labs/Docs/usbstk5515_Schematics_RevA.pdf > Auf der letzten Seite ist ein XDS100v1 drauf, in vereinfachter Form, > weil hier die Pegelwandler etc und die EMU0/EMU1 Signale nicht benötigt > werden. Das 1:1 abzupinnen sollte im Bereich Deiner Möglichkeiten > liegen. > > Dann sagt TI: > EEPROM needs to be programmed for VID 0403 PID A6D0. The device name > string should be, “Texas Instruments Inc. XDS100 Version 1.0”. > > fchk Kannst du mir auch verraten warum ich bei dem FT2232H den Logikchip bräuchte und beim FT2232C nicht? Den Schaltplan hatte ich bereits auch schon so gefunden, aber was mir halt noch nicht einleuchtet wie PIN 20 als Reset gesteuert wird, bzw an welcher Stelle ich das dem Chip begreiflich mache den eigentlich steuert doch der EEPROM dessen Funktionalität, d.H. der braucht erstmal eine Konfiguration durch das FTProg um zu funktionieren wie er soll, aber wie bereits erwähnt gibt es da keine JTAG Einstellmöglichkeit. Und laut Datenblatt braucht er für JTAG einen EEPROM, da ja JTAG Teil des MPSSE ist. Der JTAG Wandler soll direkt auf die Leiterplatte wo er beide ihm angeschlossene µC mit Programmcode versorgen soll, er hat ja 2 Ausgänge. Bei anderen Platinen von uns wäre nur 1 µC angeschlossen. Warum will ich kein Kaufteil? Ganz einfach, erstens will ich was dazu lernen und zweitens bin ich Mitglied eines Formula Student Teams und wir würden gerne "einfach" ein USB Kabel in die Hand nehmen und an die jeweilige Platine knüpfen um die zu Programmieren. Bis dato haben wir Atmel genommen und haben durch den häufigen Einsatz Probleme mit dem Flachbandkabel bekommen welches direkt am Stecker Kabelbrüche hatte. Desweiteren waren meist die Debugger entweder verlegt oder nicht in ausreichender Zahl vorhanden, somit stellt für uns so eine Chip Lösung etwas feines dar. Ich hoffe jetzt versteht ihr warum die Kauflösung für uns nicht unbedingt das non-plus-ultra ist obwohl es evtl. nur 1cent kostet. Danke für eure Antworten!
Christian Illig schrieb: > Kannst du mir auch verraten warum ich bei dem FT2232H den Logikchip > bräuchte und beim FT2232C nicht? Falsche Frage. Die richtige Frage lautet: Wieso ist beim XDS100v2 ein CPLD drauf und beim XDS100v1 nicht? Antwort: Das CPLD wird zum einen als Level Shifter benutzt, und dann ist da noch etwas Logik drin, die teilweise beim XDS100v1 als extra Logikchips mit drauf ist. Heißt also: 1. Kostenersparnis durch weniger Bauteile und 2. Unterstützung zusätzlicher Prozessorarchitekturen (insbesondere ARM9 und Cortex A8, die haben unter anderem ein zusätzlichen RTCK (JTAG Return Clock)), und das braucht zusätzliche Logik, die Du nicht brauchst. Für Dich reicht der XDS100v1, und deswegen solltest Du ihn kopieren. Pegelwandler etc brauchst Du ja nicht. > Den Schaltplan hatte ich bereits auch schon so gefunden, aber was mir > halt noch nicht einleuchtet wie PIN 20 als Reset gesteuert wird Das ist ein reiner GPIO, der nicht durch die MPSSE, sondern durch die Debuggersoftware gesteuert wird. > Und laut Datenblatt braucht er für JTAG einen EEPROM, da ja JTAG Teil > des MPSSE ist. Hier ist nur wichtig, dass der JTAG nicht als virtueller COM-Port enumeriert wird und im USB unter der richtigen VID/PID auftaucht. > Der JTAG Wandler soll direkt auf die Leiterplatte wo er beide ihm > angeschlossene µC mit Programmcode versorgen soll, er hat ja 2 Ausgänge. nein, der hat nur genau eine MPSSE und einen JTAG-Port. Wenn Du mehrere Prozessoren dort hast, musst Du eine JTAG-Kette bilden. Was für ein Prozessor ist der andere? > Warum will ich kein Kaufteil? Ganz einfach, erstens will ich was dazu > lernen Hier musst Du nur 1:1 abpinnen, damit es funktioniert, und ja nicht zu viel denken, denn dann kommst Du auf dumme Ideen, und dann ist es nicht mehr 100% XDS100v1 kompatibel, und dann funktioniert der Code Composer nicht mehr. fchk
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.