Forum: Mikrocontroller und Digitale Elektronik ISP-Programmierung mit angeschlossenem SPI-Slave


von Molle (Gast)


Lesenswert?

Moin!
Habe einen SPI-Motortreiber (TMC2130) an einem AVR hängen. Leider klappt 
die ISP-Programmierung (mittels AVRISP mkII) nur, wenn das Treibermodul 
nicht angeschlossen ist. Dieses ist hier glücklicherweise über ne 
Stiftleiste aufgesteckt, ist aber trotzdem nervig, es jedes Mal zu 
entfernen, falls programmiert werden soll.

Wie kann man das Problem umgehen? JTAG-Pins sind leider schon 
anderweitig belegt.

von Andre (Gast)


Lesenswert?

UART Bootloader, oder ISP über Widerstände oder Bustreiber entkoppeln. 
Unbedingt auf Pull-Down/-Up am Treiber achten, damit der nicht ungewollt 
los läuft wenn der Prozessor im Reset ist.

von Einer K. (Gast)


Lesenswert?

Der Pin CSN sollte einen Pullup bekommen.

von Spess53 (Gast)


Lesenswert?

Hi

>UART Bootloader, oder ISP über Widerstände oder Bustreiber...

Es gibt auch USART im SPI-Mode. Dann ist der ISP Frei. Und das das SPI 
ist gepuffert.

MfG Spess

von pegel (Gast)


Lesenswert?


von c-hater (Gast)


Lesenswert?

Spess53 schrieb:

> Es gibt auch USART im SPI-Mode. Dann ist der ISP Frei. Und das das SPI
> ist gepuffert.

Ja klar. Hat halt nur nicht jeder AVR8.

von Heinz (Gast)


Lesenswert?

Du schließt den ISP Programmer direkt an die entspr. Pins am Controller 
an.
Das SPI-Device schließt du über 3x 330Ohm an den Controller an.
Es gibt wie o.g. auch eine offizielle Beschreibung von Atmel dazu.
Hier eine praktische Umsetzung. Sie entspricht der Beschreibung und 
funktioniert problemlos zusammen mit dem offiziellen Programmer (AVR-ISP 
MKII):
https://github.com/tinytronix/homeautomation/blob/master/Hardware/LoraPowerswitch/schematic.pdf

von Einer K. (Gast)


Lesenswert?

Heinz schrieb:
> Das SPI-Device schließt du über 3x 330Ohm an den Controller an.

Warum nicht einen Pullup an dem CSN Pin des SPI Slave?
Der macht dann seine SPI Pins hochohmig, sobald der AVR in den Reset 
geht, und stört nicht mehr.

Ist das so falsch, dass die/meinige vorherige (fast gleich lautende) 
Antwort, negativ bewertet werden muss?

Heinz schrieb:
> 
https://github.com/tinytronix/homeautomation/blob/master/Hardware/LoraPowerswitch/schematic.pdf

Auch hier würde sicherlich ein Pullup an NSS reichen.
Denn höchstvermutlich lässt auch der DRF1268 dann den Bus los.

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Warum nicht einen Pullup an dem CSN Pin des SPI Slave?
> Der macht dann seine SPI Pins hochohmig, sobald der AVR in den Reset
> geht, und stört nicht mehr.

Wenn das ein "richtiges" SPI-Device ist, dann geht das natürlich. Die 
Schutzwiderstände sind dann zwar nicht mehr sinnvoll, schaden aber auch 
nicht sehr. Leider gibt es aber viele "SPI-Devices", die entweder von 
Hause aus keine richtigen sind (also keinen SS/CS-Pin haben) oder bei 
denen der bretzeldumme Designer diesen hart auf das aktive Potential 
gelegt hat, um einen Controllerpin zu sparen.

In diesen beiden Fällen hilft das "pullup-CSN-Konzept" nicht.

> Ist das so falsch, dass die/meinige vorherige (fast gleich lautende)
> Antwort, negativ bewertet werden muss?

