Hy, ich möchte zwei XMegas per SPI verbinden aus platzgründen auf meinem Bus will ich hierzu aber nur 2 Leitungen benutzen. Also Miso und Mosi auf einer Leitung. Die Zweite Leitung soll mein Clk sein. Wie mache ich das am geschicktesten? Soll ich Miso und Mosi mit nem Multiplexer vor dem Bus realisieren ? Oder kann ich einfach Miso und Mosi verbinden und das ganze Software technisch lösen? Oder gibts einfachere Wege? Schon mal danke für die Hilfe im Vorraus
Hans W. schrieb: > ich möchte zwei XMegas per SPI verbinden aus platzgründen auf meinem Bus > will ich hierzu aber nur 2 Leitungen benutzen. Also Miso und Mosi auf > einer Leitung. Die Zweite Leitung soll mein Clk sein. Verdrahtest du dann auch das Schieberegister im uC um? Warum nimmste nicht einfach eine zusätzliche Leitung oder gleich i2c?
Das Problem ist das I2C beim XMega nur maximal 400kHz kann.Ich brauche aber da über den Bus z.b USB Daten sollen einen größeren Datendurchsatz. Zusatzliche Leitung wäre das einfachste, ich habe aber Leider auf meinem Bus keinen Platz mehr.
Dann gibt den beiden Leitungen die Namen TX und RX nenn das ganze RS232. Der UART ist es egal ;-)
Hans W. schrieb: > Ich brauche > aber da über den Bus z.b USB Daten sollen einen größeren Datendurchsatz. Nimm doch gleich D+ und D-. Am besten, du erklärst mal genauer, was du für ein Problem hast. Sonst wird das hier nur ein Rumgerate.
Ich habe es bislang noch nie ausprobiert und hatte bislang nur mit ATMegas zu tun, aber du kannst doch bei einem genügend hohen Grundtakt die Register so setzen, dass sich ein I²C-Takt über 400kHz ergibt.
Hans, schielst Du nach den ARMs, die eine 2-Draht-SPI-Leitung unterstützen? Schau Dir mal STM32F107VCT6 o.ä. an - SPI u.a. ist im RM0008 erklärt. Die Steuerung von Eingang/Ausgang ist aber tückisch, weil sie synchron auf allen angeschlossenen Geräten stattfinden muß! Gruß - WPö
Die Grundvorrausetzungen sind schwer zu erklären ich versuchs aber mal: -> Ich werde ein 19" Gehäuse benutzen in die ich alle Einschübe die ich baue reinkommen. -> Es soll so sein das ich z.B später einfach Module miteinander verbinde und dann einen Wandler habe z.b USB to xyz. Wenn ich jetzt ein Modul brauche das USB to I2C können soll, ist USB schon als SPI vorhanden und muss nurnoch in I2C gewandelt werden. -> Es gibt einen I2C-Bus der als Service Bus funktioniert. -> XMegas sind schon einige beschafft deshalb probier ich es mit denen. Ich habe auch schon probiert I2C hochzutakten, ging auch bis 600kHz problemfrei, aber ab 600kHz wurde es problematisch und die Daten wurden nicht mehr einwandfrei interpretiert.
So, also hab das ganze dann jetzt auch hinbekommen. Und zwar indem ich MISO und MOSI einfach verbunden habe und Software mäßig immer nur bei einem (Mast oder Slave) einen Ausgang habe. Ist zwar einiges an Umschalten und ein ziehmliches gefriemel, aber es funktioniert. Danke für eure Hilfe
Hallo Hans, könntest du vielleicht deinen Code für die SPI Verbindung mal hier reinstellen, bin nämlich auch verzweifelt am basteln. Will über diese Halbduplex Verbindung einen Maussensor auslesen. Danke. Gruß Martin
Hab hier mal meine Ausführung. Bin mir aber nicht mehr sicher ob diese hundert Prozentig geht. Hab noch weiter dran herumgebastelt mit DMA Controller und so späsen. Wenn ich mich noch recht entsinne schicke ich als erstes Byte die Anzahl der folgenden Bytes, dies müsstest du dann herausnehmen. Mein Code basiert auf den Atmel Treibern (twi_driver.h). Gruß Hans
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.