Forum: Mikrocontroller und Digitale Elektronik micro wire


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Reiner (Gast)


Lesenswert?

hi, hat jemand schon einmal mit micro wire in c auf dem AVR gepielt 
(nicht CodeVision)?

Ich suche Anregungen für 'nen Treiber.

Reiner

von Phagsae (Gast)


Lesenswert?

Hi Reiner

SPI und microwire sind fast identisch.
Unterscheiden sich eigentlich nur bzgl
CPOL u CPHA einstellung

! Das hab ich so in erinnerung praktisch ausprobiert hab ichs nicht !


Hast du das denn schon dahingehend geprüft ?

Oder verwendest Du einen AVR ohne Hardware SPI ?

von Reiner (Gast)


Lesenswert?

Wie? Wieso fast identisch?
Einfach seriell out am Controller mit seriell in verbinden, wie bei 
einer SIM-Karte - das ist alles????

Selbst ohne SPI ist das ja kein Hindernis.

Ich wollte einen Dallas/Maxim Temperatursensor an einen AT90S8515 
hängen, um einen Motor zu überwachen.


Reiner

von Phagsae (Gast)


Lesenswert?

Hi Reiner

>Wie? Wieso fast identisch?
s.o
Kann LSB oder MSB first sein
Kann auf fallende oder steigende Flanken reagieren usw...
Wird mit dem SPI Control? Register eingestellt

>Einfach seriell out am Controller mit seriell in verbinden, ><wie bei einer 
SIM-Karte - das ist alles????

Kann ich jetzt nichts zu sagen kenn ich nicht.

>Selbst ohne SPI ist das ja kein Hindernis.
Software SPI will auch erst geschrieben werden ;-]
<Ich wollte einen Dallas/Maxim Temperatursensor an einen <AT90S8515 
hängen, um einen Motor zu überwachen.

Einfach das benötigte Datenformat ( Maxim Datenblatt ) anschauen und das 
HW SPI entsprechen einstellen.

MISO->Data out ( MAX )
MOSI<-Data IN
SCKL->(MAX)

Da sollte es eigentlich an quellcode im net nicht mangeln.

Phagsae

von Reiner (Gast)


Lesenswert?

>>Software SPI will auch erst geschrieben werden ;-]

hier ist die Softspi!

ist für eine 74HC165 an drei Pins des PORTA

#define  DAT165  BIT(3)
#define  SCK165  BIT(5)
#define  RCK165  BIT(6)

DDRA = SCK165 | RCK165;  // Outputs, undefined are inputs

UCHAR read_dipswitch(void){
UCHAR data;

  PORTA &= ~SCK165;  // clk low
  PORTA &= ~RCK165;  // load dip switches in '165
  PORTA |=  RCK165;

  data = 0;    // clear result first

  for(i=0;i<8;i++){  // read 8 bits
    data <<= 1;   // shift left
    PORTA &= ~SCK165;  // clk low
    PORTA |=  SCK165;  // clk high

  if(!(PINA & DAT165))  // Bit invertiert testen
    data |= 1;
    }
  return(data);
}


Reiner

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.