Ich stelle gerade auf folgender Seite fest, daß es für jeden
Mikrocontroller ein anderes JTAG Programmiergerät gibt.
http://www.mikrocontroller.net/articles/JTAG
Meine Frage, wieso gibt's es eigentlich kein Universal JTAG
Programmiergerät, daß alle µC anspricht?
Ich selbst will nur einen "AT MEGA8 AVR" und "MSP430 F2012"
programmieren können und suche nun ein JTAG Programmiergerät zum
Anschluß an meinen PC.
Welches soll ich denn jetzt da nehmen?
Ich kenne mich hier leider nicht besonders gut aus.
Was mir aber wichtig wäre, ist, daß es auf PC Seite an den USB Anschluß
angeschlossen werden kann und unter Linux mit Open Source Software
läuft.
Das Gerät sollte gut erhältlich oder nachbaubar sein.
Und beim Preis so günstig wie möglich sein.
Ich bin noch ganz am Anfang bezügl. dem Thema Microcontrollern, habe im
der Studium schon einen programmiert, aber möchte mir kein Testboard
kaufen, weil die mir erstens zu teuer sind und zweitens ich so einen
einfachen µC selber in eine selbst ausgedachte Schaltung integrieren
will.
Mit Elektronik ansich (analog/digital) kenne ich mich nämlich schon
etwas aus, so daß ich mir Zutraue auch einen einzeln gekauften µC
Baustein mit einer eigenen Schaltung zum Laufen zu bringen.
Ein Testboard brauche ich also nicht.
Das ist doch kein Problem: Dein Atmega 8 hat kein JTAG-Interface - also
brauchst du nur einen JTAG-Adapter für deinen MSP...
Atmega 8 wird via ISP geflasht...
Einfache Testboards für die Atmegas gibt es ab 25€... und das ist dir zu
viel? Schonmal geschaut was ein ordentlicher JTAG-Adapter kostet?
Talad schrieb:> Meine Frage, wieso gibt's es eigentlich kein Universal JTAG> Programmiergerät, daß alle µC anspricht?JTAG definiert die Hardwareschnittstelle. Was da drüber läuft ist weit
weniger definiert. Und der Welt-Diktator, der vorschreiben könnte, dass
alle ausschliesslich die JTAG-Box von Segger zu verwenden hätten, der
ist noch nicht erschaffen.
Also funktioniert die Software von Atmel nur mit der Atmel-Box, die von
Kail nur mit den Box von ... usw.
Die physikalische JTAG Schnittstelle ist nur ein Teil von JTAG.
Mindestens genauso wichtig ist der Softwareteil: Was bedeutet welcher
JTAG Befehl... Und da können die Hersteller ihre eigenen kleinen
Geschäftsgeheimnisse unterbringen.
Fürs Selberbauen eines Multitarget-Programmers wären im Moment
Versaloon (AVR ISP oder JTAG programmieren OK, JTAG debuggen???) oder
GoodFET (AVR nur ISP programmieren, experimentell) meine Favoriten.
Aber bisher habe ich mir das noch nicht zugetraut.
Moin,
wie schon erwähnt ist JTAG die Hardwareseite. die JTAG fähigen Bausteine
befinden sich in einer Reihe (vom JTAG aus gesehen) und es werden Daten
durch diese Kette geschoben die dann wiederum für das Innenleben der ICs
bestimmt ist oder was zu deren Pins hinausgeht (und natürlich auch die
andere Richtung).
Diese Geschichte kann man mit einem simplen Interface am LPT Anschluss
erledigen oder man kann vieeele K€ für ein Interface ausgeben. Die
Unterschiede sind dann z.B. in der Geschwindigkeit vom Schiebetakt zu
finden, aber nicht nur.
Aber ohne Software läuft das alles nicht und die sagt schliesslich dem
Interface was es wie zu tun hat. Da gibt es einfache Geschichten wie zum
Debuggen oder Flashen aus einer IDE heraus oder eben komplexere
Umgebungen in denen Prüf/Testabläufe generiert und geschrieben werden.
JTAG eignet sich hervorragend für die Elektronikproduktion und den
Test/Inbetriebnahme von Leiterplatten. Ein Beispiel ist das, was bei
www.goepel.com gemacht wird.
Das ist dann weit aus mehr als einfach nur zu Flashen.
Ich hoffe, Dich jetzt hier nicht vollgelabert zu haben, sondern etwas
Licht ins Dunkel gebracht zu haben.
:-) Johannes
Talad schrieb:> Meine Frage, wieso gibt's es eigentlich kein Universal JTAG>> Programmiergerät, daß alle µC anspricht?JTAG ist ein standardisiertes Verfahren zum Auslesen von Registern eines
IC. Das nennt sich Boundary Scan. Dazu sind bestimmte Register im
Standard definiert.
Die Register zum Programmieren und Debuggen sind Zusatzregister, die
keinem Standard entsprechen, sodaß jeder Hersteller sein eigenes
Süppchen kocht.
mfg.
Daniel F. schrieb:> Das ist doch kein Problem: Dein Atmega 8 hat kein JTAG-Interface - also> brauchst du nur einen JTAG-Adapter für deinen MSP...
Ok, hat jemand eine Empfehlung für einen JTAG Adapter mit USB Anschluß
und Linux kompatibilität?
> Atmega 8 wird via ISP geflasht...
Gut, dann programmier ich die beiden Geräte eben mit zwei
unterschiedlichen Standards.
Was würdet ihr mir als ISP Adapter empfehlen?
Gleiche Bedingungen wie oben: USB + Linux kompatibel ist wichtig.
> Einfache Testboards für die Atmegas gibt es ab 25€... und das ist dir zu> viel? Schonmal geschaut was ein ordentlicher JTAG-Adapter kostet?
Ein AT Mega 8 Chip kostet nur 2,35 € bei Reichelt und die restlichen
Kosten für diverse Bauteile zähle ich ja sowieso zu meinen geplanten
Elektronikprojekten.
Sprich, ich will eigentlich nicht Programmieren üben auf einem Mega8,
sondern schon ein konkretes Problem lösen bzw. ein Projekt realisieren.
Die Testboards haben nen Haufen Zeug das ich für meine eigentliche
Problemstellung nicht brauche und wenn ich dann mein eigenes
Elektronikprojekt realisieren will kann ich das sowieso nicht auf ein
Testboard aufbauen.
Denn wenn ich letzteres machen würde, dann kann ich auch gleich das
Eleketronikprojekt so realisieren, daß es von meinem PC aus angesteuert
wird.
Talad schrieb:> Ok, hat jemand eine Empfehlung für einen JTAG Adapter mit USB Anschluß> und Linux kompatibilität?
Beim MSP430 gibt es nicht so viele Möglichkeiten, entweder das Original
von TI (MSP-FET430UIF) oder dessen Nachbau von Olimex.
Talad schrieb:> Ok, hat jemand eine Empfehlung für einen JTAG Adapter mit USB Anschluß> und Linux kompatibilität?
Für ATmega8 & Co: AVR Dragon. Programmer (für alle möglichen
AVR-Programmierprotokolle) und Debugger in einem. Viel billiger als
das bauen das nichtmal die Chinesen. ;-)
Ferdi schrieb:> Rufus Τ. Firefly schrieb:>> oder dessen Nachbau von Olimex>> Oder , aber halt parallel :\\, für 2 euro nachbauen.
Nicht ratsam, weil das Ding unter anderem kein Spy-Bi-Wire unterstützt
und obendrein eine tote Schnittstelle voraussetzt.
Außerdem war explizit USB gefordert.
Talad schrieb:> Die Dinger sind ja schweineteuer. :shocked:
Das ist nicht "schweineteuer", oder Du hast irgendeinen Preis gesehen,
der sehr deutlich über 100 EUR liegt.
Sieh Dir einfach mal Preise* für JTAG-Adapter für AVR an, die Atmel
selbst verkauft.
> Reicht auch dieses da:> MSP 430 USB-Stick Entwicklungstool Texas Instruments eZ430-F2013
Das ist eine abgespeckte Ausführung, die nur das Spy-Bi-Wire-Interface
unterstützt, was gerade ältere MSP430-Varianten ausschließt.
Günstiger ist da übrigens das Launchpad, das wurde eine Zeit lang für
4.30 USD verkauft, das enthält ein vergleichbares Spy-Bi-Wire-Interface.
*) In der Apotheke mit dem blauen 'C', aber vor dem Anklicken des Links
unbedingt hinsetzen!
http://www.conrad.de/ce/de/product/154135/PROGRAMMER-ATJTAGICE-MKII/SHOP_AREA_29142&promotionareaSearchDetail=005
Rufus Τ. Firefly schrieb:> Das ist nicht "schweineteuer", oder Du hast irgendeinen Preis gesehen,> der sehr deutlich über 100 EUR liegt.> Sieh Dir einfach mal Preise* für JTAG-Adapter für AVR an, die Atmel> selbst verkauft.
Hallo,
ihr lebt doch in goldenen Zeiten und wisst es nicht - meine erste
Entwicklungsausrüstung mit einem Hitex-In-Circuit-Emulator und einem
Tektronik Logic Analyser hatte etwa den Gegenwert eines
Einfamilienhauses.
Gruss Reinhard
Mir erzählst Du da nichts neues, ich erinnere mich auch an die Zeit,
in der man als Entwickler von so etwas träumte, es aber nicht verwenden
konnte, weil in der Firma einfach nicht genug Geld dafür vorhanden war.
Jörg Wunsch schrieb:>> Ok, hat jemand eine Empfehlung für einen JTAG Adapter mit USB Anschluß>> und Linux kompatibilität?>> Für ATmega8 & Co: AVR Dragon. Programmer (für alle möglichen> AVR-Programmierprotokolle) und Debugger in einem. Viel billiger als> das bauen das nichtmal die Chinesen. ;-)
Der AVR Dragon sieht in der Tat sehr gut, der Preis ist noch halbwegs
akzeptabel und die Möglichkeiten bezügl. der großen Auswahl an
unterstützen AVR µC ist auch sehr gut.
Frank K. schrieb:>
> Für Linux nimmst Du am besten das Original von TI:> http://www.conrad.de/ce/de/product/170258/EMULATOR-MSP-FET-430-UIF>> Der hier von Olimex> http://www.olimex.com/dev/msp-jtag-iso.html> soll wohl auch gehen, die anderen sind Windows-only.
Die sind beide leider für mich zu teuer.
Ich will ja erstmal ein bischen in die Materie reinschnuppern
(allerdings mit meinen eigenen Schaltungen) und dann rentiert sich so
ein 100 € Programmiergerät noch nicht.
Auch ist der MSP430 etwas günstiger als ein ATMEGA 8, aber wenn ich für
das Programmiergerät so viel bezahlen muß, dann rechnet sich der
niedrigere Preis pro Chip des MSP430 nie und nimmer.
Da müßte ich schon 100 Stück verbauen, damit das einigermaßen
wirtschaftlich wird und die AVR Familie bietet ja eigentlich mehr als
genug Möglichkeiten, so daß ich den MSP430 gar nicht mehr brauche.
Oder hat der MSP430 außer dessen geringer Preis und der Tatsache daß ich
mit diesem, im Gegensatz zu AVR basierten Chips, schon gearbeitet habe
noch Vorteile gegen die AVR basierte Chipfamilie?
Wenn ja, dann käme für den MSP430 eigentlich nur eine Low Cost Lösung in
Frage. Wie sieht es hier beim MSP430 also bezügl. Parallelport basierter
Programmiergeräte aus?
> Auch hier ist das Original vom Hersteller erste Wahl:> http://www.reichelt.de/?ACTION=3;ARTICLE=45040;PROVID=2402
Worin unterscheidet sich das AVR Programming Tool AT AVR ISP2 mit USB im
Vergleich zum AVR Dragon?
Abgesehen davon, daß der AVR Dragon etwa 20 € teurer ist?
>mit einem Hitex-In-Circuit-Emulator und einem>Tektronik Logic Analyser hatte etwa den Gegenwert eines>Einfamilienhauses.
Die Zeiten kenne ich noch; habe mich fürs Haus entschieden und nicht
bereut ;-)
Die elektronischen Probleme habe ich dann mit dem Kopf gelöst.
Talad schrieb:> Wenn ja, dann käme für den MSP430 eigentlich nur eine Low Cost Lösung in> Frage. Wie sieht es hier beim MSP430 also bezügl. Parallelport basierter> Programmiergeräte aus?
Eine mögliche Low-Cost Lösung für/mit MSP430 ist
die TI Chronos um rd 50$.
Brustgurt zur Pulsmessung (wer´s braucht) ist nochmal
rd 50EUR.
Da ist alles dabei, was man zum Debuggen
braucht.
Ohne mir alles durchgelesen zu haben:
Prinzipiell würde das schon Sinn machen, wenn der Programmieralgorithmus
auf dem Computer läuft und das Programmiergerät nur noch die Daten, die
man ihm per USB schickt stupf auf der JTAG Schnittstelle ausgibt.
Wirklich universell (und teuer) sind die GALEPs
Hi
>Worin unterscheidet sich das AVR Programming Tool AT AVR ISP2 mit USB im>Vergleich zum AVR Dragon?>Abgesehen davon, daß der AVR Dragon etwa 20 € teurer ist?AVR ISP MKII : ISP
AVR Dragon : ISP, HV-Programmierung, JTAG Debugging
MfG Spess
Talad schrieb:> Frank K. schrieb:>
>> Für Linux nimmst Du am besten das Original von TI:>> http://www.conrad.de/ce/de/product/170258/EMULATOR-MSP-FET-430-UIF>>>> Der hier von Olimex>> http://www.olimex.com/dev/msp-jtag-iso.html>> soll wohl auch gehen, die anderen sind Windows-only.>> Die sind beide leider für mich zu teuer.> Ich will ja erstmal ein bischen in die Materie reinschnuppern> (allerdings mit meinen eigenen Schaltungen) und dann rentiert sich so> ein 100 € Programmiergerät noch nicht.>> Auch ist der MSP430 etwas günstiger als ein ATMEGA 8, aber wenn ich für> das Programmiergerät so viel bezahlen muß, dann rechnet sich der> niedrigere Preis pro Chip des MSP430 nie und nimmer.>> Da müßte ich schon 100 Stück verbauen, damit das einigermaßen> wirtschaftlich wird und die AVR Familie bietet ja eigentlich mehr als> genug Möglichkeiten, so daß ich den MSP430 gar nicht mehr brauche.>> Oder hat der MSP430 außer dessen geringer Preis und der Tatsache daß ich> mit diesem, im Gegensatz zu AVR basierten Chips, schon gearbeitet habe> noch Vorteile gegen die AVR basierte Chipfamilie?
Planst Du batteriebetriebene Geräte zu bauen?
Brauchst Du VIEL 16 Bit Arithmetik (der MSP430 ist intern 16 Bittig, der
AVR nur 8-bittig)
Brauchst Du unbedingt DMA?
Wenn Du eines davon bejahen kannst, dann greife zum MSP430, ansonsten
lass es bleiben.
> Wenn ja, dann käme für den MSP430 eigentlich nur eine Low Cost Lösung in> Frage. Wie sieht es hier beim MSP430 also bezügl. Parallelport basierter> Programmiergeräte aus?
Mit Linux? Ähhhm...
>> Auch hier ist das Original vom Hersteller erste Wahl:>> http://www.reichelt.de/?ACTION=3;ARTICLE=45040;PROVID=2402>> Worin unterscheidet sich das AVR Programming Tool AT AVR ISP2 mit USB im> Vergleich zum AVR Dragon?> Abgesehen davon, daß der AVR Dragon etwa 20 € teurer ist?
Der AVRISP mkii kann NUR ISP und PDI-Programmierung, d.h. Du kannst nur
Deine Programme reinladen und dann schauen, ob es geht. Debuggen geht
über ISP nicht, über PDI ja, aber nicht mit diesem Teil.
Der Dragon kann auch JTAG und ist auch als Debugger für JTAG und
DebugWire einsetzbar. PDI kann der Dragon nicht, aber das findest Du
auch nur bei den XMegas.
Der Mega8 hat nur ISP, der neuere und pinkompatible Mega88 kann auch
DebugWire und hat mehr Möglichkeiten und ist etwas schneller und im
Preis etwa gleich.
fchk
Talad schrieb:> Ich stelle gerade fest, vom Olimex gibt es auch noch eine Low Cost JTAG> USB Variante für den MSP430:>> MSP430-JTAG-TINY> http://www.olimex.com/dev/msp-jtag-tiny.html>> Der kostet mit ca. 55 € nur die Hälfte vom MSP430-JTAG-ISO.>>> Wäre der auch empfehlenswert?
Wenn Du Windows hättest, ja. Mit Linux geht der nicht, da gehen nur die
beiden Typen, die ich geschrieben habe, keine anderen.
Tja, 80 Euro für ein Windows...
fchk
Frank K. schrieb:> Talad schrieb:>> Ich stelle gerade fest, vom Olimex gibt es auch noch eine Low Cost JTAG>> USB Variante für den MSP430:>>>> MSP430-JTAG-TINY>> http://www.olimex.com/dev/msp-jtag-tiny.html>>>> Der kostet mit ca. 55 € nur die Hälfte vom MSP430-JTAG-ISO.>>>>>> Wäre der auch empfehlenswert?>> Wenn Du Windows hättest, ja. Mit Linux geht der nicht, da gehen nur die> beiden Typen, die ich geschrieben habe, keine anderen.>> Tja, 80 Euro für ein Windows...>> fchk
Du kennst mspdebug nicht;
Auszug aus der Manpage
1
DRIVERS
2
A driver name must be specified on the command line for MSPDebug to connect to. Valid driver names are listed here.
3
4
rf2500 Connect to an eZ430-RF2500 device. Only USB connection is supported.
5
6
olimex Connect to an Olimex MSP-JTAG-TINY device. Both USB and tty access are supported.
7
8
olimex-iso
9
Connect to an Olimex MSP-JTAG-ISO device. Only tty access is supported.
10
11
sim [..]
12
13
uif Connect to an eZ430-F2013 or a FET430UIF device. The device argument should be the filename of the appropriate tty device. The TI serial converter chips on these devices are supported by
14
newer versions of the Linux kernel, and should appear as /dev/ttyXX when attached.
15
16
USB connection is not supported for this driver.
17
18
uif-bsl
19
Connect to the bootloader on a FET430UIF device[...]
20
flash-bsl
21
Connect to the built-in bootloader in MSP430 devices with flash bootloader memory. [...]
Wenns um den MSP430 und nur ums Programmieren geht: die MSP430 lassen
sich sehr gut ueber den eingebauten seriellen Bootloader programmieren.
Funktioniert einwandfrei ueber USB-RS232 Wandler und man braucht sonst
nichts.
Frank K. schrieb:> Planst Du batteriebetriebene Geräte zu bauen?
Ja, aber die bekommen einen Ausschalter und müssen nicht dauerhaft im
Standby laufen, daher ist der Stromverbrauch nicht so gravierend.
> Brauchst Du VIEL 16 Bit Arithmetik (der MSP430 ist intern 16 Bittig, der> AVR nur 8-bittig)> Brauchst Du unbedingt DMA?>> Wenn Du eines davon bejahen kannst, dann greife zum MSP430, ansonsten> lass es bleiben.
Ich brauche vor allem einen guten A/DC.
Beide haben einen 10 bittigen ADC, wobei der AVR je nach Chiptyp mehrere
davon hat.
Aber welcher hat die bessere Genauigkeit? 10 Bit haben hier beide, aber
welcher hat die engeren Toleranzen, das wäre für mich noch wichtig?
DMA werde ich kaum brauchen, denn die ganzen Berechnungen erledigt eh
der µC und die Peripherie is eher passiv.
16 Bit Arithmetik fände ich gut, es macht einiges einfacher, ist aber
nicht zwingend.
Wirklich wichtig ist also wirklich der ADC.
>>> Wenn ja, dann käme für den MSP430 eigentlich nur eine Low Cost Lösung in>> Frage. Wie sieht es hier beim MSP430 also bezügl. Parallelport basierter>> Programmiergeräte aus?>> Mit Linux? Ähhhm...
Ja. Es wäre schon gut wenn ich unter Linux entwickeln und den µC von
dort aus programmieren könnte.
> Der AVRISP mkii kann NUR ISP und PDI-Programmierung, d.h. Du kannst nur> Deine Programme reinladen und dann schauen, ob es geht. Debuggen geht> über ISP nicht, über PDI ja, aber nicht mit diesem Teil.>> Der Dragon kann auch JTAG und ist auch als Debugger für JTAG und> DebugWire einsetzbar. PDI kann der Dragon nicht, aber das findest Du> auch nur bei den XMegas.
Danke für die Antwort.
> Der Mega8 hat nur ISP, der neuere und pinkompatible Mega88 kann auch> DebugWire und hat mehr Möglichkeiten und ist etwas schneller und im> Preis etwa gleich.
Im S-DIL Gehäuse kostet der ATMEGA 88-20 bei reichelt 3,55 €.
Etwas günstiger wird es erst als TQFP Gehäuse für 2,95 €, aber das
wollte ich vermeiden.
Der ATMEGA 8L8 kostet nur 2,35 €.
Aber trotzdem danke für den Hinweis.
Marko B. schrieb:> Wenns um den MSP430 und nur ums Programmieren geht: die MSP430 lassen> sich sehr gut ueber den eingebauten seriellen Bootloader programmieren.> Funktioniert einwandfrei ueber USB-RS232 Wandler und man braucht sonst> nichts.
Was für ein USB-RS232 Wandler wäre das?
Wenn ich damit das viel Geld spare, dann komme ich auch ohne Debugging
Option aus.
Im Studium habe ich z.B. auch den kompletten C Code direkt auf meinem
x86 Computer als x86 Binary getestet und dann nur noch
Hardwarespezifische Dinge an die MSP430 angepaßt.
Talad schrieb:> Marko B. schrieb:>> Wenns um den MSP430 und nur ums Programmieren geht: die MSP430 lassen>> sich sehr gut ueber den eingebauten seriellen Bootloader programmieren.>> Funktioniert einwandfrei ueber USB-RS232 Wandler und man braucht sonst>> nichts.>> Was für ein USB-RS232 Wandler wäre das?
Vollkommen beliebig, solange er RS232 mit 9600bps macht. Wenn Du noch
einen PC mit RS232 Port hast, dann kannst Du natuerlich auch den
benutzen. Er muss allerdings RTS und DTR haben, um die
Aktivierungssequenz fuer den Bootloader zu toggeln.
Ich hab ein Handy-Datenkabel zerlegt. Der darin enthaltene Wandler hat
einen integrierten 3,3V Spannungsregler und liefert auch 3,3V
Spannungspegel - perfekt fuer den MSP430. Damit kann man gleichzeitig
noch die Schaltung versorgen und braucht sonst gar nichts.
Der Bootloader unterstuetzt uebrigens das Schreiben von Daten ins RAM
und das direkte Anspringen einer Adresse. Damit kann man kleine
Programme direkt ins RAM laden und von dort ausfuehren. Ich hab mir eine
Python-Lib und eine Shell geschrieben, um mit dem Bootloader zu
kommunizieren.
> Wenn ich damit das viel Geld spare, dann komme ich auch ohne Debugging> Option aus.> Im Studium habe ich z.B. auch den kompletten C Code direkt auf meinem> x86 Computer als x86 Binary getestet und dann nur noch> Hardwarespezifische Dinge an die MSP430 angepaßt.
Real Men(tm) debug with printf().
Talad schrieb:> Ich brauche vor allem einen guten A/DC.> Beide haben einen 10 bittigen ADC, wobei der AVR je nach Chiptyp mehrere> davon hat.
Es gibt nicht "Den MSP430", sondern ziemlich viele unterschiedliche
Modelle, die durchaus unterschiedliche ADCs haben. Es gibt auch 12- und
16-Bit-Wandler in MSP430-Varianten.
Wenn Du ein Familienmitglied mit SpyBiWire-Interface nutzt, dann kannst
Du das sehr kostengünstige LaunchPad als Programmier- und
Debuginterface verwenden.
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G2%29?DCMP=launchpad&HQS=Other+OT+launchpadwiki
Zwar ist das Launchpad primär dafür vorgesehen, die sehr einfach
strukturierten MSP430G-Varianten zu verwenden, es lässt sich aber auch
mit "Dickschiffen" wie dem 'F5438 verwenden.
Talad schrieb:> Wenn ich damit das viel Geld spare, dann komme ich auch ohne Debugging> Option aus.> Im Studium habe ich z.B. auch den kompletten C Code direkt auf meinem> x86 Computer als x86 Binary getestet und dann nur noch> Hardwarespezifische Dinge an die MSP430 angepaßt.
Vergiss das am besten gleich wieder. Das geht bei µC-Entwicklung nicht,
weil gerade die Anpassung der hardwarespezifischen Dinge eine anständige
Debugunterstützung erfordert.
Was Du da an einmal ausgegebenem Geld sparst, wirfst Du duch sehr viel
Zeitaufwand bei der Fehlersuche wieder zum Fenster hinaus. Selbst wenn
Du Deine Arbeitsstunde mit nur 1 EUR bewertest, lohnt die Investition in
ein anständiges Debug-Interface.
Der vollwertige MSP-FET430UIF ist die schickere Variante, aber das
Launchpad reicht auch, wenn Du mit SpyBiWire auskommst (was halt ältere
MSP430-Varianten wie z.B. 'F1611 ausschließt).
Der MSP430 hat aber im Gegensatz zu den AVRs eine vernünftige
Debugunterstützung schon in Hardware eingebaut.
Das debugginginterface ist bei den MSP430 um einiges leistungsfähiger
als bei AVR
Tobias Korrmann schrieb:> Der MSP430 hat aber im Gegensatz zu den AVRs eine vernünftige> Debugunterstützung schon in Hardware eingebaut.Das halte ich in dieser Form für eine reichlich gewagte Aussage.
Was nur weil ein Großteil der User AVRs verwendet?
Ich habe mit MSPs angefangen. Jetzt musste ich in der Firma mich mit
einem AVR beschäftigen genauer einem AT90CAN128.
Wenn ich dort die Debugfähigkeiten der beiden Prozessorarchitekturen
gegenüberstelle muss ich sagen das der MSP430 sich um Längen besser
debuggen lässt.
Das fängt schon damit an das ich, wenn ich einen Breakpunkt setzen
möchte, erst den Prozessor anhalten muss bevor ich den Breakpunkt setzen
kann.
Weiter gehts damit das ich die Optimierungseinstellungen auf O0 setzen
muss damit ich beim Debuggen auch wirklich sehe was er macht. Zu Anfang
(Debuseinstellungen auf Os dann auf O2 und O3) Ist der Debugger kreutz
und Quer durch meinen Code gesprungen und ich wusste nicht wiso. Nur mit
O0 machte er genau das was ich wollte.
Bei den MSP430 haben die Optimierungseinstellungen nicht mit der
Debugfähigkeit des Codes zu tun.
un ein weitere Großer Nachteil bei der Debugfunktion der AVRs ist der
Preis der dafür notwendigen Hardware.
JTAG ICE MKII kostet 300€ (Atmel AVR)
JTAG FET kostet 100 € (TI MSP430)
Tobias Korrmann schrieb:> Weiter gehts damit das ich die Optimierungseinstellungen auf O0 setzen> muss damit ich beim Debuggen auch wirklich sehe was er macht. Zu Anfang> (Debuseinstellungen auf Os dann auf O2 und O3) Ist der Debugger kreutz> und Quer durch meinen Code gesprungen und ich wusste nicht wiso. Nur mit> O0 machte er genau das was ich wollte.> Bei den MSP430 haben die Optimierungseinstellungen nicht mit der> Debugfähigkeit des Codes zu tun.
Das ist Quark, das hat nichts mit dem Controller, sondern mit dem
Compiler zu tun. Und wenn Dein MSP430-Compilat bei aktivierten
Optimierungen nicht "kreuz und quer" durch den Code springt, dann
funktionieren die Optimierungen nicht.
Tobias Korrmann schrieb:> un ein weitere Großer Nachteil bei der Debugfunktion der AVRs ist der> Preis der dafür notwendigen Hardware.Das ist allerdings wahr, vor allem, wo es für alle neueren
MSP430-Mitglieder mit SBW auch noch deutlich günstigere Debuginterfaces
gibt (Launchpad).
Tobias Korrmann schrieb:> un ein weitere Großer Nachteil bei der Debugfunktion der AVRs ist der> Preis der dafür notwendigen Hardware.> JTAG ICE MKII kostet 300€ (Atmel AVR)> JTAG FET kostet 100 € (TI MSP430)
Ich dachte jetzt mit dem AVG Dragon (ca. 50 €) könnte man auch debuggen?
Habe ich da jetzt etwas falsch verstanden?
Tobias Korrmann schrieb:> Das fängt schon damit an das ich, wenn ich einen Breakpunkt setzen> möchte, erst den Prozessor anhalten muss bevor ich den Breakpunkt setzen> kann.
Das dürfte eher ein Manko des AVR Studio sein (das ich als Debugger
eher miserabel finde, ehrlich gesagt), ich glaube, das JTAG ICE
selbst könnte den breakpoint auch "live" setzen, sofern es ein
JTAG-breakpoint ist. Wenn es aber ein software breakpoint ist (d.h.
es wird eine BREAK-Anweisung direkt in den Flash geschrieben), dann
wüsste ich nicht, wie man auf irgendeiner Architektur ohne Anhalten
der CPU auskommen sollte.
Leider ist das Protokoll des JTAG ICE extrem auf den Debugger AVR
Studio und dessen Fähigkeiten und Unfähigkeiten zugeschnitten, sodass
ein Debuggen bspw. mit dem GDB via JTAG ICE in der Tat eher lahm ist.
Das hat man bei Atmel übrigens auch gemerkt, als es dann an den AVR32
ging, dafür hat nun das JTAG ICE so eine Art "bypass mode", in dem
man direkt JTAG mit dem Prozessor redet. Im Prinzip müsste man darüber
auch eine bessere GDB-Anbindung an die 8-bit-AVRs organisieren können,
wenn sich mal jemand die Mühe machen würde, das zu zimmern.
Talad schrieb:> Ich dachte jetzt mit dem AVG Dragon (ca. 50 €) könnte man auch debuggen?
Ja, natürlich, und zwar mittlerweile alle 8-bit-AVRs.
>> Ich dachte jetzt mit dem AVG Dragon (ca. 50 €) könnte man auch debuggen?> Ja, natürlich, und zwar mittlerweile alle 8-bit-AVRs.
Auch alle XMega? Die Atmel-Homepage sagt etwas anderes.
Talad schrieb:> Also wenn ich mir das so durchlese:> http://msp430.techcontent.net/whymsp.htm>>> Dann scheint der MSP430 von der Programmierung her besser zu sein, als> Atmel (AVR).
Und du meinst, dass du nicht minder voreingenommene Abhandlungen
für nahezu jeden x-beliebigen Controller im Netz finden wirst?
Wenn schon, dann musst du solche Vergleiche von Leuten lesen, die in
mehr als einer Controllerfamilie regelmäßig zugange sind und damit
auch vergleichbare Projekte gemacht haben.
Selbst das historisch stärkste Argument für MSP430, der geringe
Stromverbrauch, ist mittlerweile schon mächtig angestaubt, da auch
neuere Controller anderer Hersteller dem kaum noch (wenn überhaupt)
nachstehen. In der Praxis wird der gesamte Energieverbrauch oft
viel mehr vom Rest bestimmt denn vom Controller selbst.
Jörg Wunsch schrieb:> Talad schrieb:>> Also wenn ich mir das so durchlese:>> http://msp430.techcontent.net/whymsp.htm>>>>>> Dann scheint der MSP430 von der Programmierung her besser zu sein, als>> Atmel (AVR).>> Und du meinst, dass du nicht minder voreingenommene Abhandlungen> für nahezu jeden x-beliebigen Controller im Netz finden wirst?
wobei ich dem rechtgebe wenn ich die MSP mit dem jetzt auch von mir
verwendeten AT90CAN 128 vergleiche. Dort schneidet der MSP430 um Längen
besser ab.
wobei es auch einen unschlagbaren Vorteil bei den ATMEL gegenüber MSP430
gibt.
Es gibt für AVRs eine kostenlose halbwegs vernünftig einsetzbare IDE
ohne Codebegrenzung welche man auch recht einfach installieren kann ohne
sich mit Makefiles und ähnlichem herumschlagen zu müssen.
CCS kostet allerdings auch nur 500 E in der Code unbegrenzten Version
(0€ bei 16kByte Codebegrenzung) und man kann damit auch die C2000
Derivate Programmieren und Debuggen
Tobias Korrmann schrieb:> Dort schneidet der MSP430 um Längen> besser ab.
Dasselbe würde wohl jemand sagen, der ungeliebt von einem AVR
auf MSP430 umzusteigen gezwungen wäre. Was an so einem Umstieg
am meisten stört ist, dass die grundlegenden Konzepte oft ganz
anders sind, sodass man einfach erstmal lange Zeit sucht, bis
man sich zurecht findet, während man in der gewohnten Architektur
"zu Hause" ist.
Nochmal ne Frage wegen AVR:
Was haltet ihr von diesem USB AVR Lab Programmiergerät?
http://wiki.ullihome.de/index.php/USBAVR-ISP/de
Vom Preis ist das sehr günstig.
Auf der Seite wird behauptet, daß man damit alle AVR Typen programmieren
und debuggn könnte.
Aber gilt das auch für AVR32?
Hat das Ding jemand und jemand dazu etwas sagen?
Dann hab ich noch eine Frage zum USB AVR-Lab.
Den kann man ja für diverse Programmiersoftware mit einer jeweils
passenden Firmware immer neu anpassen.
D.h. wenn man AVRISPmkII Kompatibiltiät will, dann nimmt man die
Firmware dafür.
Und wenn man STK500v2 Kompatibiltiät will, dann nimmt man halt die
andere Firmware.
Wäre es aber nicht sinnvoller, wenn es nur eine Firmware geben würde,
die sich dann mit einem Schalter am USB-Lab so einstellen läßt, daß
entweder AVRISPmkII oder STK500v2 usw. Kompatibiltiät erreicht wird?
Das wäre doch viel praktischer, denn es würde das neu Flashen ersparen.
Wenn man also ne andere Kompatibitlität braucht, dann steckt man einfach
nen Schalter um und schon ist die andere Kompatibitität hergestellt.
Immerhin ist auf dem USB AVR-Lab ein Mikrocontroller drauf und der
empfängt ja die Daten vom USB Bus.
Entsprechend könnte er sich ja auch Softwareseitig anders verhalten, je
nach dem was er simulieren soll, AVRISPmkII oder STK500v2 oder Oszi usw.
Und noch eine Frage.
Das USB AVR-Lab kann man ja auch als Osszilosop benutzen.
Wenn man damit also ne Schaltung mißt, kann es dann passieren, daß man
durch falsch verpolen oder durch eine zu hohe Spannung sein PC Mainboard
schrottet?
Also die zu hohe Spannung über das USB AVR-Lab in den PC gelangt?
Ist das irgendwie abgesichert?
Wenn nein, könnte man hier nicht Optokoppler dazwischen schalten?
Die Antworten auf die Fragen 1 und 2 kennst du doch schon, sonst würdest
du nicht fragen :-) Klar kannst du zuerst das USB AVR-Lab und dann
vielleicht auch den PC oder dessen USB-Port beschädigen.
Optokoppler zur galvanischen Trennung müssten grundsätzlich möglich
sein. Es wird aber Auswirkungen auf deine Messungen haben. Die LED im
Optokoppler braucht eine gewisse Durchflussspannung, d.h. Spannungen
unterhalb wirst du nicht mehr messen können. Und deine Messung wird
eventuell nicht linear sein. Die Lichtmenge aus der internen LED und der
Fotostrom des internen Fotoelements können nicht-linear mit der
angelegten Spannung zusammenhängen. Das will man bei einem Oszilloskop
eigentlich nicht haben. Optokoppler sind eine gute Idee, wenn du
digitale Signale galvanisch trennen willst, also z.B. beim Einsatz als
Logikanalysator oder Digitalinterface. Bei analogen Signalen, hmm,
Geschmackssache.
Talad schrieb:> Wäre es aber nicht sinnvoller, wenn es nur eine Firmware geben würde,> die sich dann mit einem Schalter am USB-Lab so einstellen läßt, daß> entweder AVRISPmkII oder STK500v2 usw. Kompatibiltiät erreicht wird?
Die Idee setzt voraus, dass im AVR genügend Platz für beide Funktionen
ist und dass ein Pin frei ist, den man zu Auswahl der Funktion benutzen
kann. Und dass jemand das programmiert. IMHO zu viel Aufwand, denn so
oft wird man sein ISP-Tool nicht umkonfigurieren, oder?
Stefan B. schrieb:> Optokoppler zur galvanischen Trennung müssten grundsätzlich möglich> sein. Es wird aber Auswirkungen auf deine Messungen haben.> Optokoppler braucht eine gewisse Durchflussspannung, d.h. Spannungen> unterhalb wirst du nicht mehr messen können. Und deine Messung wird> eventuell nicht linear sein.
Messung, Spannung häh?
Es geht hier doch allein nur um die Datenübertragung vom PC zum
Mikrocontroller!
Wie die Spannung bei der LED ist, ist doch völlig egal, solange das Bit
auch ankommt.
Und bezügl. dem Oszilloskop macht das ja nicht der PC, sondern der ADC
des µC.
Und letzterer schickt dann die fertigen Daten nur noch an den PC.
Warum sollte auf digitaler Ebene also keine galvanische Trennung möglich
sein?
> Optokoppler sind eine gute Idee, wenn du> digitale Signale galvanisch trennen willst,
Ja eben, darum geht es ja.
Zumal mir ja sowieo die Programmierung der µC viel wichtiger ist, als
das Teil als Oszilloskop einzusetzen.
Stefan B. schrieb:> IMHO zu viel Aufwand, denn so> oft wird man sein ISP-Tool nicht umkonfigurieren, oder?
Das kommt ja ganz darauf an ob man regelmäßig mit 2 µC arbeitet.
Aber den Umständen entsprechend würde ich wohl eher 2 USB AVR-Lab
bauen, anstatt eines ständig umzuprogrammieren.
Insofern wäre so eine Fits-All-Firmware durchaus sinnvoll.
Ob das drauf paßt weiß ich nicht, einige C Funktionen könnte man aber
sicher mehrmals wiederverwenden.
Stefan B. schrieb:> Die Antworten auf die Fragen 1 und 2 kennst du doch schon, sonst würdest> du nicht fragen :-)
Ob man AVR32 damit programmieren kann (Frage 1) weiß ich noch nicht.