PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit welchem ARM Board habt Ihr gute Erfahrungen gemacht?



alexander_ro
05.02.2013, 22:58
Hi,

ich habe mir mal das Gnublin Extended gekauft aber leider eignet sich das wegen dem nicht so gut angepassten Kernel weniger für meine Zwecke. Bei dem derzeit funktionierenden Kernel fehlt die Unterstützung für die HrTimer (High Resolution Timer Support). Deshalb liefert ein Aufruf der Funktion nanosleep (1); eine Schlafzeit von 4ms für diesen Prozess. Die Zeit ist halt selbst bei der Steuerung von einfacher Mechanik viel zu lange wenige Mikrosekunden sollten es schon sein. Die Gnubliner arbeiten zwar an einer Lösung aber das dauert mir zu lange. Ich will ja mit meinem Projekt weiterkommen und nicht erst Kernel Programmierer werden.

Meine Wünsche zu dem Board wären also die Rechenleistung wenn höher aber nicht niedriger als die Gnublin CPU LPC3131 läuft glaube ich mit 180 Mhz. Das gleiche gilt für den Speicher die 32 MB sind unterste Grenze. Sonstige Schnittstellen/Funktionen I2C/SPI, USB, SD-Karte, GPIO, PWM. Das Platinchen sollte auch für Selbstbauer brauchbare Anschlußmöglichkeiten haben. Es soll ein möglichts Orginales Debian also ohne X-Windows darauf laufen. Es wäre aber eine bessere Kernel Unterstützung nötig damit z.B. die HrTimer funktionieren und optimal auch für die aktuelle Kernel Versionen. Wenn es einen sauber funktionierenden Kernel gibt bekomme ich das Debian schon selber zum laufen.

Ich habe mit ARM Hardware noch nicht so viel Erfahrung nur der Gnublin und mein N900.

Aber vielleicht kennt Ihr ja was passendes mit guter Kernelunterstützung.

Grüße
Alexander

tucow
09.02.2013, 01:59
Entweder das Raspberry Pi Model B Revision 2 (https://www.roboternetz.de/community/forums/68-Raspberry-Pi) oder das Cubieboard (https://www.roboternetz.de/community/threads/60474-Cubieboard-A10-512-4GB).

Mit dem Raspberry Pi (RPi) betreibe ich z.B. meinen humanoiden Roboter, die Unterstützung ist einfach grandios (samt großer Community). Auch in meinem nächsten Projekt wird ein RPi zum Einsatz kommen.

Es hat eigentlich alles was Du forderst und mehr ;) statt 180MHz läuft es mit 700MHz (übertaktbar bis 1.2GHz), 512MB RAM, 10/100MBit LAN, 2x USB, HDMI, Audio Out, Composite Out, I2C, SPI, GPIOs, hw PWM an einem Pin aber sw PWM schon erfolgreich implementiert und es gibt diverse Distros die drauf laufen.

alexander_ro
09.02.2013, 07:15
Danke für die Info. :)

Du hast da schon recht es hat viel mehr als ich brauche. Der Rechner soll in meinem Auto Probleme lösen die Audi vergessen hat zu lösen. Da braucht man natürlich kein HDMI oder Netz und USB auch nur für Software Updates. Die Frage ist halt ob man sich daran stören soll wenn er es hat.

Ich werde noch auf der embedded world in Nürnberg vorbei schauen und sehen was es da gibt. Vorher hatte ich gehoft hier noch ein paar Infos über bekannte Boards oder Hersteller zu bekommen. Sieht nicht so aus als ob die ARMs hier viel verwendet werden.

Kai69
09.02.2013, 07:53
Hallo Alexander
bin interessiert welche Probleme Audi nicht gelöst hat. Klingt spannend!
Gruß Kai

alexander_ro
09.02.2013, 09:24
Die TDI mit einem Turbolader mit verstellbarer Turbinengeometrie leiden recht unter dem fahren kurzer Strecken. Das Problem dabei liegt darin das der Turbo nicht die nötige Temperatur erreicht damit die Rußablagerungen verbrennen würden. Das führt dann zum Ausfall der Ladedruckregelung. Läßt sich leicht beheben in dem man dafür sorgt das der Motor schneller warm wird und das wiederum macht man in dem man ihn nicht kühlt wenn er zu kalt ist. Ich habe das jetzt schon zwei Jahre im Manuellen betrieb getestet funktioniert perfekt. Da das selber umschalten lästig ist soll es automatisiert nach der Temperatur erfolgen.

TheDarkRose
09.02.2013, 10:23
Ich arbeite derzeit mit dem APF28 (http://www.armadeus.com/english/products-processor_boards-apf28.html) von Armadeus. Dort sitzt ein i.MX286 von Freescale oben und der Linuxkernel ist sehr gut angepasst. Die Toolchain (Buildroot) von Armadeus ist auch sehr gut gemacht. Kommt zwar mit dem Developmentboard auf bisschen mehr als 100€, hat dafür jede Menge Peripherie an Board, u.a. CAN (MCP2551 Transceiver), I2C, SD/MMC

tucow
09.02.2013, 10:42
Danke für die Info. :)

