Forum: FPGA, VHDL & Co. AVR ISP Protokoll


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von herbertT (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich bin's schon wieder.

Ich will auf einem FPGA ein ISP Modul zum Programmieren eines Softcores 
implementieren. Der ISP-Programer nennt sich mySmartUSB light. Mein 
Modul tut mittlerweile auch das was ich will, was ich vom ISP-Programer 
nicht behaupten kann.

Mit dem Protokoll habe ich mich nach den Datasheets von Atmel orientiert 
(Siehe Atmega328 Datasheet, 31.8). Beim starten eines 
Programmiervorgangs wird dabei immer dieser Command gesendet: 0b 
10101100 01010011 000000 000000. Der Controller antwortet (auf MISO) 
beim 3. Byte mit dem empfangenen 2. Byte (also 0101001). Dabei wird der 
Wert von MISO mit der fallenden Taktflanke eingelesen (siehe Bild).

Ich habe den Vorgang mit dem Oszilloskop gemessen (Bild). Nur leider 
sagt der Programer: timeout beim starten des Programmiervorgangs.
Man sieht auch auf dem Oszi das der Programmer den Startbefehl mit 
fallender SCK-Frequenz mehrmals sendet. Er akzeptiert also die Antwort 
meines FPGAs nicht, welcher aber genau das macht, was im Datasheet 
beschrieben ist!

Kann da mal jemand drüber schauen, vielleicht hab ich mal wieder etwas 
Offensichtliches übersehen...

verwendeter ISP-Programer:
http://shop.myavr.de/Systemboards%20und%20Programmer/mySmartUSB%20light%20-%20AVR%20ISP%20Programmer.htm?sp=article.sp.php&artID=200006
Eingestellt ist der Atmega328.

Atmel Datasheet:
http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf

Atmel Appnote ISP-Protokoll:
http://www.atmel.com/Images/Atmel-0943-In-System-Programming_ApplicationNote_AVR910.pdf

von herbertT (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mist, ich wollte die Bilder eigentlich noch in PNG umwandeln...

von M. M. (blackcow)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mein zweiter Versuch, in dem das Datenbit von MISO bei der 
steigenden SCK-Flanke anliegt. Funktioniert auch nicht!

von M. M. (blackcow)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und hier habe ich noch die Messdaten von einer erfolgreichen Übertragung 
auf einen Atmega.

von M. M. (blackcow)


Bewertung
0 lesenswert
nicht lesenswert
Also, das Problem lag daran das der Programer noch weitere 
Abfragekommandos ausführt. Wenn keine passenden Antworten vom FPGA 
kommen, bricht er ab. Hab jetzt die benötigten Befehle noch 
implementiert und jetzt geht's.

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
M. M. schrieb:
> Also, das Problem lag daran das der Programer noch weitere
> Abfragekommandos ausführt.

Magst du auch verraten, welche?

von M. M. (blackcow)


Bewertung
0 lesenswert
nicht lesenswert
S. R. schrieb:
> Magst du auch verraten, welche?

So sieht der Ablauf (gesendete Befehle für EEPROM Programmierung) aus:
// Beginn
-Programming Enable
-Read Signature Byte (0-2)
// Programmierung
while( nicht alle Bytes geschrieben ){
  -Write EEPROM Memory
  -Read EEPROM Memory
}
// Abschließende (nochmalige) Kontrolle der Daten
while{ nicht alle Adressen gelesen }
  -Read EEPROM Memory
}

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Danke.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.