Hallo zusammen, ich bin auf der Suche nach einem funktionstätigen Programm für eine mega8 mit einem MCP 2515. Ich programmiere derzeit auf Bascom, nur leider ist darüber nichts zu finden und die Litaratur gibt auch nicht viel her..... überall findet man nur Denkanstöße..... kann man nicht mal gemeinsam ein Programm hinbekommen? Vielen Dank Michael
Hört sich vllt dumm an, aber: selber machen! Es gibt ein Datenblatt, da steht gaaanz genau, was du machen musst. Musst du halt durchlesen.
mit Bascom kann ich nicht weiter helfen, aber es sollte nicht allzu schwierig sein, dieses hier auf Basic zu portieren. http://www.kreatives-chaos.com/index.php?seite=software Das ist wirklich gut gemacht, verständlich, sauber programmiert und funktioniert auch bestens. Lob noch mal von mir an Fabian Greif.
Ich habe die gesammte Dokumentation sogar ausgedruckt vor mit liegen..... jedoch wie bekomme ich die Daten in die drei register, wie kann ich überhaupt ein register über spi ansprechen? Wie schreibe ich die Daten dann rein, wie Initialisiere ich das ganze Ding zu senden....... ? Und wie kann die Gegenseite auslesen??? Danke für den link an crazy Horse, jedoch ist das c, oder? Wer kann das übersetzen zu bascom? Ich stelle auch anschließend das FUNKTIONIERNDE komplettprogramm zur Verfügung, Also, bitte helft mir Viele Grüße Michael
Mit Basic werden dir hier wirklich nicht viele helfen können. Ohne einen weiteren Glaubenskrieg anzetteln zu wollen: zu >90% arbeiten die Leute hier mit C oder Assembler. Versuchs mal da: http://www.roboternetz.de/ Da sind viele unterwegs, die mit Bascom arbeiten. Ich glaube nicht, dass sich einer für dich extra die Mühe macht, sich dafür in Basic einzuarbeiten.
Vielleicht solltest im Betreff auch Bascom erwähnen. (nur ein Tip am Rande...) Ich gehe davon aus, dass im Bascom-Handbuch eine SPI-Funktion beschrieben wird (suchen!). Eigentlich ist es ziemlich einfach per SPI zu kommunikzieren. Das Protokoll ist ja auch im Datenblatt des MCP2515 beschrieben.
BASCOM - SPI - MCP2515 geht problemlos mit den vorhandenen SPI Funktionen. Beachte: NOSS=1 verwenden und SS Leitung manuell steuern, sonst wird's nichts mit den Lesefunktionen.
Danke für die Infos, jedoch sehe ich immer mehr, dass mir die Grundkentnisse für die SPI Kommunikation fehlen. Ich habe zwei Bücher über Bascom und die Hilfe aus dem Programm, jedoch ist alles nur als Grundthema behandelt. Wenn ich es richtig für die Praxis des MCP2515 verstanden habe; 1. Slave Select manuell auf Masse ziehen 2. 1. Register anspechen , Daten hineinschreiben 3. 2. Register anspechen , Daten hineinschreiben 4. 3. Register anspechen , Daten hineinschreiben 5. Slave Select manuell wieder auf Potential ..... und wenn man alles richtig gemacht hat müsste das Ding senden und zum lesen müsste es dann einen Interrupt geben oder so? Oder? Dank Euch
Nicht ganz so. Das erste Byte nach aktiviertem SS ist das Kommando. Vor dem nächsten Kommando muss also erstmal SS inaktiv sein. Schreiben ginge auch mit einem einfachen spiout und NOSS=0. Lesen indes nicht, weil BASCOM die Richtungsumschaltung mitten drin nicht hinkriegt, spimove kann nur 1 Byte, müsste N Bytes können. Deshalb muss SS manuell gesteuert werden. Lass das mit den Interrupts mal für den Anfang bleiben. Der Kern: Const CanCmdReset = &HC0 Const CanCmdRead = &H03 Const CanCmdWrite = &H02 Function CanRegRead(byval Addr) As Byte Reset PortB.4 Local Tmp As Byte Tmp = CanCmdRead SpiOut Tmp , 1 SpiOut Addr , 1 SpiIn Tmp , 1 CanRegRead = Tmp Set PortB.4 End Function Sub CanRegWrite(byval Addr As Byte , byval Value As Byte) Reset PortB.4 Local Tmp As Byte Tmp = CanCmdWrite SpiOut Tmp , 1 SpiOut Addr , 1 SpiOut Value , 1 Set PortB.4 End Sub
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.