PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] 10k NTC mit so wenig extra beschaltung wie möglich am RPI Zero auswerten (2-Kanal)



Ceos
16.10.2018, 13:11
ich habe mir den Luxus gegönnt und eine Custom Loop in meinem PC für die Graka verbaut.

Obendrein habe ich Einschraubsonden-Temperaturfühler ergattert, welche in den Vor und Rücklauf des Radiator hängen möchte um die Lüfter zu steuern

im Moment hänegn die Lüfter noch an der Graka aber durch den Offset am Wasserblock und der thermischen Kapazität der Loop ist die Regelung eher mäßig erfolgreich und ich versuche das System so leise wie möglich laufen zu lassen

Die Sonden sind 10kOhm NTCs wie sie üblich auch auf dem Mainboard verbaut sind, nur leider bietet das Board keine externen Eingänge sonst hätte ich es darüber geregelt.

Daher möchte ich einen RPI Zero über internes USB anschließen und nebst Temperaturmessung und Lüftersteuerung auch noch eine RGB Orgel via OPC Server darin verbauen ... weil ichs kann ...

Aber ich finde irgendwei keine guten tuts oder Infos wie ich mit dem RPI solche NTCs einfach auswerten kann ohne mir jetzt noch einen abzubrechen udn eine Platine zusammen zu basteln.

Kauflösungen wären Ideal, aber sie sollten auf den Formfaktor des Zero passen und wenns geht auch keine 40€ kosten :D

Ich muss schließlich von den GPIOs auch noch das Lüftersignal erzeugen und brauche mind. einen Hardware SPI für die LEDs

Herzlichen Dank für die teilnahme schonmal



EDIT:

der pHat Explorer klingt gut, der hat 4x 5V Ausgangstreiber und wenn ich die PWM Spec verstehe brauche ich nur ein 5V 25kHz Signal

https://www.glkinst.com/cables/cable_pics/4_Wire_PWM_Spec.pdf

außerdem hat er auch ADC Eingänge die die Spannung in Volt ausgeben ... fragt sich nur ob ich dann noch Zugang zum SPI habe ...


EDIT2:

Ja habe ich https://pinout.xyz/pinout/explorer_phat
(https://pinout.xyz/pinout/explorer_phat)
VERAMMT ist die Seite GEIL https://pinout.xyz/boards

Moppi
17.10.2018, 07:11
Tip: https://www.abelectronics.co.uk/kb/article/29/adc-differential-pi-with-ntc-thermistors

MfG

Ceos
17.10.2018, 09:09
hmm ... differentiell ... klingt schonmal nicht schlecht, gibt sicher meher Auflösung aber ich muss ja nicht schnell messen, d.h. ich kann auch ordentlich Mitteln um gute Werte zu bekommen

zumal ich noch eine passende 5V Treiberstufe für das PWM bräuchte, ich guck mir mal die Pin Belegung an

EDIT: https://pinout.xyz/pinout/adc_pi_zero scheint doch das Board zu sein oder? müsste man nur rausfinden ob die I2C Adressen vom phat und dem hier sich überlappen

krass die adressen stehn sogar mit auf de Seite, ich liebe diese Seite!


EDIT2: nach sorgfältiger analyse weis ich, der pHat kann ebenfalls differentiell messen, ich werde wohl ober übel die ansteuerung per hand programmieren müssen und auf die libs verzichten

den phat habe ich grade für 9€ bestellt wöhrend mich der differential pi 20 kostet und keine 5V PWM kann :D

Moppi
17.10.2018, 09:56
Ich will jetzt nichts Falsches zu dem Pinout sagen, mit Raspberry kenne ich mich nicht aus. Habe gerade mit Arduino angefangen! ;)
Erweiterungsboards verwenden schon dieselben Adressen für dieselben Aufgaben. Deshalb würde ich denken, wenn an dem Board ein I2C dran ist, dass dies kein zweiter I2C-Anschluss ist. Aber ich weiß es nicht, nur ich würde davon nicht ausgehen.

MfG
Moppi

Ceos
17.10.2018, 10:02
Erweiterungsboards verwenden schon dieselben Adressen für dieselben Aufgaben

das stimmt so leider nciht, sie verwenden zwar die selben Busse (in dem Falle I2C) aber beide Boards haben unterschiedliche Chips mit unterschiedlichen Adressen, also alles gut, aber ich habe GERADE EBEN ein 2tes Edit gemacht und kann das gleiche mit dem phat Explorer erreichen, nur die Lib Unterstpützung muss ich mir selber programmieren

hab mal ein issue ins github geworfen, mal sehen was kommt, zur not versuch ich ein PR zu schreiben
https://github.com/pimoroni/explorer-hat/issues/41

Moppi
17.10.2018, 10:05
Warum eigentlich Raspberry?