Nö, die negative Bewertung resultiert natürlich einzig daraus, dass du 
du bist und ein paar grenzdebile Klopsköppe das Bewertungssystem dafür 
missbrauchen, ihre persönliche Sympathie/Antipathie gegenüber der Person 
zum Ausdruck zu bringen, statt (wie es eigentlich gedacht war) die Sache 
zu bewerten.

Vollidioten halt. Leider führt es dazu, dass das Bewertungssystem fast 
völlig unbrauchbar wird. Nur für Eingeweihte erschließt es sich: Bekommt 
irgendeine Person nahezu immer eine bestimmte kleine Anzahl Punkte, muss 
man natürlich die realen Anzeige für die entsprechende Person bei jedem 
Posting um die entsprechend negierte Zahl Punkte korrigieren, um das 
reale Bild zu erhalten.

Oder man ignoriert das Bewertungssystem gleich komplett. Fällt sehr 
leicht, wenn man sich erst garnicht anmeldet und spart dann auch noch 
den Aufwand zur Anmeldung...

von Molle (Gast)


Lesenswert?

Der Pull-Up am CSN-Pin hat geholfen. Hatte den zuvor nicht verwendet, 
weil der Treiber im "StandAlone"-Mode (nicht SPI) über u.A. diesen Pin 
mittels High/Low/TriState-Zuständen gesteuert werden. Naja solange ich 
alle Funktionalität auch über SPI konfiguriert kriege, kein großer 
Verlust...

Mal so generell: Was bevorzugt ihr zum Programmieren, wenn es keine 
relevanten Randbedingungen gibt?
Um universell auch mal nen STM32 oder so zu flashen und fürs 
On-Chip-Debuggen ist JTAG ja anscheinend das Beste. Nur der originale 
Atmel JTAGICE kostet ja nen Haufen Geld, hab jetzt mal nen China-Klon 
für ein Zwanzigstel des Preises bestellt, mal sehen was der taugt.

von Einer K. (Gast)


Lesenswert?

c-hater schrieb:
> Fällt sehr
> leicht, wenn man sich erst garnicht anmeldet

Ja, nee ...
Ich bin hier der "Arduino Fanboy" und möchte auch PM/Email erhalten 
können.

Molle schrieb:
> Mal so generell: Was bevorzugt ihr zum Programmieren, wenn es keine
> relevanten Randbedingungen gibt?
Das, was gerade zur Hand ist, und seinen Zweck erfüllt.

Oder möchtest du eine Liste sehen?

von Hermann W. (hermannw)


Lesenswert?

Ich habe auch mehrere AVR auf einem Board, die über I2C verbunden sind. 
Sie haben alle einen eigenen ISP-Stecker. Beim Programmieren setzte ich 
einfach einen Jumper auf die anderen ISP-Stecker zwischen GND und Reset 
(Pin 5 und 6). Damit sind alle Pins hochohmig.

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Ja, nee ...
> Ich bin hier der "Arduino Fanboy" und möchte auch PM/Email erhalten
> können.

OK, dann musst du halt einen anderen Weg finden, die nutzlosen 
Bewertungen ignorieren zu können. Wenn du das mental nicht selbst 
schaffst, dann würde ich ein Stück lokales JS vorschlagen, was dir den 
für dich offensichtlich mental zu anstrengenden Kram entsorgt, bevor du 
ihn zu Gesicht bekommst...

Wo ist das Problem?

Wie schon gesagt: wenn man ohnehin JS verfaßt, kann man das auch so 
lösen, dass es "korrigierte" Werte liefert, statt den Scheiß komplett 
auszublenden.

Du hast die Wahl.

von Einer K. (Gast)


Lesenswert?

c-hater schrieb:
> Wenn du das mental nicht selbst schaffst
Ach, da mache dir mal kein unnützen Hoffnungen...

Eigentlich möchte ich die feigen Heckenschützen gerne mal aus der 
Deckung locken. z.B. um ihnen zu erklären, wofür die Bewertungsfunktion 
gedacht ist.
(danke, dass du mir die Erklärung abgenommen hast)
Sie stellen sich aber nicht öffentlich.
Kauern sicherlich ängstlich bibbernd hinter dem Sofa und sobald man 
ihnen den Rücken zukehrt, werfen sie heimlich mit Wattebäuschen (mit 
irrationalen Bewertungen)

