Hallo, Mein rPi ist unterwegs. Zielanwendung ist die Temperaturaufname über 15 LM(1)75 und Ausgabe über nen Webserver. Allerdings gibts ja noch keine treiber in debian. Jetzt frage ich mich schon ne Weile ob es denn möglich ist, den ARM wie einen Mega32 direkt mit einer Hexfile zu flashen, da ich mich von den Megas her schon mit dem I2C auskenne. Für den Webserver gibts ja schon komplette Protokollstacks die ich nutzen könnte. Hat das schon mal jemand versucht? Ist das überhaupt möglich?
Manuel Schneider schrieb: > Hat das schon mal jemand versucht? Ist das überhaupt möglich? du kopiest einfach das image auf eine SD karten - fertig. Schon bootet ein linux (z.b. debian) Dann kannst du doch machen was du willt.
Manuel Schneider schrieb: > Allerdings gibts ja noch keine > treiber in debian Echt? /usr/src/linux/Documentation/hwmon/lm75 /usr/src/linux/drivers/hwmon/lm75.c muss halt noch einen i2c-multiplexer dazwischenschalten, sonst reichen die Adressen nicht für 15 Stück davon.
Naja ich dachte eher an I2C direkt auf dem ARM. Vom OS hat man ja keinen direkten Zugriff auf die Register. Und der I2C Treiber der Wheezy bietet , so scheint mir laut Dokumentationen auch eher Alpha als Beta zu sein. Zudem habe ich gelesen, dass es sich um eine Softwareimplemetierung des I2C Protkolls handelt. Der ARM macht das aber schon auf Hardware Basis. Da mir ARM Datenblätter nach Registern zu durchsuchen einfacher scheint als irgendwelche experimentelle Treibercodes nach Fehlern zu durchsuchen, fände ich das flashen(wenn es denn so einfach wie beim mega ist) gemütlicber. Gruß
In Debian gibt es warscheinlich keine i2c Treiber. Oder die Module sind nicht geladen. Probier mal sudo modprobe i2c_bcm2708 und dann lsmod gucken ob das Modul geladen wurde. So bald ein i2c Bus vorhanden ist kanst den LM treiber laden.
Was du suchst ist wiring pi. ;) Ansonsten wenn du driekt auf die Register zugreifen willst Treiber entwickeln. :) Oder eignes Betreibssystem schreiben wenn du i2c und ethernet haben willst.
Manuel Schneider schrieb: > Naja ich dachte eher an I2C direkt auf dem ARM. Erm. Du hast schon verstanden, das am RPi der ARM das Linux ausführt, oder? Da ist kein zusätzlicher "Linux-Chip" neben dem ARM verlötet oder so.
Εrnst B✶ schrieb: > muss halt noch einen i2c-multiplexer dazwischenschalten, sonst reichen > die Adressen nicht für 15 Stück davon. Es geht der 175er mach 27 adressen. > Erm. Du hast schon verstanden, das am RPi der ARM das Linux ausführt, > oder? Das soll ja auch anstatt dem Linux drauf. Nach wiring Pi muss ich mal schauen. Treiber schriebne kann ich nicht, bzw habs noch nie versucht. ;-)
Manuel Schneider schrieb: > Hallo, > > Mein rPi ist unterwegs. Zielanwendung ist die Temperaturaufname über 15 > LM(1)75 und Ausgabe über nen Webserver. Allerdings gibts ja noch keine > treiber in debian. Jetzt frage ich mich schon ne Weile ob es denn > möglich ist, den ARM wie einen Mega32 direkt mit einer Hexfile zu > flashen, da ich mich von den Megas her schon mit dem I2C auskenne. Für > den Webserver gibts ja schon komplette Protokollstacks die ich nutzen > könnte. > > Hat das schon mal jemand versucht? Ist das überhaupt möglich? So ein großer ARM ist mindestens eine Größenordnung komplexer als ein AVR was allein schon die Initialisierung angeht. Man wird da wenig Wissen von den AVRs her recyceln können. Es gibt die Möglichkeit direkt auf das I2C Interface zuzugreifen. Zumindest Raspbian stellt direkt und /dev/i2c* die beiden I2C Interfaces zur Verfügung - wenn die richtigen Treiber geladen sind (i2c-dev) Gibt aber auch die Möglichkeit in C direkt auf dem Registerlevel zu arbeiten, hier ein Beispiel: http://www.susa.net/wordpress/2012/06/raspberry-pi-pcf8563-real-time-clock-rtc/
Manuel Schneider schrieb: > Zielanwendung ist die Temperaturaufname über 15 > LM(1)75 und Ausgabe über nen Webserver. > Allerdings gibts ja noch keine treiber in debian. > Für den Webserver gibts ja schon komplette Protokollstacks die ich nutzen könnte. Manuel Schneider schrieb: > Das soll ja auch anstatt dem Linux drauf. Das darauf laufende Debian Linux (Raspbian) kann bereits: * I2C (i2c_bcm2708.ko wurde bereits genannt) * Ethernet/IP/TCP & UDP * Webserver * sowie eine Million anderer nützlicher Dinge Das willst Du alles wegschmeissen und den ARM komplett neu und selbst programmieren?
Manuel Schneider schrieb: > Das soll ja auch anstatt dem Linux drauf. Verstehe ich das richtig? Du willst eine bare-metal-app für das Ra-Pi schreiben ganz ohne OS? Gruß Oliver
Irgendwas muss ja auch den first stage bootloader des pi von der sd karte laden.... das muss ja dann zumindest schonmal sd karten ansteuern und fat lesen können.... code in den ram laden und ausführen... zum firststage bootloader ist das soweit ich weiss auch schon nicht so viel bekannt... der gehört zu den blobs und wird soweit ich weiss nicht veröffentlicht.... soweit mit bekannt is lädt der dann den video core und so ...
Ohje ich bin wie der Lukas auf dem Rummel ;-D Alsooo, ja ich will/würde den ARM gerne selbst programmieren, aber nur wenn es nicht anders geht. Mit anders meine ich auf eine schöne Weise, nicht irgend einen experimentellen Ansatz. Wenn Raspbian das macht dann ist gut, dann bin ich zufrieden und werde es auch benutzen. Aber ich habe eben in einigen Quellen gelesen, dass das nur eine Software Implementierung ist und das finde ich unschön, da der ARM einen "Hardware-TWI/I²C" Treiber hat. Und solange ich da nicht "Stable" o.ä. lese oder das Paket offiziell unterstützt (Chris Boot’s forked kernel nur wegen I²C?) wird, ist das für mich gefühlt der falsche Weg. Tut mir Leid wenn ich einige von euch (offen gestanden pragmatischer Denkenden) enttäuschen muss, aber ich habe es eben gerne ordentlich und vor allem habe ich es gerne verstanden. Hier sind mittlerweile eine ganze Menge Stichwörter gefallen, die ich mir erst einmal alle anschauen muss. Ich fass alles nochmal zusammen und wenn jemand andere Ansätze hat, darf er mir die gerne Mitteilen. - lm75.c - i2c_bcm2708 - wiring pi - i2c-dev - Chris Boot’s forked kernel - ... Vielen Dank für die Hilfe bisher. Gruß
Manuel Schneider schrieb: > Aber ich > habe eben in einigen Quellen gelesen, dass das nur eine Software > Implementierung ist und das finde ich unschön, Falsche Quellen gelesen ;-) > da der ARM einen "Hardware-TWI/I²C" Treiber hat. Das stimmt und der wird auch genutzt. Wenn das Kernel Modul geladen und I2C angesprochen wird, so hat man per default 250kBit/s ohne nennenswerte CPU Belastung. Kann also nur Hardware sein. > Und solange ich da nicht "Stable" o.ä. > lese oder das Paket offiziell unterstützt (Chris Boot’s forked kernel > nur wegen I²C?) wird, ist das für mich gefühlt der falsche Weg. Raspbian ist Debian Wheezy, das ist zur Zeit eingefroren und es wird auf Stable hingearbeitet. Wheezy ist schon jetzt stabiler als so manches KaufOS nach dem dritten Servicepack ;-) Hab das hier alles headless über ssh laufen und laufen und ...
Ups, kleine Korrektur notwendig. Ich meinte natürlich SPI mit 250kBit/s in Hardware, I2C hab ich noch nicht getestet. Sorry dafür.
Der Ansatz ohne Linux "selbststricken" nennt sich "bare metal", erste Schritte z.B. hier: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=72&t=15387 aber es ist ein langer und steiniger Weg. Insbesondere der Webserver will dann das Linux benutzen, das Du ja weglassen willst, also musst Du den auch "zu Fuß" implementieren..
Was ich hier so lerne ist völlig abgefahren... :-D Gefällt mir. Hab grad mal testweise die Module meines Homeservers ausgegeben. Ich wusste gar nicht dass ich Bluetooth habe. :-D Hab auch keins, obv lädt Linux falsche Module. Okay also wenn ich "modprobe i2c-" und Tab tippe, steht da haufenweise Zeugs. Nur kein i2c-bcm****. Ich vermute, dass das Kernelmodul dann nur im Wheezy enthalten ist. Hab dann mal zum testen i2c-dev geladen. In dev sehe ich jetzt i2c-0, 1 und 2. Heißt das jetzt dass mein Intel-Core2-Duo E6850 3 I²C Busse hat? > Raspbian ist Debian Wheezy ... Komplett identisch oder ein Derivat? Wo finde ich heraus welche Pakete und Kernelmodule Raspbian beinhaltet? > aber es ist ein langer und steiniger Weg. Insbesondere der Webserver > will dann das Linux benutzen, das Du ja weglassen willst, also musst Du > den auch "zu Fuß" implementieren.. Kurz angelesen, gestaunt und gemerkt das ist nichts für mich. Danke für den Hinweis. :D
Es werden die Original-Debian Sources kompiliert für ARM hard-float. Ziel ist so nahe wie möglich an 100% Übersetzung heranzukommen. zZ. siehts schon wirklich gut aus! root@raspberry:/home/pi# aptitude Installierte Pakete: 609 Nicht installierte Pakete: 36351
root@raspberry:/home/pi# modprobe i2c-dev root@raspberry:/home/pi# modprobe i2c-bcm2708 root@raspberry:/home/pi# ls -l /dev/i2* crw------T 1 root root 89, 0 Aug 30 16:20 /dev/i2c-0 crw------T 1 root root 89, 1 Aug 30 16:20 /dev/i2c-1 root@raspberry:/home/pi# i2cdetect -ya 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@raspberry:/home/pi# i2cdetect -ya 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
root@Homeserver:/dev$ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- 3a -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- Was heißt das jetzt? Dass da 2 Geräte dran sind mit den Adressen 50 und 3a? PS: Jetzt ist es aber langsam echt off-topic das passt eher zum alten Thread von mir... Beitrag "Raspberry Pi GPIO I2C Zugriff?"
# man 8 i2cdetect ;-) DESCRIPTION i2cdetect is a userspace program to scan an I2C bus for devices. It outputs a table with the list of detected devices on the specified bus. i2cbus indicates the number or name of the I2C bus to be scanned, and should correspond to one of the busses listed by i2cdetect -l. The optional parame‐ ters first and last restrict the scanning range (default: from 0x03 to 0x77). INTERPRETING THE OUTPUT Each cell in the output table will contain one of the following symbols: · "--". ....... · "UU". ....... · An address number in hexadecimal, e.g. "2d" or "4e". A chip was found at this address.
Verflucht ich bin wahnsinnig heiß auf den RPi. Der kommt aber erst in ca 10 Wochen :´(. Danke für die ganze Hilfe. Ich werd in ein paar Monaten über die Heizungsüberwachung berichten. Vielen vielen Dank!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.