Du hast da schon recht es hat viel mehr als ich brauche. Der Rechner soll in meinem Auto Probleme lösen die Audi vergessen hat zu lösen. Da braucht man natürlich kein HDMI oder Netz und USB auch nur für Software Updates. Die Frage ist halt ob man sich daran stören soll wenn er es hat.

Ich werde noch auf der embedded world in Nürnberg vorbei schauen und sehen was es da gibt. Vorher hatte ich gehoft hier noch ein paar Infos über bekannte Boards oder Hersteller zu bekommen. Sieht nicht so aus als ob die ARMs hier viel verwendet werden.

Dann schau Dir mal das Model A (http://de.farnell.com/raspberry-pi/dp/2254699) an, es besitzt kein LAN Port, 1x USB und nur 256MB RAM. Der Rest ist gleich.

alexander_ro
10.02.2013, 20:00
Ich arbeite derzeit mit dem APF28 (http://www.armadeus.com/english/products-processor_boards-apf28.html) von Armadeus.

Ja das sieht auch nicht schlecht aus. Hast Du schon mal probiert was die kürzeste Pause ist die ein Aufruf von nanosleep (1); ist?
Könntest Du vielleicht mal schauen was ein "cat /proc/timer_list" sagt?
Das einzig unschöne sind die Steckverbinder.

TheDarkRose
10.02.2013, 20:50
Hast du ein KKB (kurzes kompilierbares Beispiel) zum testen der Zeit von nanosleep?
Soft Realtime (http://www.armadeus.com/wiki/index.php?title=Real_time_on_APF) ist mit der Kerneloption PREEMPT schon im Defaultkernel aktiviert. Solltest du Hard Realtime benötigen, gibt es Xenomai (http://www.armadeus.com/wiki/index.php?title=Xenomai), welche sich vor dem Linuxkernel schaltet.

Bzgl. den Steckverbindern, du brauchst sowieso das APF28-Devboard (http://www.armadeus.com/english/products-development_boards-apf28_dev.html), außer du willst die Platine selber designen.


# cat /proc/timer_list Timer List Version: v0.6
HRTIMER_MAX_CLOCK_BASES: 2
now at 223022594011 nsecs


cpu: 0
clock 0:
.base: c05f7678
.index: 0
.resolution: 1 nsecs
.get_time: ktime_get_real
.offset: 9516562497 nsecs
active timers:
clock 1:
.base: c05f76a8
.index: 1
.resolution: 1 nsecs
.get_time: ktime_get
.offset: 0 nsecs
active timers:
#0: <c05f7be0>, tick_sched_timer, S:01
# expires at 223030000000-223030000000 nsecs [in 7405989 to 7405989 nsecs]
#1: <c7087f30>, hrtimer_wakeup, S:01
# expires at 223037001169-223037051169 nsecs [in 14407158 to 14457158 nsecs]
.expires_next : 223030000000 nsecs
.hres_active : 1
.nr_events : 4138
.nr_retries : 182
.nr_hangs : 0
.max_hang_time : 0 nsecs
.nohz_mode : 2
.idle_tick : 222980000000 nsecs
.tick_stopped : 0
.idle_jiffies : 4294959594
.idle_calls : 23304
.idle_sleeps : 11222
.idle_entrytime : 223010000001 nsecs
.idle_waketime : 223010000001 nsecs
.idle_exittime : 223010062503 nsecs
.idle_sleeptime : 213128532357 nsecs
.iowait_sleeptime: 0 nsecs
.last_jiffies : 4294959596
.next_jiffies : 4294959597
.idle_expires : 223010000000 nsecs
jiffies: 4294959598




Tick Device: mode: 1
Per CPU device: 0
Clock Event Device: mxs tick timer
max_delta_ns: 134218658631456
min_delta_ns: 468753
mult: 137438
shift: 32
mode: 3
next_event: 223030000000 nsecs
set_next_event: mxs_set_next_event
set_mode: mxs_set_mode
event_handler: hrtimer_interrupt
retries: 0

alexander_ro
11.02.2013, 19:53
Nein hab kein Programm. Bei mir ist das in einem größeren enthalten. Aber das macht nichts musst Du nicht extra machen. Hätte ja sein können das es Dir schon bekannt ist. Sonst reicht mir schon die Timerliste. Danke für die Info.

Ja bei meiner Anwendung wäre eine eigene Platine schon fein. Mit diesen Steckern kann ich die aber nicht mehr selber machen die müsste ich dann machen lassen.

TheDarkRose
12.02.2013, 20:12
Hast du dir das Dev-Board mal angesehen? Dort ist ja dann alles auf Stiftleisten bzw. passende Buchsen (Netzwerk und USB) herausgeführt.

alexander_ro
15.02.2013, 06:54
Ja hab ich mir angeschaut. Wenn man alles dann auf einer hat wäre halt schöner. Geht aber mit dem Dev-Teil auch hat man dann halt eine Platine mehr.