- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: AVRISP Programmieradapter zur Kommunikation mit PC verwenden

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.11.2004
    Ort
    Süderlügum
    Alter
    42
    Beiträge
    86

    AVRISP Programmieradapter zur Kommunikation mit PC verwenden

    Anzeige

    Praxistest und DIY Projekte
    Salve

    mir ist grade bei Atmel die Application Note AVR068: STK500 Communication Protocol in die Hände gefallen.

    Das Ding beschreibt wie der Titel schon sagt, das Kommunikationsprotokoll vom AVRISP bzw STK500.

    In der AN ist mit folgendes Kommando aufgefallen, welches der PC an den Flashadapter senden kann:

    CMD_SPI_MULTI
    This is a generic command that can be used to execute any of the ISP commands. The command writes a number of bytes to the SPI bus, and returns a number of bytes.

    Würde das nicht bedeuten, ich könnte wenn ich meinen AVRISP auf der Schaltung stecken hab, mittels des angeschlossenen Computers mit der Software im AVR über den SPI-Bus kommunizieren?
    Also den AVRISP als "SPI-RS232-Interface" missbrauchen.

    Ich müsste für mein Projekt am PC eine Software haben mit der man diverse Werte im Programm im AVR einstellen kann. Ich müsste das nicht häufig einstellen, nur aus Wartungsgründen ab und an mal. Und da ich die USART-Pins am AVR anderweitig belege und keine Lust habe auf Software-USART, wäre die Verwendung des SPI am eh schon vorhandenen ISP-Stecker eine optimale Methode.

    Würde das gehen? Was meint ihr?


    MfG Steinigtmich

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    Ich würde mal tippen, dass das kein "SPI-RS232-Interface" ist, sondern dass einfach die SPI Schnittstelle statt zum Beschreiben oder Auslesen des AVRs eben zum kommunizieren genutzt wird (senden/ empfangen statt Speicher beschreiben/auslesen)

    man kann ja auch Microcontroller untereinander mittels SPI kommunizieren lassen (soweit ich weiß)


    RS232 geht aber auch über den lpt (dann eben mit 5V und 0V als Pegel)
    Ich glaube aber nicht, dass es mit nem ISP-Programmieradapter geht.
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    03.11.2004
    Ort
    Süderlügum
    Alter
    42
    Beiträge
    86
    Zitat Zitat von AlKI
    ...sondern dass einfach die SPI Schnittstelle statt zum Beschreiben oder Auslesen des AVRs eben zum kommunizieren genutzt wird (senden/ empfangen statt Speicher beschreiben/auslesen)
    Na eben! So wie ich die AN verstanden habe, kann ich dieses Kommando mit den Bytes die ich über SPI senden will, mittels des PCs an den AVRISP schicken.

    Also vom PC aus über RS232 das Kommando CMD_SPI_MULTI mit den zu schreibenden Bytes an den AVRISP schicken, dieser schreibt die Bytes dann per SPI in den AVR. Auslesen genauso.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2007
    Ort
    Kornwestheim (kWh)
    Beiträge
    1.118
    to execute any of the ISP commands
    hmm, das hab ich irgendwie übersehen, oder statt "ISP" "SPI" gelesen...
    das kommt mir vor, wie ein Befehl zum Beschreiben des Flash mit einem oder mehreren In-System-Programming Kommandos. aber warum über RS232?
    Gruß, AlKi

    Jeder Mensch lebt wie ein Uhrwerk, wie ein Computer programmiert...
    ==> UMPROGRAMMIEREN!

    Kubuntu

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Wenn du auf deinem PC SPI nachbilden kannst sollte das schon funktionieren, allerdings musst du beachten das z.B. der Mega128 nicht die SPI-Schnittstelle für ISP verwendet. Fallst du für deinen Kommunikation den ISP-Stecker verwenden willst.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    03.11.2004
    Ort
    Süderlügum
    Alter
    42
    Beiträge
    86
    Oh, das würde schon passen. Ich möchte einen Atmega32 verwenden.

    Das Ding ist halt nur, in meiner Schaltung ist der USART schon belegt, und wenn es sich vermeiden lässt will ich mich nicht in Software-USART reinklabüstern (bin von Natur aus faul). Und auch keine Extra-Hardware verwenden, mal abgesehen vom AVRISP, den ich im Servicefall eh am Mann habe.
    Das Ganze wird ne Servicetechniker-Schnittstelle (mit mir als einzigem Servicemenschen), und ich möchte vom PC aus irgendwelche Werte in den Atmega reinschreiben können, und zwar möglichst ohne das Biest jedes mal neu zu flashen.

    Was ich als interressantesten Aspekt an der Geschichte sehe (sofern es denn letztendlich überhaupt funktioniert), ist der, dass man beim Prototypen-Entwickeln von einer Schaltung mit nem AVR so nichtmal eine zusätzliche Schnittstelle (z.B. USART) zum "Debuggen" vorsehen müsste sondern sich einfach per Software z.B. die Werte von Variablen einfach über den ISP-Dongle ausgeben lassen könnte.
    Watt dat spart....

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Die Variablenausgabe beim Debuggen sollte schon funktionieren, du wirst dir nur ein entsprechendes PC-Programm schreiben müssen, genau so wie für die Eingabe der Daten. Auf den Flash wirst du nicht zugreifen können, nur auf das EEPROM und auf Veriable die du vorher definierst.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #8
    Benutzer Stammmitglied Avatar von Johnes
    Registriert seit
    07.12.2007
    Ort
    Neu Wu
    Beiträge
    45
    Ich würde doch ein Softprotokoll nutzen um eine weitere Schnittstelle zu basteln! Das Problem ist bei ISP dass du die Software auch auf dem AVR dafür schreiben müsstest! Es gibt dafür sicher keine Kommandos, die dir einzelne Register zurück gibt bzw. beschreiben lässt!

    Bei einer USART kannst du die Kommandos ja nutzen wie du willst. Z.b. AT kommands oder Einfach nur Bytebefehle. Beim ISP musst du auf dem PC eine Software schreiben die die empfangenen Pakete lesen kann. Dann auch noch eine Software auf dem AVR, die dir überhaupt erst die Befehle sendet! (Zudem die Signale am ISP überhaupt einliest!)

    Da wäre ein Soft-USART viel schneller geschrieben.

    Ich habe bei mir auf einem Mega8 drei Softwareschnittstellen und die Hardware in Benutzung. (Datenkonzentrator für 3 RS-232 Geräte am PC)

    Für die Kommunikation nutze ich einfach das Terminal von Windoof. Da kann ich dann einfach meine Befehle reinkloppen und der Atmel sendet diese weiter zu dem passenden Endgerät. Die rückkommenden Daten, werden dann vom Atmel umgesetzt und als Klartext auf dem Terminal ausgegeben.

    Über das Terminal kann ich auch Intervalle für die automatische Messwertauslesung an den Atmel übertragen und dieser schreibt sich den Intervall dann in den EEPROM, sodass nach einem Neustart die Daten nicht erst per COM: eingestellt werden müssen.

    Von einem Sensor lese ich jede halbe Stunde die Werte und der Atmel schreibt sie in einen Ringspeicher, den in im SRAM definiert habe. Über einen Befehl, kann ich diese Werte dann ins Terminal schreiben lassen und weiter verarbeiten.

    MfG

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    03.11.2004
    Ort
    Süderlügum
    Alter
    42
    Beiträge
    86
    Ja... sieht mir im Nachhinein auch zu kompliziert aus grade.
    Nicht unschaffbar, aber da ich grade Urlaub hab und dementsprechend praktisch den ganzen Tag lang in meiner Bastelecke hocke und die lang ausgebrüteten Projekte umsetze, ist mir dafür grade ein bisschen zu wenig Zeit.
    Will sagen: Der Aufwand scheint mir den Zweck nicht ganz zu rechtfertigen.
    Ich hab schnell mal nen MAX232 rangehängt und gut is.

    Aber irgendwo merke ich doch, das kanns auf Dauer nicht sein.
    So werde ich mir bei Gelegenheit mal überlegen wie ich einen Universal-AVR-Adapter für den PC baue.

    Soll können:
    - Die AVRs flashen (STK500-Protokoll)
    - Eine TWI-Schnittstelle bereitstellen
    - Eine SPI-Schnittstelle
    - Einen USART (roh auf 5V-Pegel)
    - min. 8 Bit Datenport frei nach Lust und Laune konfigurierbar
    - AD-Wandler (ist ja eh an einem Atmega dran, warum denn nicht...)

    Kann heiter werden das zu bauen, und grade geht mir die Hardware aus, aber über kurz oder lang werde ich auf sowas wohl nicht verzichten können.

Berechtigungen

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

LiTime Speicher und Akkus