An einen Atmega kann man den 10k-NTC direkt anschließen und auch sonst, glaub ich, das machen, was Du vor hast. Minibeschaltungen für USB-Anschluss gibt's auch für Atmega. Ist USB-Kommunikation mit einem Pi einfacher?

MfG

Ceos
17.10.2018, 10:08
ein Atmega kann zwar die RGB LEDs ansteuern aber nie im leben einen OPC server betreiben

sich habe es sogar mit einem overclockten ESP8266 versucht aber bekomme nur 2 fps umgesetzt

ein RPI hat wesentlich mehr power :D

PPS: und ich kann später noch einen touchscreen oder so einbauen und mir einen mini desktop ins gehäuse bauen oder daten anzeigen lassen

PPPS: wenn du dich mit normalen stmegas jenseits arduino also bare metal beschäftigst lege ich dir einen XMega ans herz ... das ist ein MONSTER!

völlig freies Eventsystem, DMAs, 1+3 ISR Level und ein breiterer bus machen ihn gerade für single precision float echt flott und ist dbei 100% deterministisch nicht wie die ARMs mit ihrem async bussen, der perfekte lückenschluss zu ARM in meinen Augen

Moppi
17.10.2018, 11:17
Ich habe an meinem PC auch so ein verbautes Display. Eigentlich eine tolle Sache, nur ich brauche einen zweiten Graka-Ausgang dafür und die Software beeinträchtigt das System, deswegen ist dieses Display aus. Es bietet auch keinen nützlichen Mehrwert. Ich wollte das mal als Wohnzimmer-PC betreiben, für Radio,CD, BlueRay und als Mehrkanal-Vorverstärker, sowie füür Spiele. Aber hat sich auch erledigt. Ist nie stabil genug gelaufen (s. Software, was ich eben schrieb und Windows) und inzwischen habe ich ein Gerät für die Wohnzimmerbespaßung mit 11 Kanälen, eine extra Spielekonsole (mal wieder und mal wieder nerven mich die teuren Spiele dafür).

PS: für die meisten der Low-Level-Aufgaben die ich erledigen möchte, sehe ich einen Atmega328 noch immer als überdimensioniert.


MfG

Ceos
17.10.2018, 12:03
okay ich habe mich nicht klar ausgedrückt, es geht um einzeladressierbare APA102 LEDs auf basis eines SPI protokoll und 4byte/LED ...

wenn du mir zeigst wie du mit 150x4Bytes eine Regenbogenanimation mit mehr als 1fps berechnest und noch genug Zeit übrig hast,
den SPI mit den 600Bytes zu füttern,
einen ADC auszuwerten und passend einen PWM zu konfigurieren

stimme ich dir zu

PS: 4bytes WRGB wobei W vernachlässigbar ist

Moppi
17.10.2018, 12:35
Meinst Du mit Regenbogenfarben etwa so etwas?

33720

Da sind jetzt nicht alle zu sehen, geht von Grau, nach Rot, nach Blau, nach Grün, nach Gelb ...

Müsste man sich mal Gedanken machen. SPI ging bei Atmega bis ca. 300kByte/s.

"Regenbogenanimation" ist weitläufig. Dabei kommt es auch auf die Geschwindigkeit der Animation an. Vor allem natürlich aber auch, wie die Animation stattfinden soll - Algorithmus.


Aber davon abgesehen, Du schriebst, dass Du das mit einem "ESP8266 versucht" hast, aber eben nur mit 2fps/s hinbekommen hast. Vielleicht kann man das noch optimieren, wie immer Du die Berechnungen durchführst, welcher Algorithmus dahinter steht.

MfG

Ceos
17.10.2018, 13:19
am algorithmus zu optimieren würde da nichts helfen die ausbeute wäre ungefähr so effektiv wie zu sagen "mit dem benchmark hier erreiche ich 160FPS" ... aber sobald du im spiel bist sind es nur 10FPS weil deine graka für allgemeine berechnung kacke ist und der benchmark sich nur auf die features der graka stürzt um sie voll aus zu lasten (bestes beispiel die RTX Karten von NVidia ... 30% mehr Leistung für 70% mehr Geld ... die restlichen 40% sollen ja mit den ganzen raytrace funktionen kommen für die es derzeit keine realanwendung gibt sondern nur optimierte demos)

mit regenbogen animation meine ich einen wandernden regenbogen der im kreis läuft, aber nicht einfach nur die farbe durch die LEDs schieben, sondern für jeden frame neu berechnen, also startpunkt mit offset, hue-swing und runter rechnen auf die rasterung der LEDs und deren farbkomponenten

im finalen design soll ja ein OPC laufen, der über USB und virtuelle netzwerkkarte vom PC angesteueurt wird um passend zu spiel die farbe im gehäuse ändern zu können z.B. solche spielereien eben, d.h. da kommt ein netzwerkstack via USB dazu, der OPC dienst bzw. der stack dafür

EDIT ich habe mal provisorisch ein Erledigt dran geklebt, da die eigentliche Frage erledigt ist :)