Forum: Mikrocontroller und Digitale Elektronik Eingänge über SPI einlesen


von Ulrich (Gast)


Lesenswert?

Hi
Ich will an einen Atmega8 ein paar zusätzliche Eingänge über SPI
anschließen. Dazu habe ich mehrere 74xxx165 angeschlossen. Im
Datenblatt steht leider absolut net viel zum Thema "Master receive".
Dort gibts nur "Slave receive" und "Master transmit".

Wie startet man den Einlese Vorgang? Ich habe dazu keine Flags
gefunden.
Meine Theorie ist das man einfach in das Datenregister irgendwelche
Sinnlose Daten zum Versenden reinschiebt. Und beim ve4rsenden dann die
Datenwelche reinsollen eingetaktet werden. Ich halte dies aber für ein
bissele Pfuschig und die Frage wäre nun gibts da eine "offizielle
Lösung"???????

von Rahul D. (rahul)


Lesenswert?

Meine Theorie ist das man einfach in das Datenregister irgendwelche
Sinnlose Daten zum Versenden reinschiebt. Und beim ve4rsenden dann die
Datenwelche reinsollen eingetaktet werden. Ich halte dies aber für ein
bissele Pfuschig und die Frage wäre nun gibts da eine "offizielle
Lösung"???????

deine Theorie ist richtig.
So arbeitet SPI nun mal.
Ist aber auch schön im Datenblatt erklärt.

von Ulrich (Gast)


Lesenswert?

OK dann mache ich es halt so.

kommt mir immer noch pfuschig vor ;-)


@Rahul Ghose
Könntest du mir bitte sagen wo das im Datenblatt steht?  sind zwar nur
3 Seiten aber ich finde es nicht direkt. Nur Wishiwaschi wo man sichs
zusammenreimen kann.

von A.K. (Gast)


Lesenswert?

Wenn's denn sein muss: PCF8274 per I2C dran hängen. Sieht viel
offizieller und eleganter aus, ist dafür langsamer und teurer.

von Ulrich (Gast)


Lesenswert?

und noch dazu übelst viel schwachsinniger overhead...

Außerdem würde es gar nicht gehen. Den SPI ist sehr schnell, reicht bei
mir für ein software PWM......

Keine Angst auch ich pfusche Zuviel aber auf das darf ich nicht näher
eingehen sonst bin ich ALG II Empfänger ;-)

von Rahul D. (rahul)


Lesenswert?

Guck dir doch mal Figure 58 im Complete Datasheet an. Da sieht man den
Zusammenhang sehr gut.

von Danny P. (Gast)


Lesenswert?

ich finds nich wirklich pfuschig....

der taktgenerator für den spi-clock arbeitet nur wenn der µC etwas
austakten soll...

ist der normale weg ein "dummybyte" auszutakten (geht ja eh ins
leere) um somit seriell einzulesen... ohne dies hättest du nie ein takt
auf der clock-leitung...

am anfang evt. etwas gewöhnungsbedürftig vom denken her... einfach nur
merken: Takte können nur beim austakten generiert werden... und die
takte brauchst du...

greetz
Danny

von Rahul D. (rahul)


Lesenswert?

und für spätere Anwendungen könntest du auch Schieberegister benutzen,
indem du seriell-parallel-wandelnde nimmst.
Über SPI kann man auch diverse AD-Wandler u.a. Sachen betreiben...

von Ulrich (Gast)


Lesenswert?

jo die 74Hxxxxx595 habe ich schon seit längerer Zeit als Ausgangs
erweiterung. Und mache somit ein 24Bit breites PWM Signal. Das
funktioniert auch 1a man muss nur Byte Reinkobieren und weg ist es...

Jetzt habe ich nur ein Problem mit ISP. Das funktioniert ja nun nicht
mehr. Weil die 74xxxx165 ja während des ISP Programmierens mit
angeschlossen sind.
Das Problem ist nun das ich daheim ca. 0 Elektronik Bauteile habe.
(Außer Standart Widerstände und LEDs)

Funktioniert es wenn ich den SPI-Bus mit je einem 1KOhm großen
Widerstand in Reihe schalte? Und den ISP Stecker zwischen Controller
und den Widerständen einlöte??? Ist der Wet mit 1 KOhm gut gewählt? Ich
programmiere mit dem einfachsten ISP Dongle des es gibt. (Paralleler
Stecker und 2 Widerstände....)

Oder soll ich es mit Und oder bauteilen in verbindung mit dem Reset
Signal das irgendwie multiplexen????

PS: Ich weiß ich schreibe manchmal sehr unverständlich ;-)

von Rahul D. (rahul)


Lesenswert?

Wie waere es denn mit einem Jumper in jeder Leitung?

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.