Forum: Mikrocontroller und Digitale Elektronik Mehrere SPI parallel geht nicht?!


von Tomas (Gast)


Lesenswert?

Hallo,
ich habe hier einen Atmega32 den ich über ISP programmieren..und daran 
ein SPI IC...
Wenn ich die ich glaube SDO Leitung abklemme, kann ich den mega flashen, 
sidn aber beide an dem IC und dem mega dran, klappt das Flashen nicht 
mehr...
Ist das normal?
Ich dachte immer, Spi lässt sich beliebig parallel schalten.

von Falk B. (falk)


Lesenswert?

Es fehlt ein externer Pull-Up Widerstand am CS deines SPI-ICs.

von Tomas (Gast)


Lesenswert?

ahh, ok danke

von Tomas (Gast)


Lesenswert?

am cs?
Wieso am CS?

Wenn ich SDO bzw SDI das weiß ich egrade nicht, vom anderen IC abklemme 
klappt es doch aber

Daten senden kann ich sowohl per ISp zum Mega also auch mit dem Mega zum 
IC..hmmm

von Falk B. (falk)


Lesenswert?

@ Tomas (Gast)

>am cs?
>Wieso am CS?

Damit der IC DEselektiert wird und den Schnabel hält, sprich SEINEN SDO 
Ausgang, welcher an MISO angeschlossen ist, hochohmig schaltet und nicht 
ISP stört.

von Klaus 2. (klaus2m5)


Lesenswert?

ISP wird durch -Reset aktiviert, SPI slave durch -CS. Du musst nun 
sicherstellen, dass während die Atmega Pins durch den Reset in High-Z 
gehalten werden -CS deaktiviert ist

von Tomas (Gast)


Lesenswert?

Ah, ok, das macht Sinn :-)

von c-hater (Gast)


Lesenswert?

Tomas schrieb:

> ich habe hier einen Atmega32 den ich über ISP programmieren..und daran
> ein SPI IC...
> Wenn ich die ich glaube SDO Leitung abklemme, kann ich den mega flashen,
> sidn aber beide an dem IC und dem mega dran, klappt das Flashen nicht
> mehr...
> Ist das normal?

Ja.

> Ich dachte immer, Spi lässt sich beliebig parallel schalten.

Ja, nur ist SPI != ISP, auch wenn die gleichen Buchstaben in den 
Akronymen vorkommen und sich die beiden Schnittstellen beim AVR oft 
(aber längst nicht immer) die Pins teilen.

Es ist wie immer: Man muß einfach wissen, was man tut und nicht bloß 
fremden unverstandenen Code zusammenkopieren.

Wenn z.B. im Normalbetrieb der AVR der Master ist und alle 
angeschlossenen SPI-Slaves über einen eigenen /CS bzw. /CE-Anschluß 
verfügen, ist es kein Problem, dann muß nur jeder dieser Anschlüsse 
einen externen Pullup nach Vcc verpaßt bekommen und der entsprechende 
Slave wird sich in der Folge beim Programmieren via ISP nicht (mehr) 
störend bemerkbar machen.

Auch einfach zu beherrschen ist die Sache, wenn es statt /CE oder /CS 
bei einem der Slaves nur CE oder CS gibt. Dann muß es halt statt des 
PullUp ein PullDown-Widerstand werden.

Ist hingegen ein IC beteiligt, der nicht über einen /CS oder 
/CE-Anschluß verfügt oder ist der AVR im Normalbetrieb nicht der 
alleinige SPI-Master, dann wird es erheblich komplizierter. Dann muß 
man erst recht wissen, was man tut und nicht nur fremden unverstandenen 
Code zusammenkopieren...

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.