PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serielle Bit-Übertragung?



Halvar
12.08.2008, 14:38
Ich möchte 24 Bit an einen LM7001 übertragen.
Das LM7001 braucht CE, Data, und CL an Steuerleitungen.
Wie bekomme ich nun die Bits an einem x-belieigen Port-Pin raus?
Wie ist das mit der Übertragungsgeschwindigkeit?

http://pdf1.alldatasheet.com/datasheet-pdf/view/41210/SANYO/LM7001.html

Da nur die ersten 2 Byte (14Bit) variieren, möchte ich die letzten 8Bits einfach an die Variable mit den ersten 2 Bytes anhängen.

Aber ich habe noch garkeine Idee wie ?

PicNick
12.08.2008, 15:31
Da wäre bei Bascom "SPI" zuständig.
Am besten schau die die Help-Seiten dazu an.
Die Geschwindigkeit spielt keine Rolle, da es ja eine Taktleitung gibt.
Es geht halt, so schnell es geht.

peterfido
12.08.2008, 21:02
Klingt für mich nach Shiftout.

Halvar
14.08.2008, 06:34
Weder bei Shiftout noch Spi komme ich klar.


Dim A(10) As Byte
Config Spi = Soft , Din =Pinb.0 , Dout =Portb.1 , Ss =Portb.2 , Clock =Portb.3

Spiinit
Spiout A(1), 4 'write 4 bytes a(1), a(2) , a(3) and a(4)



?

Wie muss der Befehl lauten, dass ich meine 3 Byte übertrage?
Jedes Byte nacheinander mit zB
Spiout var_a
Spiout var_b
Spiout var_c
zu übertragen geht ja nicht, da CE ja jedesmal abbricht, und somit nur 3 Unvollständige Daten übertragen werden.

Kann mir da mal jemand auf die Srünge helfen, wie das Programm zur Datenübertragung zum LM7001 letztendlich aussehen muss?

peterfido
14.08.2008, 21:34
Hast Du es schon "zu Fuss" versucht?
Zuerst CE setzen(oder löschen, weiß grad nich)t. Dann das erste Bit an Data legen. clock setzen (oder löschen...) kurze pause(4 x nop oder so) dann clock löschen (oder setzen...), nächste Bit anlegen. clock wieder ändern, pause, usw nach dem letzen bit ce wieder zurücknehmen.

Sorry für die Beschreibung, habe aber grad keine Entwicklungsplattform zum testen hier...

Halvar
15.08.2008, 03:50
Oki, funktioniert mit Shiftout und CE zufuß setzen:



CE = 1
Shiftout Dat , Cl , Var_a , 1
Shiftout Dat , Cl , Var_b , 1
Shiftout Dat , Cl , Var_c , 1
CE = 0