mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zusammenhang SPI - ISP


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen ATmega64 und betreibe einen spi-bus damit.

Zu testzwecken hab ich im SPI-Control-Register CPOL auf high gesetzt. 
Seit dem kann ich jedoch mit ISP keine verbindung herstellen.

Kann das an diesem Register liegen? Wenn ja, gibt es dazu eine Lösung?


Viele Grüße
Alex

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann das an diesem Register liegen?

Nö.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit anderen Worten es ist überhaupt völlig wurscht was im Gesamten 
SPI-Control-Register steht?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

völlig egal.
Zumal beim Mega64 der ISP nichtmal auf den SPI-Leitungen liegt, wenn ich 
jetzt nicht irre.

Gruß aus Berlin
Michael

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit anderen Worten es ist überhaupt völlig wurscht was im Gesamten
>SPI-Control-Register steht?

Für ISP ist das egal.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:

> Kann das an diesem Register liegen? Wenn ja, gibt es dazu eine Lösung?

Da ISP bei aktivem Reset arbeitet gibt es keine Beeinflussung.

Ärger kann aber das machen, was neben ISP noch an den betreffenden Pins 
hängt. Wenn trotz Reset aktiv.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es hängen tatsächlich noch LED-Treiber(max7221) an SCK. Möglicherweise 
gibt es da ein problem.

vielen dank

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Pins imBetrieb Ausgänge sin eigentlich nicht. Eher wenn der Pin 
selbst im Betrieb ein Eingang ist, also draussen ein Ausgang sitzt. Wenn 
beispielsweise ein MAXe an der UART sitzt, die wenn ich mich richtig 
erinnere zwei der ISP-Pins beherbergt. Was m.E. eine eher seltsame Wahl 
von Atmel darsellt, glücklichrweise ist das bei anderen Modellen besser 
gelöst.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe vorhin den Controller rausgelötet und einen neuen eingelötet.

CPOL auf high hat wieder die Wirkung, dass keine Programmübertragung 
stattfindnen kann.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltbild?

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke es liegt am SC Pin den du beschaltet hast, da dieser für ISP 
benötigt wird. Bau einen Jumper rein dann kannst du es zum Programmieren 
abtrennen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An SCLK hängt seiner Aussage nach ein LED-Treiber-IC. Wenn er das nicht 
falsch oder über zu langes Kabel angeschlossen hat, dann entsteht mit 
ISP kein Konflikt. Aber ohne Schaltbild ist das alles reine Spekulation.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier ist ein Bild von der Schaltung. Die Treiber die ich genannt habe, 
sind jetzt getrennt. Sowohl Spannungsversorgung als auch vom SCK. 
Trotzdem lässt sich der avr nicht programmieren.

viele Grüße
Alex

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hältst du von der Idee, den ISP Anschluss komplett mit dem AVR zu 
verbinden?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher stammt das Pinout vom ISP Anschluss? Von Atmel nicht, das ist mal 
sicher.

Den versprochenden LED-Treiber kann ich nicht erkennen. Immerhin geht es 
auch darum, wo Konflikte entstehen können.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Magnus,

bin mir nicht sicher was du meinst, jedoch sind alle benannten Netze 
verbunden. D.h. auch /Reset am ISP mit /Reset am Controller.

Hardwarebedrahtung muss stimmen weil ich bereits programmiert hab.

alex

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das Rätsel des ISP-Steckers ist geklärt. Das Pinout stammt doch von 
Atmel, gehört allerdings zum JTAG Anschluss. So wird das aber nichts.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die LED-Treiber habe ich ausgelötet, da ich diese als Problem 
ausschließen wollte. Der Schaltplan ist somit komplett.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Alex schrieb:
> Hallo Magnus,
>
> bin mir nicht sicher was du meinst, jedoch sind alle benannten Netze
> verbunden. D.h. auch /Reset am ISP mit /Reset am Controller.

Er meinte nur: es gibt 2 Varianten der ISP-Beschaltung, einmal die mit 
6Pin (2x3) und einmal die mit 10Pin (2x5). Üblicherweise benutzt man 
eine der beiden, weil dann ein einfaches 1:1 Kabel zum ISP-Programmer 
passt.
Die benutzen die üblicherweise ja auch.

Deine Beschaltung passt nicht zum 10Pin-Standard, das kannst Du zwar 
machen, es irritiert aber eben etwas, weil Du da ja dann ein 
Spezialkabel gebaut haben mußt.

Gruß aus Berlin
Michael

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo A.K.

Bei dem Programmieradapter handelt es sich um eine Eigenentwicklung 
meiner Hochschule. Und Funktioniert. Pinkompatibilität zu JTAG ist 
absicht.

Nochmal: Das Programmieren des Controllers hat funktioniert, bis ich das 
Bit CPOL im SPI-CONTROL-REGISTER auf high gesetzt hab.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wirst du wohl mit den Entwicklern des ISP-Programmers deiner 
Hochschule klären müssen, warum der Pegel von SCK ausserhalb vom 
Reset-Zustand diesen Programmer derart aus der Fassung bringt.

Denn dieser Programmer funktioniert - wie du selber festgestellt hast - 
eben nur wenn SCK ausserhalb vom Reset-Zustand einen bestimmten Pegel 
aufweist. CPOL dreht diesen Pegel um und der Programmer streicht die 
Segel.

Mit einem normalen Programmer sollte es funktionieren, vom Pinout mal 
abgesehen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Setzt du CPOL sofort nach dem Start und die Fuses sind vielleicht 
auch so eingestellt, dass trotz Quarz nicht erst 16ms gewartet sondern 
sofort losgelegt wird?

Kannst mal ein bischen Wartezeit ganz vorne in main() einbauen, noch 
bevor du CPOL setzt, 1sec oder so, vielleicht hilft das.

Alternativ kannst du CPOL nur während des SPI-Transfers setzen. Dann 
sollte auch kein Konflikt auftreten.

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein das du über einen Bootloader programmierst, da doch über 
MOSI und MISO statt über TX und RX programmiert wird. An meinen 6 
poligen ISP Anschluß befindet sich zumindestens kein SS, TX oder RX.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas O. schrieb:

> Kann es sein das du über einen Bootloader programmierst, da doch über
> MOSI und MISO statt über TX und RX programmiert wird.

Du hast offenbar noch nie mit dem Mega64/128 zu tun gehabt.

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat sich ja geklärt. Bin etwas langsam an Handy zu tippen.

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne habe ich auch nicht. Die ISP Schnittstelle sollte doch bei den großen 
AVRs über, SCK, MISO, MOSI, VCC, GND und RESET funktionieren. Hatte mir 
am Handy nicht die Mühe gemacht das Datenblatt runterzuladen und 
durchzusehen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo A.K.,

in den Fuses sind ich als start-up-time 64ms eingestellt und CPOL wird 
erst nach ca. 10 Zeilen initialisierung gesetzt. Ein delay kann ich im 
Moment nicht einbauen da ich ja nicht darauf zugreifen kann.

zu Thomas:

darf ich mal auf den Artikel verweisen: 
http://www.mikrocontroller.net/articles/AVR_Checkl... 
Besonderheiten bei TQFP64 Gehäusen PDI PDO usw.

Frohe Botschaft an diesem Abend ist wohl das ich morgen ein JTAG-ICE 
bekomme und dann sehen wir mal weiter.

viele grüße

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.