- LiTime Speicher und Akkus         
Ergebnis 1 bis 7 von 7

Thema: Programmierschnittstellen ATMEL µC

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.11.2016
    Beiträge
    15

    Programmierschnittstellen ATMEL µC

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo zusammen,

    ich habe eine Frage an euch.

    Es gibt ja mehrere Möglichkeiten auf einen µC das Programm das man geschrieben hat aufzuspielen.

    Ich habe das bis jetzt immer mit "ISP" -> In System Programming gemacht.

    Das sind die am häufigsten verwendeten Programmierschnittstellen:

    ISP
    TDI
    PDI
    JTAG

    Nun frage ich mich ob alle Programmierschnittstellen die ISP-Programmierung unterstützen?
    JTAG und SPI können das.

    Wie sieht es mit den anderen aus?

    Wann verwende ich welche Schnittstelle?

    MfG

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.187
    OK:
    1. Alle mir bekannten ATMEL AVR Controller können ISP = In System Programming.
    Das bedeutet der Controller kann in der Zielschaltung programmiert werden, wenn man eine entsprechende Buchse vorsieht.
    Problematisch ist das nur, wenn auf einer der genutzen Schnittstellen ( MISO, MOSI, SCK, Reset ) eine niederohmige Last oder festes Potential liegt.
    Ausserdem darf der Reset Pin nicht per Fuse abgeschaltet werden. Zudem muss der Controller einen geeigneten Takt haben - Die Fuses müssen dafür richtig gesetzt sein.

    2. High Voltage Programming geht auch mit jedem Controller.
    Da hierbei einige Pins mit höheren Spannungen als 5V beaufschlagt werden kann man das üblicherweise in der Zielschaltung nicht machen.
    Also Chip in den Programmer und dann erst in die Zielschaltung einbauen.
    Dafür ist dann auch kein Takt oder sonstwas nötig.

    3. JTAG ist eigentlich eine Debug Schnittstelle die bei den AVR's aber erst ab dem ATMEGA 16 funktioniert. Da hierbei während des Debug Vorgangs Breakpoints in das Programm eingefügt werden, ist auch eine Programmierung über JTAG möglich. JTAG benötigt exklusiv ein paar Pins die dann in der Zielschaltung nicht vernünftig genutzt werden können.

    4. Die letzte Progrmmierschnittstelle ist, soweit ich mich entsinne PDI. Die geht nur bei relativ neuen AVR's und läuft ähnlich wie ISP - Direkt gearbeitet hab ich damit aber noch nicht.

    Was benutzt man denn nun.
    Wenn's ums debuggen geht ist wohl JTAG eine gute Alternative. Auch wenn JTAG Interfaces relativ teuer sind.
    Am flexibelsten ist wohl ISP auch wenn man dabei ein paar Sachen falsch machen kann.
    High Voltage Programming ist dann interessant, wenn man einen Controller "verfused" hat, oder kleine Serien auflegen will. Auch die Programmer dafür sind nicht gerade billig.
    PDI geht nur bei Controllern der neueren Generation und dürfte dann ähnlich nutzbar sein wie ISP.

    Da ich natürlich nicht alle jemals gebauten AVR Controller kennen kann, bitte ich eventuelle Fehler zu Entschuldigen und zu Berichtigen!

    Wenn man's ganz genau wissen will, muss man das Datenblatt zu Rate ziehen.
    Manchmal sind die ISP Pins nicht dort wo man sie erwarten würde z.B. ATMEGA 128

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Zitat Zitat von wkrug Beitrag anzeigen
    3. JTAG ist eigentlich eine Debug Schnittstelle die bei den AVR's aber erst ab dem ATMEGA 16 funktioniert. Da hierbei während des Debug Vorgangs Breakpoints in das Programm eingefügt werden, ist auch eine Programmierung über JTAG möglich. JTAG benötigt exklusiv ein paar Pins die dann in der Zielschaltung nicht vernünftig genutzt werden können.
    JTAG (Joint Test Action Group) war eigentlich ursprünglich nur für den Test von bestückten Leiterplatten gedacht und ist eine IEEE-Norm.
    Die Idee war, dass wenn man alle Pins eines ICs setzen und Lesen kann, man eine bestückte leiterplatte auf das Vorhandensein aller Verbindungen und Kurzschlüsse testen kann. Dazu bekam dann jedes IC ein Schieberegister, welches im Testmodus mit den Pins verbunden ist. Diese Schieberegister lassen sich dann noch in Serie schalten.
    Der nächste Schritt war es dann auch interne Funktionen eines ICs testen zu können.
    Daraus entstanden dann auch noch die Möglichkeiten zum Debuggen und Programmieren.

    Die Hardware-Schnittstelle ist unabhängig vom Hersteller genormt. Das Protokoll besteht dann aus allgemein genormten Befehlen und solchen die Hersteller-, bzw. IC-Spezifisch sind.


    ISP (In System Programming) ist eigentlich ein Oberbegriff und sagt nur etwas über den Einsatz der Schnittstelle aus. JTAG ist auch ISP.

    Ausser JTAG sind alle anderen Interface herstellerspezifisch und je nach IC-Familie und Generation auch sehr unterschiedlich.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.11.2016
    Beiträge
    15
    Und SPI -> Serial Peripheral Interface sagt eigentlich nur aus, das es sich um eine Serielle Schnittstelle handelt.

    Das heißt, dass folgende Schnittstellen zu SPI gehören:

    ISP, JTAG, PDI, TDI,

    da sie ja alle seriell arbeiten.

    Stimmt das so?

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.187
    Die Schnittstellen sind wohl seriell.
    Allgemein wird aber mit SPI eine Schnittstelle bezeichnet die seriell Peripherie ansteuert.
    Dabei steuert ein Master einen bzw. mehrere Slaves an.
    Üblicherweise werden dafür die Ports MISO, MOSI, SCK und pro Slave Chip eine eigene ENABLE Leitung benutzt.
    Bei vielen ATMEL Controllern werden dann diese Pins + Reset auch für die ISP Programmierung benutzt - Aber nicht bei allen.
    JTAG ist im Prinzip auch ISP, spricht man allerdings in der ATMEL Welt von ISP ist meistens die 6 oder 10 Polige ISP Programmier- Schnittstelle gemeint.

    Jedes Programmiergerät kann eine, zwei, oder sogar 3 Schnittstellen bedienen.
    Also richtet man sich als Hobbyist danach, welchen Programmer man hat, oder wie viel Geld man für ein Programmiergerät ausgeben mag.

    Vorschlag:
    Schnapp Dir mal ein Datenblatt von nem ATMEGA 16 und guck in der entsprechenden Rubrik, wie die Schnittstellen funktionieren.
    Ist zwar viel Text, aber sehr lehrreich.

  6. #6
    ISP = bei Tinys und Megas verbreitet, nur programmieren (4 Leitungen + GND, VCC)
    PDI = bei den XMegas verbreitet, programmieren und debuggen (2 Leitungen + GND, VCC)
    debugWire = bei den Tiny verbreitet, programmieren und debuggen (1 Leitung + GND, VCC)
    JTAG = bei AVR von Mega bis 32 bit zu finden, programmieren und debuggen (min. 4 Leitungen + GND, VCC)
    TDI = ein Signal der JTAG Leitung?! Sonst mir nicht bekannt...

    Immer schön darauf achten welcher Controller was kann. Mit ISP fährt man IMO bei Atmel am schlechtesten, da man viele Leitungen hat und nicht ordentlich debuggen kann.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    27.11.2016
    Beiträge
    15
    Und das "High Voltage Programming" bezeichnet man als HVSP, stimmt das?

    TDI ist eine der Leitungen, so wie Du es gesagt hast.
    Sorry, mein Fehler!

    Könnt Ihr mir auch bei meinen anderem Problem Helfen?
    Es geht um die HID eibindung in einen µC.
    Thema wurde im C-Softwarebereich bereits erstellt.

    MfG

Ähnliche Themen

  1. JTAG Atmel JTAGICE3 für Atmel und NXP?
    Von jojo45 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 25.06.2012, 21:25
  2. Welcher Atmel? Can -> Atmel -> PC
    Von Spacefish im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 05.12.2008, 11:14
  3. Atmel STK-500
    Von ponypedro im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 30.04.2008, 21:54
  4. Programmierschnittstellen RN-Mega2560 Modul
    Von RoboPunk im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 20.03.2007, 18:16
  5. Bascom 1-Wire Atmel zu Atmel
    Von Paisley im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 22.06.2006, 22:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus