Forum: Mikrocontroller und Digitale Elektronik Grasshopper SPI verwenden


von Dirk S. (fusebit)


Lesenswert?

Moin Leute,

ich suche nun schon seit geraumer Zeit im Netz umher, aber scheinbar 
fehlt mir mal wieder eine so grundlegende Info, dass niemand dazu eine 
Frage stellt :-)

Ich möchte einen ADC über SPI an den Grasshopper anschließen. Dazu 
müsste ich doch ein SPI Device haben welches ich dann öffnen kann. 
Standardmäßig ist da aber keines. Also muss es in den Kernel, nur wie?

Mit make menuconfig finde ich nirgends die Option ein SPI Treiber 
einzubauen. Wie bekomme ich denn nun mein SPI-Device oder bin ich 
komplett auf dem Holzweg?

Grüße

Dirk

von Claude S. (claudeschwarz)


Lesenswert?

Eine Möglichkeit wäre "spidev" ,
daß wird in der Kernel Config angeschalten.

Dazu musst Du in die Kernel Config unter :
Device Drivers->SPI->spidev aktivieren.
Ausserdem muss noch in der /arch/avr32/boards/grasshopper/setup.c einen 
spi_info Struct , sofern noch nicht da, angelegt werden. Dort kommt dein 
"spidev" mit allen dazugehörigen Parametern wie Chipselect,SPI Mode und 
SPI Frequenz rein.
Ganz unten in setup.c ist noch at32_add_devices_spi (oder so ähnlich) , 
das Initalisiert dann den SPI mit den Infos aus spi_info.
Der spidev Treiber meldet sich nach dem "proben" durch das SPI Subsystem 
als Platform Driver an und erzeugt die /dev und /sys Einträge.
Alles auch unter /Documentation/spi und /Documentation/driver-model 
nachzulesen.
Da liegen auch Beispiele für ein spidev "Gegenstück" rum.

Die andere , aber komplexere , möglichkeit ist einen Platform Driver für 
deinen ADC zu schreiben. Dieser wird dann ebenfalls über das spi_info 
Struct "geprobt". Dafür hast Du selber die Freiheit was dir der Treiber 
in den Userspace übergibt.

HTH , muss los Simpsons fangen an :-)

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
Noch kein Account? Hier anmelden.