Besteht die Möglichkeit ein Schaltbild dieser Module zu veröffentlichen ?Zitat von Kaiser-F
Hallo Sprinter,
Ist richtig. Ich glaube aber da liegt ein kleines Mißverständnis vor. Oder ich hab mich falsch ausgedrückt.
1. CS nach LOW
2. Man gibt den Slave die entsprechenden Anweisungen.
spi_putc(SPI_READ);
spi_putc(adress);
3. Jetzt kopiert der Slave das ausgewählte Register in SEIN SPI-Data-Register.
Um nun DIESE Daten vom SLAVE zum MASTER zu Transportieren, muss der MASTER nochmal eine Transmission machen:
data = spi_putc(0xff);
An dieser Stelle ist jetzt die Frage, ob es unbedingt 0xFF sein muss, oder ob es auch 0xAB oder 0x00 was auch immer sein kann... Normalerweise ist es ja egal oder? was mann dann hier sendet? Hauptsache man sendet irgendwas.
CS nach HIGH...
Gruß,
Franz
Besteht die Möglichkeit ein Schaltbild dieser Module zu veröffentlichen ?Zitat von Kaiser-F
Alles klar, jetzt hab ich das geschnallt, (würde dann aber nicht LSB und MSB vertauscht werden) ich war immer der Meinung es müste auch so gehen:
Aber trotzdem, viele Dank.Code://def. V short int data; while ( SPSR &= ~(SPIF)); data = SPDR ...
Übrigens versuch ich mich grade an einem AT90CAN128 und im Rahmen
einer Werkstudententätigkeit an der Renesas M16C Serie (hat auch CAN an Bord) wenn sich hier etwas Wissenswertes entwickelt werd ich das hier posten. Hat auch schonmal jemand was mit Flexray gemacht ?
Vielen Dank, jetzt is mir das auch klar. Ich hatt´s immer meiner Logik nach so versucht:
short int data;
while( SPSR &= ~(1<<SPIF));
data = SPDR;
Also Danke nochmal. Übrigens Arbeite ich auch grade privat an eienm AT90CAN128 und als Werkstudent an einem µC aus der Renesas M16C Serie.
Wenn sich da etwas wissenswertes ergibt, lass ich´s wissen.
Hat auch schonmal jemand etwas mit Flexray gemacht ?
Hier für die, die das Teil auch bauen möchten:
http://www.sir-kaiser.de/download/00..._CAN-MODUL.pdf
Gruß,
Franz
Dankeschön
[fünfzehnzeichen]
Hallo,
ich bin gerade dabei das Projekt mal zum testen nachzubauen.
Ich Suche aber in erster line eine möglichkeit so eine Art CANGateway zu bauen. Das heisst ich habe zwei CAN Netzte die ich miteinander verbinden will(und paar Sachen Filtern und ändern, verschiedene bauds usw.). Gibt es einen preisgünstigen IC der mit zwei CANschnittstellen umgehen kann oder hat jemand einen guten Lösungsvorschlag?
Gruss
Markus
Hallo rathma,
Du kannst auch zwei meiner Platinen mit einem Atmel verbinden.
Ansonsten glaube ich dass der "SJA1000" zwei Can-schnittstellen hat.
Gruß,
Franz
Bräuchte ich nicht dann aus zwei SPI Schnittstellen? An das hatte ich auch schon gedacht, das ich zwei mcp2515er verbaue
Nein brauchst du nicht. Dazu ist die CS/SS Leitung. Du kannst beliebig viele "SPI-Chips" miteinander verbinden, wie einen Bus.
Nur die CS oder auch SS Leitung bekommt jeder Chip seperat.
CS bedeutet CHIP-SELECT. Der jenige Chip, bei dem CS LOW ist,
wird angesprochen....
Sagen wir du hast im extremfall 2 CAN-Controller und eine SD-Karte.
Willst du nun mit CAN1 plaudern, viehst du CS von CAN1 auf LOW,
alle anderen MÜSSEN HIGH sein! Dann kannst du bequem mit CAN1 plaudern.
Willst du nun mit CAN2 Plaudern, so setzt du NUR CS von CAN2 auf low,
alle anderen MÜSSEN WIEDER HIGH SEIN!
Jetzt kann man bequem mit CAN2 plaudern.
Die anderen interessieren sich nicht dafür, was am SPI passiert.
Hierbei ist immer vorauszusetztn, dass dein ATMEL der SPI-Master ist!
Jetzt fragst du dich bestimmt, wozu dann die INT-Leitung ist.
Naja, versetzt dich mal in den CAN-Chip (machen wir es mal personifiziert).
Der empfängt jetzt was, und der atmel fragt einfach nicht nach über das SPI.
Dann meldet sich der CAN-Chip durch verändern des pegels an der
INT-Leitung, so ungefär: "hey, schau moi her"...
Daraufhin kann man dann was unternehmen...
Ich habe selbst schon ein System aufgebaut, welches genau das
erfüllen soll, was du machen willst. Benutze dabei auch zwei
MCP2515 und es funktioniert perfekt damit!
Gruß,
Franz
Lesezeichen