Forum: Mikrocontroller und Digitale Elektronik ATmega 1284P ISP Problem bei bei SPI Clienten


von Nitram E. (slexx)


Lesenswert?

Guten Morgen,

Ich habe ein ATmega 1284P den ich mit einem DIAMEX-AVR-Programmer 
brenne.
An dem 1284 hängt ein Display FT800 und ein SD-Kartenmodul, beide 
fungieren über SPI-Bus der ja gleichzeitig als SPI-Schnittstelle zum 
brennen dient. Wenn ich das SD-Modul angeschlossen habe ist der 1284 
nicht brennbar (hat nur 2 mal geklappt) sobald ich aber das SD-Modul 
abgeschlossen habe, kann ich den 1284 ohne Probleme brennen.
Kann sein dass das SD-Modul den SPI-BUS stört? Wie kann ich sowas 
umgehen? 10k einhängen wie bei I2C?

von spess53 (Gast)


Lesenswert?


von Falk B. (falk)


Lesenswert?

@ Martin T. (slexx)

>An dem 1284 hängt ein Display FT800 und ein SD-Kartenmodul, beide
>fungieren über SPI-Bus der ja gleichzeitig als SPI-Schnittstelle zum
>brennen dient.

An beiden CS Signalen muss ein 10k Pull-Up Widerstand angeschlossen 
werden, dann sind die beim ISP ruhig.

von Nitram E. (slexx)


Lesenswert?

OK danke erstmal für die schnelle Antwort!

Also @spess53 du willst auf die 330Ohm Widerstände hinaus richtig? Sind 
die nicht im DIAMEX schon enthalten???? THX

>An beiden CS Signalen muss ein 10k Pull-Up Widerstand angeschlossen
>werden, dann sind die beim ISP ruhig.

Danke, kannst du mir noch sagen wieso das so ist? :) Oder redest du aus 
Erfahrung? THX

von Falk B. (falk)


Lesenswert?

@ Martin T. (slexx)

>>An beiden CS Signalen muss ein 10k Pull-Up Widerstand angeschlossen
>>werden, dann sind die beim ISP ruhig.

>Danke, kannst du mir noch sagen wieso das so ist? :)

Was soll denn ein SPI-Slave machen, wenn er NICHT ausgewählt wird (= CS 
HIGH)? Er MUSS die Klappe halten und MUSS sämtliche SPI-Signale 
ignorieren.

>Oder redest du aus Erfahrung? THX

Was sonst?

von Nitram E. (slexx)


Lesenswert?

Alles klaro danke! ;)

von Joachim B. (jar)


Lesenswert?

Ich habe alles was an SPI am AVR hängt mit 470 Ohm in Reihe entkoppelt 
ausser die ISP, die hängt direkt an den Pins.

Ich hatte noch nie Schwierigkeiten den AVR zu programmieren auch wenn 
was am SPI hängt.

von Falk B. (falk)


Lesenswert?

@Joachim B. (jar)

>Ich habe alles was an SPI am AVR hängt mit 470 Ohm in Reihe entkoppelt
>ausser die ISP, die hängt direkt an den Pins.

Unnötig, im Einzelfall kritisch. Denn damit werden die Treiber mit 470 
Ohm Ausgangswiderstand versehen, im Normalfall haben die um die 30-100 
Ohm. Das kann bei vielen IC am SPI oder langen Leitungen zu Problemen 
führen. Diese Serienwiderstände sind überflüssig.

>Ich hatte noch nie Schwierigkeiten den AVR zu programmieren auch wenn
>was am SPI hängt.

Ich auch nicht, und das sogar ohne Serienwiderstände.

von Joachim B. (jar)


Lesenswert?

Falk B. schrieb:
> Das kann bei vielen IC am SPI oder langen Leitungen zu Problemen
> führen.

du schreibst es ja selbst "kann"

IMHO ist SPI nichts für lange Leitungen!

Falk B. schrieb:
> Diese Serienwiderstände sind überflüssig.

Nicht wenn sie helfen, aber das weisst du ja, dann bräuchte oder dürfte 
ich schnelle Datenleitungen nie mit Serienwiderständen bestücken nach 
DEINER festen Meinung, die Wirklichkeit ist anders, nicht nur bei mir.

Falk B. schrieb:
> Ich auch nicht, und das sogar ohne Serienwiderstände.

auch das ist möglich, aber es geht nicht um dich sondern um ein Problem 
vom TO.

Vermutlich gibt es mehr als eine Lösungsmöglichkeit, deswegen andere 
schlechtreden hilft nicht bis das Problem vom TO eine Lösung erfahren 
hat.

Auch ein Falk ist nicht perfekt!

von Daniel (Gast)


Lesenswert?

Naja ich würde sagen, Falks Lösung behebt die Ursache. Die 
Serienwiderstände hingegen beheben das Problem.
Mit dem PullUp hält der Slave die Klappe (auch bei hochohmigen CS am 
AVR). Mit den Serienwiderständen ist der Programmer der stärkere und 
"gewinnt".

von Frickelfritze (Gast)


Lesenswert?

Joachim B. schrieb:
> Ich habe alles was an SPI am AVR hängt mit 470 Ohm in Reihe entkoppelt
> ausser die ISP, die hängt direkt an den Pins.

Das ist Pfusch am Bau, oder besser gleich gesagt Mist.

Einen Bus-Kampf so zu übertünchen ist wirlich nur Pfusch
und disqualifiziert den der sowas macht.

von Falk B. (falk)


Lesenswert?

@Daniel (Gast)

>Naja ich würde sagen, Falks Lösung behebt die Ursache.

Richtig.

>Die Serienwiderstände hingegen beheben das Problem.

Nö, sie kaschieren das Symptom.

Ausserdem braucht man an SCK und MOSI keinerlei Widerstände, denn die 
sind im Normalbetrieb Ausgänge und treiben NUR Eingänge anderer ICs (der 
SPI Slaves). Lediglich MISO ist ein Eingang und kann im ungünstigen Fall 
von einem IC getrieben werden. Hier hat Atmel wohl auch nicht ganz zu 
Ende gedacht. NUR wenn die ISP Pins im Normalbetrieb NICHT als SPI 
genutzt werden und von ICs getrieben werden können, DANN sind die 
Längswiderstände nötig. Bei SPI-Nutzung NICHT!

von Jim M. (turboj)


Lesenswert?

Martin T. schrieb:
> Kann sein dass das SD-Modul den SPI-BUS stört?

Ja. SD Karten kommen im SD Modus hoch und reagieren dadurch bei CS=High.

Daher müssen die zuerst in den SPI Mode umgeschaltet werden, was aber 
bei ISP nicht so einfach geht. Wenn das einfache Herausziehen der Karte 
keine akzeptable Lösung ist, bräuchte man einen Bustreiber - ich denke 
da an sowas wie 74HC125.

von Falk B. (falk)


Lesenswert?

@Jim Meba (turboj)

>> Kann sein dass das SD-Modul den SPI-BUS stört?

>Ja. SD Karten kommen im SD Modus hoch und reagieren dadurch bei CS=High.

Wirklich?

>keine akzeptable Lösung ist, bräuchte man einen Bustreiber - ich denke
>da an sowas wie 74HC125.

Hmm, den hatte ich bei meinen Projekten immer drin, damit verhielt sich 
die SD Card immer korrekt ;-)

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.