PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 8 BIT Struktur, aber SPI Befehle 16 BIT lang



The Man
14.04.2008, 14:03
Hallo zusammen.

Wie sollen für ein Projekt einen D/A Wandler nehmen. In dessen Datenblatt steht, dass seine Befehle 16 Bit lang sind. Der PIC 16F818 ist ja ein 8 BIT gerät. Für den SSC Compiler gibt es den Befehl read_spi und write_spi. Nur wie funktioniert das jetzt mit den nötigen 16 BIT?

Danke

Enrock
14.04.2008, 15:20
Servus,

also da Lobe ich mir immer wieder Assembler. Ab besten schaust du mal ins Datenblatt von dem PIC und dem D/A Wandler. Oder gibst an, welchen DAW du benutzt, dann schaue ich selber.

An sich spricht nichts dagegen zweimal nacheinander 8 Bit zu senden. Also: write, read, write, read....
Gruß

cool-robotix
14.04.2008, 15:48
An sich spricht nichts dagegen zweimal nacheinander 8 Bit zu senden. Also: write, read, write, read....
Gruß

Wenn dabei d. CS-Leitung getoggelt wird, könnte es problematisch werden.

Am besten selbst eine Routine fürs SPI schreiben, ist ja nicht schwer.

Ablaufplan etwa so:

1.) CS auf low
2.) MOSI setzen
3.) CLK low
4.) MISO einlesen
5.) CLK high
6.) bei Bedarf zurück auf 2
7.) CS auf high

Wartezeiten habe ich mal draussen gelassen. In C ist sowas in 15 Minuten geschrieben. Im Datenblatt des ICs sollten zur Timing etc. die erforderlichen Angaben stehen.

The Man
23.04.2008, 19:53
Also der Witz ist, dass bei write_spi die cs Leitung eben nicht getoggelt wird. Das muss man selber per Hand machen. Und so kann man dann auch die Befehlslänge bestimmen.

cool-robotix
23.04.2008, 20:42
Ja genau. Am besten selbst eine SPI Routine schreiben, das man dann auch beliebig auf d. Hardware optimieren kann.

BigWumpus
23.04.2008, 23:38
SPI ist doch eher was für "Einfache".
Auf einem Port wird das Datenbit rausgeschoben und der andere Port liefert einen Takt. Wenn man unbedingt C-Befehle verwenden will, so läßt man 2 Bytes herausschieben. Das merkt Niemand. ;-)
Sieh Dir aber die CS-Ansteuerung an !