Forum: Mikrocontroller und Digitale Elektronik 2 externe Gerate an einer SPI - Hardware VS Software


von Christian P. (peterfrosta)


Lesenswert?

Hallo Zusammen.

im Prinzip hab ich zwei Fragen.
Einmal Frag ich mich wo die Vor bzw Nachteile bei der Software- und 
Hardware-Spi sind.
Ist die Hardware-Spi schneller? oder ist der Vorteil, dass das Programm 
andere Sachen machen kann, wärend noch empfangen/gesendet wird?

Zum Anderen:
ich möchte zwei Module an den Atmega via SPI anschließen.
Klar ich könnte zwei mal eine Software SPI implemientieren oder einmal 
Software und einmal Hardware SPI. Wobei jeweils eine SPI andere Portpins 
verwendet.
Ich dachte mir aber, ich könne die Hardware SPI nehmen. Alle Portpins 
BUSmäßig an Atmega, Modul 1 und Modul 2 hängen.
Für das Chipselect dann natürlich jeweils einen eigenen Pin.
Kann ich der HardwareSPI einen anderen als den standart SS-Pin 
beibringen?
dann müsste ich vor jeder Sendefunktion immer nur den SS-Pin ändern.

Oder dann doch lieber SoftwareSPI und einen SS-Pin als Parameter an die 
Funktion übergeben?

danke und mfp
Peter

von Tom M. (tomm) Benutzerseite


Lesenswert?

Christian Peskov schrieb:
> Ist die Hardware-Spi schneller?

Nicht unbedingt, kommt wahrscheinlich auf den Controller an. Ein 
atmega168 kann die Daten mit dem halben externen Takt rausschieben. Das 
geht mit Software natürlich nicht.


> oder ist der Vorteil, dass das Programm
> andere Sachen machen kann, wärend noch empfangen/gesendet wird?

Ja.

Christian Peskov schrieb:
> Ich dachte mir aber, ich könne die Hardware SPI nehmen. Alle Portpins
> BUSmäßig an Atmega, Modul 1 und Modul 2 hängen.
> Für das Chipselect dann natürlich jeweils einen eigenen Pin.
> Kann ich der HardwareSPI einen anderen als den standart SS-Pin
> beibringen?

Würd ich so machen. SS wird (bei den mir bekannten atmegas) immer "zu 
Fuss" gesetzt. Allerdings muss der SS Pin sauber initialisiert werden, 
sonst streikt die hardware SPI. Siehe Datenblatt deines Controllers.

PS. Standar*d*, nicht Standart(e).

von Michael D. (etzen_michi)


Lesenswert?

Die Hardware SPI ist um einiges schneller .. biszu f/2 für CLK.

Desweiteren muss der dann nur arbeiten um die Daten dem SPI zu 
übergeben, während dieser dann alles selber raus schaufelt.

Den SS kann man auch per Software auf anderen PIN's legen. Bei mir ist 
er immer als Ausgang deklariert damit ich ich frei habe und nicht am 
SPI.

von Christian P. (peterfrosta)


Lesenswert?

Tom M. schrieb:
> immer "zu
> Fuss" gesetzt

du meinst bei der hardware spi? Also da kann ich sagen: du uC du... 
benutz bitte den PD7 als SS anstelle von PB4"
oder setzt ich einfach vor jeder Kommunikation den entsprechenden SS-Pin 
"von Hand" auf low?
habs nicht mehr genau vor augen... aber das wäre ja dann optimal.

ja klar standarD, danke ;)

von Christian P. (peterfrosta)


Lesenswert?

^^und wenn ich euch schonmal "dran" habe...

wie lösche ich die das Autorouting von Eagle 6.2?
Ich habe eine Platine entworfen und das Autorouting (nach luftlinien 
berechnen) verwendet.
Ich habe aber noch mal etwas hin und her geschoben und nun haben einige 
Bahnen komische Wege.
Daher würde ich gerne das Autorouting noch mal neu starten.
Wenn ich es jetzt einfach noch mal ausführe, dann ist bspw. eine Bahn 
noch immer ausserhalb der Platine.

danke und
gruß Peter

von Achim M. (minifloat)


Lesenswert?

Christian Peskov schrieb:
> ^^und wenn ich euch schonmal "dran" habe...

Mach' bitte einen neuen Thread mit aussagekräftigem Titel auf.

Vielleicht sucht später mal jemand danach?

mfg mf

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.