Hard und Software SPI parallel ??

Pitlem

Neues Mitglied
05. Sep. 2008
21
0
1
Sprachen
Hi,

geht das unter Bascom. (Hard und Software SPI parallel)

Ich hab ein IC im SPI Slave Mode.
Das wird mit einem ATMega88 im Master Mode abgefragt.
Der ATMega88 wird von einem XMega im Master Mode abgefragt, der Mega88 ist dann im Slave Mode.

Wie macht man sowas? Irgendwie seh ich den Wald vor lauter Bäumen nicht.

Und nein ich will das IC nicht direkt mit dem XMega abfragen.;)

Grüße Pit
 
Hallo Pit,

zwei Master im SPI sind sind möglich, wenn die SS\ Pins der Master als Eingang konfiguriert sind

Master Mode:
If the SS pin is configured as an input, it must be held high to ensure Master operation. If the SS
pin is input and being driven low by external circuitry, the SPI module will interpret this as
another master trying to take control of the bus. To avoid bus contention, the Master will take the
following action:
1. The Master enters Slave mode.
2. The SPI Interrupt Flag is set.
Du könntest also beim Atmega88 Master den SS\ pin as Eingang schalten, das SS\ Signal für den Atmega88 wird durch einen beliebigen Output-Pin des Xmega gesteuert. Dein Slave erhält ein extra SS\ (CS\) Signal vom ATmega88. Wenn alles am selben SPI Bus hängt, musst du dafür sorgen, dass das Signal SS\ für den Slave high ist, wenn der Xmega den ATmega88 selektiert.

Nutzt du beim ATmega88 Software SPI, dann musst du selber auf SS\ reagieren (ggf. via externem Interrupt), die Hardware macht das dann natürlich nicht.

Wie das genau mit Bascom realisiert werden kann weiss ich aber leider nicht.

Grüße,
Dirk
 
Hallo,

bin gerade am selben Problem dran. Ich würde gerne das XV-Display am Software SPI und einen CAN-Treiber (MCP2515) am Hardware SPI betreiben.

Bisher wollte ich für beide SPI Slaves alle Leitungen an getrennte Pins des Atmega 32 führen. Nun bin ich mir aber nicht mehr sicher, ob ich den Clock-Pin oder noch weitere Pins von beiden Slaves parallel schalten muss?

Gruß
Fabi
 
Hallo Fabi,

SoftwareSPI und HardwareSPI sind zwei verschiedene Dinge. Wenn du das SPI-Modul des Mikrocontrollers aktivierst (=HardwareSPI), sind die entsprechenden Pins MISO, MOSI, SCK nicht mehr als "normale" IOs ansteuerbar, hier wirken dann die alternativen Portpin-Funktionen. Wenn du SoftwareSPI und HardwareSPI auf die selben Pins legen möchtest (CS ist natürlich immer auf anderen Pins), musst du immer das HardwareSPI-Modul deaktivieren, wenn du via SoftwareSPI übertragen möchtest. Wenn du nur HardwareSPI verwenden möchtest, müssen beide Slaves den selben SPI-Mode (Bits CPOL, CPHA) unterstützen. Hast du ausreichend freie Pins zur Verfügung, ist es einfacher, die Signale auf unterschiedliche Pins zu legen.

Gruß,
Dirk
 
Hallo Dirk,

ich glaube da habe ich mich etwas falsch ausgedrückt :). Meine Idee war für den Can Treiber die Hardware SPI zu nehmen (mit den passenden Pins) und für das Display auf Software SPI zu gehen (an anderen Pins bzw. sogar an einem anderen Port).

Ich war mir jetzt nur nicht mehr sicher, ob ich beide Geräte an die selbe Clock Leitung hängen muss (wollte es nämlich nicht so machen).

Gruß
Fabi

PS: warum steht neben meinen Beiträgen immer Werbung ;-)?
PSS: jetzt ist sie wieder weg...
 
Hallo Fabi,

du kannst doch bei SoftwareSPI die Signale MISO, MOSI und SCK auf irgendwelche Pins legen, die als "normale" IOs frei sind.

Gruß,
Dirk

(OT: Wegen der Werbung oder den Informationen: Im ersten und letzten Beitrag auf einer Seite wird dies eingeblendet, es ist vom eigenen Shop und ist notwendig, um das Forum zu finanzieren)
 
du kannst doch bei SoftwareSPI die Signale MISO, MOSI und SCK auf irgendwelche Pins legen, die als "normale" IOs frei sind.
Okay, dann hab ich das doch richtig gemacht ;), war gerade nur durch einige andere Foren etwas durcheinander gekommen.

Hab auch mal ein wenig bei Wikipedia nachgelesen, ist dort eigentlich ziemlich gut beschrieben:
http://de.wikipedia.org/wiki/Serial_Peripheral_Interface

Danke für deine Hilfe.
Gruß
Fabi

(OT: Ich finde die Werbung nicht gut, da wird man immer zum kaufen verleitet ;)... Spaß bei Seite: Hab absolut kein Problem mit vernünftiger Werbung (wie in diesem Forum), solang mich nicht irgendwelche .ru Seiten belästigen :).)
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)