von Falk B. (falk)


Lesenswert?

Arduino Fanboy D. schrieb:
> Eigentlich möchte ich die feigen Heckenschützen gerne mal aus der
> Deckung locken.

Wozu? Mein Motto lautet

"Was stört es eine deutsche Eiche, wenn sich ein Schwein dran scheuert?"

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Eigentlich möchte ich die feigen Heckenschützen gerne mal aus der
> Deckung locken. z.B. um ihnen zu erklären, wofür die Bewertungsfunktion
> gedacht ist.
> (danke, dass du mir die Erklärung abgenommen hast)
> Sie stellen sich aber nicht öffentlich.

Ich kenne sie, ziemlich sicher. Solche Informationen fallen bei meiner 
KI quasi als Abfallprodukt hinten raus. Natürlich nicht annähernd mit 
der Zuverlässigkeit, die der Betreiber der Site erreichen könnte (wenn 
er das wollen würde, was er aber wohl nicht tut), denn der hat viel mehr 
Information.

Aber ich bin doch ziemlich sicher, meine und auch deine Down-Voter zu 
kennen. Und auch die von etlichen anderen Regulars einschließlich derer, 
die offensichtlich auch einen Kreis von Up-Votern haben...

Keine Kunst. Nur angewandte Statistik und eine hinreichend breite 
Datenbasis.

von Peter D. (peda)


Lesenswert?

Falk B. schrieb:
> "Was stört es eine deutsche Eiche, wenn sich ein Schwein dran scheuert?"

Ich habe auch einen Fan, der mich permanent negativ bewertet. Ich fühle 
mich dadurch geschmeichelt, denn ich werde beachtet. Allerdings wird er 
durch die positiven Bewertungen später wieder überstimmt.

von Einer K. (Gast)


Lesenswert?

Falk B. schrieb:
> Wozu?

Ganz eigennützig:
Es interessiert mich schon ein wenig, warum sie sich so verhalten.
So aus Küchenpsychologischer Sicht.
Auch: Bin ich denn wirklich so gefährlich, dass man den "Blumenpott" nur 
aus dem Hinterhalt "gewinnen" kann?

Und andererseits, wäre das sicherlich für die betreffenden Leute selber 
ganz gut, wenn sie sich von solchen Zwängen/Ängsten befreien könnten.
Ich schätze nicht, dass das gesund ist.
Macht ja so, wie es ist, auf Dauer nix besser...

von c-hater (Gast)


Lesenswert?

Peter D. schrieb:

> Ich habe auch einen Fan, der mich permanent negativ bewertet. Ich fühle
> mich dadurch geschmeichelt, denn ich werde beachtet. Allerdings wird er
> durch die positiven Bewertungen später wieder überstimmt.

Du bist einer der Wenigen, der definitiv auch einige aktive reguläre 
Up-Voter hat, die selbst Beiträge mit offensichtlich falschen Inhalten 
mit +1 bewerten.

Ich würde mir da also nicht allzuviel darauf einbilden...

von Heinz (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Warum nicht einen Pullup an dem CSN Pin des SPI Slave?

Ja stimmt, bin ich gar nicht drauf gekommen, ich bin mehr oder weniger 
blind den Design-Empfehlungen von Atmel gefolgt. Wenn ich richtig 
erinnere stand in eben jener Design-Empfehlung aber auch, dass die 3x 
330Ohm auch bei falsch designten Chips oder hängen gebliebenen 
SPI-Statemachines im Chip immer sicher funktionieren. Viele Wege führen 
nach Rom!

von Veit D. (devil-elec)


Lesenswert?

Falk B. schrieb:
> "Was stört es eine deutsche Eiche, wenn sich ein Schwein dran scheuert?"
Mich haut's weg.  :-)

Zum Thema beitragend. Ein 74HCT4053D oder SN74CBT3257 ist die 
Universallösung. Das Resetsignal steuert alles und der SPI Bus ist 
komplett abgeklemmt, man muss sich keinerlei Gedanken machen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.