Hallo Zusammen,
Nachdem ich nun unglaublich viel Zeit verbrannt hab, wende ich mich an
euch, in der Hoffnung, ihr könnt mir weiterhelfen.
Was ich versuche:
Das Carambolaboard (http://www.8devices.com/product/3/carambola) ist an
sich ein sehr interesantes Board, aber mit wenig Hardware. Deshalb
möchte ich über SPI einen Erweiterungschip ansprechen (ADC bzw. Mess-IC.
Welcher ist erstmal egal). Zum Test der Schnittstelle möchte ich erstmal
über die Shell einen Hexbefehl (beliebig) auf der MOSI Leitung absetzen.
Davon, einen Chip zu initialisieren spreche ich erstmal noch gar nicht.
Ich wäre schon froh, wenn das Ding überhaupt was macht.
Das Problem:
Nachm Boot, wechselt die CS Leitung und die CLK Leitung auf High,
ansonsten passiert aber nichts.
Was ich gemacht habe:
Ein Xubuntu samt Crosscompiler Toolchain auf VirtualBox hochgezogen -->
Ich kann selber ein Kernel kompilieren. Jehea
Wie kann ich nun nur ein Programm (Progrämmchen) für das Carambola
Compilieren?
Ewig an der Network config gedreht, bis ich auf LAN und WLAN per DHCP
eine IP addresse vom Router zugeteilt bekomme. --> Die Doku ist hier
wirklich nicht brauchbar!
Die Carambola.c datei angepasst mit:
Ich habe alle SPI - Relevanten Kernel Module hinzugefügt.
Ich habe das SPI-dev_Test tool mitinstalliert.
Als einziges Erfolgserlebnis konnte ich das WebCAM Projekt nachbauen.
Dauerte auch Ewig.
Meine Frage nun an euch.
Kann mir jemand erklären wie ich:
1. den Kernel so übersetzte, dass ich native Treiberunterstützung für
SPI dabei habe
2. die SPI - Schnittstelle von der Shell ansprechen kann
3. ein c Programm auf dem Xubuntu compiliere
4. das Compilat auf dem Carambola ausführe.
Wenn mir keiner Helfen kann, werde ich das Teil verschrotten, dann hat
es mir zumindest geholfen, meinen Frust abzubauen.
Grüßle
Andreas
Andreas Gassner schrieb:> nun unglaublich viel Zeit verbrannt
Welche Unterstützung/Beispiele hast Du bisher von Hersteller bekommen?
Eine Mailanfrage hilft evtl. die mühsame Zweiterfindung des Rades zu
vermeiden? For more information, please contact us at: info@8devices.com
oszi40 schrieb:> Andreas Gassner schrieb:>> nun unglaublich viel Zeit verbrannt>> Welche Unterstützung/Beispiele hast Du bisher von Hersteller bekommen?> Eine Mailanfrage hilft evtl. die mühsame Zweiterfindung des Rades zu> vermeiden? For more information, please contact us at: info@8devices.com
Genau das Gefühl habe ich aber, wenn ich Posts und Forenkommentare zu
ähnlichen Linuxboards finde, bei denen es scheint, dass die längste Zeit
verlohren geht, während man darauf wartet, dass der Lötkolben warm wird.
Es gibt für Linux SPI - Treiber. In der Makefile - Konfiguration für das
Carambola kann man auch eine Reihe davon auswählen. Unter Tools kann man
ein SPI - Test Tool (Name weis ich jetzt nicht genau, er lässt aber
darauf schließen, dass das Tool genau zum SPI test verwendet werden
kann) ebenfalls mit compilieren lassen. Ob und wie diese aber compiliert
zusammenspielen lässt sich nicht herausfinden. Da ein Compilerdurchlauf
mal eben 45Minuten dauert, kann habe ich alle Module, die irgendwie mit
SPI zu tun haben in den Kernel includiert. Tja, ob sich nun was spreizt
weis ich ned, weil ICH KANNS JA NICHT TESTEN.
Wenn ich aber dann mal dran gehe, dann ist das einzige verwertbare
Projekt bei 8devices in Pyhton. Wie man aber diesen SPEZIELLEN (weil das
board nur 8MB Flash hat, passt der Normale mit 5MB nämlich nicht rein,
und das EINZIGE python-mini das per Packetupdate installierbar ist,
bricht beim entpacken ohne Fehlermeldung ab) Pyhton interpreter aufs
Board kriegt, kann man aber nichtmal Zwischen den Zeilen lesen.
Ich will jetzt nicht alles auf dem Silbertablett serviert bekommen,
darum gehts mir auch nicht. Ich würd nur gerne einen Hinweis bekommen,
wie ich Schritt für Schritt, generisch, eine SPI - Schnittstelle unter
Linux hochziehe und teste. Es kann doch nicht sein, dass ich der Erste
bin der sowas versucht.
Bitte entschuldigt meinen Ton, aber ich bin wirklich am RANDE DES
WAHNSINNS.
Da fallen mir meine restlichen Haare auch noch aus, und der Arzt denkt
es wär erblich... ;-)
Grüßle
Andreas
Andreas Gassner schrieb:> Bitte entschuldigt meinen Ton, aber ich bin wirklich am RANDE DES> WAHNSINNS.
Zum Carambola-Board gibt es nur einen Tipp: auf Ebay damit!
Die Unterstützung des Herstellers ist grauenhaft. Grauenhafter sind nur
noch das Wiki zum Board und das Englisch der "8devies"-Leute.
Andreas Gassner schrieb:>> Meine Frage nun an euch.> Kann mir jemand erklären wie ich:> 1. den Kernel so übersetzte, dass ich native Treiberunterstützung für> SPI dabei habe> 2. die SPI - Schnittstelle von der Shell ansprechen kann> 3. ein c Programm auf dem Xubuntu compiliere> 4. das Compilat auf dem Carambola ausführe.>>> Wenn mir keiner Helfen kann, werde ich das Teil verschrotten, dann hat> es mir zumindest geholfen, meinen Frust abzubauen.>> Grüßle> Andreas
Hallo,
Ich würde erstmal per git mir das OpenWRT clonen. Dort sind alle Tools
drin, auch der Crosscompiler (der wird aber noch auf deinem Rechner
gebaut)
1
gitclonegit://nbd.name/openwrt.git
dann einen neuen Branch erzeugen (z.B. spi)
1
gitcheckout-bspi
Hier die Änderungen einpflegen die du gemacht hast.
Teilweise sind einige Module vom Kernel in Kconfig von OpenWRT nicht
drin, weil OpenWRT primär als Router Firmware gedacht ist.
Bei der SPI Schnittstelle muss ein Device vorhanden sein, damit du diese
von der Shell erreichen kannst.
>
Das alles unter Xubuntu, oder? Wie komme ich dann zu einem Code der am
Carambola läuft? Wer sagt dem Compiler das er für den Ralink kompilieren
soll? Muss ich im Menuconfig das Derivat wählen, oder?
Grüßle
Andreas
> Das alles unter Xubuntu, oder? Wie komme ich dann zu einem Code der am> Carambola läuft? Wer sagt dem Compiler das er für den Ralink kompilieren> soll? Muss ich im Menuconfig das Derivat wählen, oder?>
Viel einfacher ..
Unter jedem Linux. Lege dir am besten ein Verzechnis an unter dem du die
OpenWRT "Buildchain" anlegst.
Wie gesagt für den Anfang
1
gitclonegit://nbd.name/openwrt.git
Dann mal alle feeds updaten und installieren
1
cdopenwrt
2
./scripts/feedsupdate-a
3
./scripts/feedsinstall-a
Dann kann du mit
1
makemenuconfig
Das Target Ralink RT288x/RT3XXX anwählen, Subtarget RT305X, dann
hast du schon da Carambola Board aktiviert. Was du noch in deinm RootFS
haben will kannst du dir selber aussuchen.
Wenn du erstmal nur testen willst empfehle ich als Target Image die
Ramdisk zu nehmen.
Wenn du soweit fertig bist mit der Config, diese zum Schluss
abspeichern, das kommt im letzten Dialog bei "Exit"
Dann ein ein
1
make
oder wenn du mehr Kerne hast
1
make-j4
Diese Einstellung ist für CPUs mit 2 Kernen, -j8 ist für 4 Kerne (-j
Anzahl der Jobs)
Das Binäry ist in bin/ramips in deinem "OpenWRT Verzeichnis, zu finden.
Im Dateiname ist carambola drin.
Per TFTP kannst du das dann erstmal testen.
Dazu brauchst du einen TFTP Server, tftp-hpa dürfte das Paket sein.
Installieren und einrichten wo der TFTP Server die Files erwartet.
Dein rechner sollte im Netzwerk 192.168.1.0/24 sein und nicht die
Addresse 192.168.1.1 haben (das hat die Carambola Box)
ggf, noch das Paket picocom installieren und dich per serieller
Schnittstelle verbinden. Ein USB-Serial Kabel tuts bei mir
1
picocom-b115200/dev/ttyUSB0
Hier ein Beispiel
1
Board:RalinkAPSoCDRAM:32MB
2
relocate_codePointerat:81fb0000
3
configusb..
4
******************************
5
SoftwareSystemResetOccurred
6
******************************
7
flash_protectON:from0xBF000000to0xBF01E757
8
flash_protectON:from0xBF030000to0xBF030FFF
9
============================================
10
RalinkUBootVersion:3.5.0.0
11
--------------------------------------------
12
ASIC3052_MP2(Port5<->None)
13
DRAMcomponent:256MbitsSDR
14
DRAMbus:16bit
15
Totalmemory:32MBytes
16
Flashcomponent:NORFlash
17
Date:Feb202012Time:16:20:22
18
============================================
19
icache:sets:256,ways:4,linesz:32,total:32768
20
dcache:sets:128,ways:4,linesz:32,total:16384
21
22
##### The CPU freq = 320 MHZ ####
23
estimatememorysize=32Mbytes
24
25
Pleasechoosetheoperation:
26
1:LoadsystemcodetoSDRAMviaTFTP.
27
2:LoadsystemcodethenwritetoFlashviaTFTP.
28
3:BootsystemcodeviaFlash(default).
29
4:Entrbootcommandlineinterface.
30
7:LoadBootLoadercodethenwritetoFlashviaSerial.
31
9:LoadBootLoadercodethenwritetoFlashviaTFTP.
32
33
Youchoosed1
34
35
0
36
37
38
1:SystemLoadLinuxtoSDRAMviaTFTP.
39
PleaseInputnewones/orCtrl-Ctodiscard
40
InputdeviceIP(192.168.1.1)==:192.168.1.1
41
InputserverIP(192.168.1.171)==:192.168.1.2
42
InputLinuxKernelfilename(test.bin)==:test.bin
Mit dem SPI usw, wird es etwas schwerer, das muss man erstmal wissen
welche Hardware dz da hast.
Achja die Doku geht ;-)
Davis schrieb:> Zum Carambola-Board gibt es nur einen Tipp: auf Ebay damit!>> Die Unterstützung des Herstellers ist grauenhaft. Grauenhafter sind nur> noch das Wiki zum Board und das Englisch der "8devies"-Leute.
Ich behaupte das Gegenteil: Ich habe bisher prompt eine Antwort
bekommen. Zudem reagieren sie auf positive Kritik umgehend. Ich kann
das Carambola-Board guten Gewissens empfehlen. Man muss aber bereit
sein, etwas Zeit zu investieren - 8devices OpenWRT Umgebung installieren
und kompilieren.
Mal im Ernst: Was erwartest Du für 22 Euro ?
Mountain schrieb:> Mal im Ernst: Was erwartest Du für 22 Euro ?
Nicht viel, deshalb schreibe ich ja hier. Ich würde mich selber als
durchaus leidensfähigen Bastler bezeichnen, der es aber leid ist, noch 5
Stunden in ein eigendlich triviales Problem zu investieren.
Mein Englisch ist jetzt nicht der Hit, aber ich hab immer das Bekommen,
was ich wollte. Besser kein perfektes Oxford Englisch als russisch...
Dunkel schrieb:> Hier nutzt jemand SPI:> http://lnxpps.de/can2udpe/smallest-rocrail-server-ever/
Mit dem Verfasser des Textes bin ich jetzt in Emailkorrespondenz.
Mountain schrieb:> Man muss aber bereit sein, etwas Zeit zu investieren - 8devices OpenWRT> Umgebung installieren und kompilieren.
Du bist der ideale Elektronikkonsument. Lässt dir einfach ein Produkt
andrehen, dass mit Leichtigkeit bereits ab Werk SPI-Unterstützung
und/oder andere Module haben sollte. Respekt.
Davis schrieb:> Mountain schrieb:>>> Man muss aber bereit sein, etwas Zeit zu investieren - 8devices OpenWRT>> Umgebung installieren und kompilieren.>> Du bist der ideale Elektronikkonsument. Lässt dir einfach ein Produkt> andrehen, dass mit Leichtigkeit bereits ab Werk SPI-Unterstützung> und/oder andere Module haben sollte. Respekt.
Bleiben wir mal bei den Fakten:
Das SPI Modul funktioniert - es stammt übrigens von den OpenWRT
Entwicklern:
Man muss nur Wissen, das der Chip nur SPI-Halfduplex kann:
http://www.tracermcc.ru/foto/bender/RT3050_5x_V2.0_081408_0902.pdf
Seite 68 -> STARTWR und STARRD
Halfduplex ist kein Problem.
Leider wurde im Linux Kernel IMHO keine saubere Unterstützung von
SPI-Halfduplex eingebaut bzw. Treiber gehen blind davon aus das SPI
immer Fullduplex macht. Besser wäre die Verwendung von
spi_write_then_read anstatt spi_write - aber das ist eher selten.
Ich nutze zur Hardware-Erweiterung i2c. Die Ansteuerung erfolgt über
PHP. Nach sehr viel Einarbeitungszeit bin ich mit Carambola sehr
zufrieden.
Die Einarbeitungszeit in ein Atmel-Board war bei mir auch nicht
geringer.
> ggf. dein eigener Code verloren geht, bzw. du weisst nicht mehr was du> selber gemacht hast.
was? Nein. git macht gar kein pull, wenn du "unstaged changes" hast
(kommt 'ne Fehlermeldung).
Was du selber gemacht hast, kannst auch jederzeit nachsehen, mit "git
diff".
Ein eigener Branch ist aber sicher trotzdem sinnvoll. ;)
</ot>