PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SOFT SPI



rathma
13.03.2007, 21:55
Hallo,
ich hab eine kleine frage und zwar ist es irgenwie möglich bei soft spi einzustellen wann er anfängt die daten auf der empfangsleitung auszuwerten(also ob bei der ersten hi -> low oder bei der ersten low -> hi änderung an der clockline)

das senden funktioniert problemlos nur beim empfangen schneidert er mir das erste bit im byte ab und ersetzt das letzte dann vollglich durch 0

gruss
markus

rathma
18.03.2007, 16:33
http://rathma.dyndns.org/spi.jpg
also ich sende 10110000(hxb0) und empfangen sollte er 0100000 bascom zeigt mir aber 10000000 an.



Config Spi = Soft , Din = Pinb.5 , Dout = Portb.6 , Ss = None , Clock = Portb.7
Cs_line Alias Portb.4


Dim Rx_status As Byte
Dim Spi_rx_status As Byte

Spi_rx_status = &HB0


Reset Cs_line


Spiout Spi_rx_status , 1
Spiin Rx_status , 1
Spiin Rx_status , 1


Set Cs_line

Print Bin(rx_status)


Die Grafik oben Zeigt, was Physikalisch auf den SPI Bus geschieht, das Senden der Daten geht auch Problemlos, nur das Empfangen nicht :(

Gruss
Markus

rathma
18.03.2007, 21:06
noch eine kleine erklärung zum quellcode:

Spiin Rx_status , 1

ist zweimal drin, weil nach dem datenblatt des mcp2515 die antwort immer wieder gesendet wird, solange die cs leitung low ist.

Stromi
18.03.2007, 22:05
Hi, freut mich wenn es hilft.
Habe irgendwo gelesen, dass zwischen den Kommando's 1ms gewartet werden sollte.
Du wirst es auch schon mit nur einem
Spiin Rx_status , 1
probiert haben, ev. da mal 1ms warten?

http://www.mikrocontroller.net/topic/17274
MfG

rathma
18.03.2007, 22:23
das mit den wait hab ich schon rausgefunden, das hat aber leider nichts mit meinen problem zu tun. bei mir werden ja die daten eigendlich richtig vom mcp2515 gesendet, aber der attiny2313 bzw der soft spi von bascom verschlucken das erste bit der empfangenen nachricht.

Stromi
18.03.2007, 22:34
Es geht um die Empfangsroutine,
(bei der Funkübertragung ohne Manchestercode, muss man auch ein Dummy senden, damit der Sender anschwingt.)
diese Dummy-byte -Geschichte hilft nicht?
Wirst du auch schon probiert haben.
Das Online-Tutorium von kreativchaos hast du sicher schon gelesen, ist zwar in C, aber ist gut kommentiert, benutzt aber Hard-SPI.
http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515

rathma
21.03.2007, 19:20
Ja diese HP kenne ich. das war der grund warum ich überhaupt draufgekommen bin mein projekt ohne pc sondern mit einen mcp zu machen.



Hat keine der Profies einen TIP zur Softspi? Ich will mir das nicht selber Programmieren, aber wenns nicht anders geht :( oder ich muss auf einen avr mit hardware spi umsteigen, aber die sind paar euro teuerer und größer