-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: SPIPortManager to allow use of CMT radio and Huawei charger at the same time #1144
feature: SPIPortManager to allow use of CMT radio and Huawei charger at the same time #1144
Conversation
b50c268
to
9abc7be
Compare
@AndreasBoehm |
9abc7be
to
430eed8
Compare
Danke, hab ich so übernommen. |
hab ich übernommen |
@darksideofthemoon1712 Hier gibts das build zum ausprobieren ob CMT2300a und Huawei charger nun zusammen funktionieren. Da ich keinen Huawei charger habe konnte ich bisher nur testen ob NRF24 und CMT2300a weiterhin gleichzeitig funktionieren. |
Hallo @AndreasBoehm ich habe eine Frage weil langsam die Zahl der freien GPIOs fuer mein MCP2515 Board gering wird.... ein paar von den urspruenglich gedachten GPIOs werden jetzt von CMT2300a benutzt.
|
@Manos1966 sorry, da kann ich dir leider nicht helfen. Ich nutze ein Fusion Board und bin in den Technischen Details eines ESP32 noch nicht wirklich tief drin. |
"do not use" meint tatsächlich "do not use". Die anderen GPIO die input-only sind kannst Du eben nur als Eingang nutzen, NICHT als Ausgang. Damit keil CLK/CS oder MOSI, nur MISO. |
Hallo @AndreasBoehm
I habe die opendtu-onbattery-generic_esp32_4mb_no_ota.factory.bin auf mein "Huawei ESP32 Setup" geflascht Es funktioniert nicht:
Bootlog here: https://pastebin.com/ynEdi389 UPDATE: Ich sollte vielleicht erst OHNE NRF24 probieren? 🤔 |
bab3a8e
to
71310a3
Compare
@Manos1966 Danke fürs testen. Ich hab eine Berechnung falsch durchgeführt, deswegen ging es nicht. Hab ich behoben und auf einem ESP32 mit CMT2300a ausprobiert. Du kannst gerne direkt CMT2300a und NRF24 gemeinsam nutzen. CMT + NRF + Huawei wird aber nicht klappen, dafür hat der ESP32 und ESP32-S3 nicht genug SPIs. Neues build ist hier zu finden. |
Danke @AndreasBoehm Boot normal, CMT & Huawei laufen parallel 👍 Boot log here https://pastebin.com/EaqY3akk
|
Das sieht doch perfekt aus. Hinweis: Meine nächste Entwicklung wird die Integration eines Longan SeeedStudio I2C to MCP2515 Moduls für den zweiten CAN Bus Port sein. das Modul habe ich bereits. Damit würde das HUAWEI Netzteil über I2C angeschlossen und zusammen mit NRF24 und CMT2300A und einer Pylontech oder Bytes angeschlossen über CAN funktionieren. Das Longan SeeedStudio Modul (es gibt mehrere Versionen) besteht aus einem Die beiden letzten wären meine Empfehlung. Es kann direkt an den 3.3 Volt GPIO Pins des ESP32/ESP32-S3 angeschlossen werden und wird über I2C angesprochen. |
@AndreasBoehm
|
Alle ESP32 Varianten getestet und sie funktionieren!
|
Danke @Manos1966 ! das geht so aus den Eckigen Klammern wird dann die Checkbox |
Hallo Zusammen, hab das PR auf einem esp32S3 gestestet. CMT2300a geht auch wenn Huawei in der Pinmapping konfiguriert ist. |
@darksideofthemoon1712 |
Hallo Skippermeister, |
71310a3
to
1c95b41
Compare
@Manos1966 |
Normal ist es nicht. Und wenn das nicht hilft, schliesse deinen ESP32 am PC und mache ein BOOT.LOG (eigentlich kannst du direkt auf der Konsole sehen was passiert beim booten...) Mein Bootlog ist hier: |
ich habe alles außer CMT,Display, Huawei auf -1 gesetzt. Einen NRF habe ich gar nicht. |
Dann machst du etwas komplett falsch! Du kannst wie folgt testen:
Pruefen ob dein MCP2515 funktioniert Hast du dein MCP2515 modifiziert wie hier beschrieben? (oder ist es ein Joy-IT SBC-CAN01 ?)
|
Ich habe bei meinen Tests einen sehr merkwürdigen Fehler mit einem ESP32-S3 mit USB Port. Sobald ich ein CMT und oder NRF24 VE.Direct und dem CAN0 Bus aktiviere, rebootet der ESP32-S3 grundsätzlich in der Funktion Falls mit einem ESP32-S3 CMT und/oder NRF24 + CAN0 Bus + VE.Direct das gleiche Problem häufiger auftritt, dann sollten wir die Modifikation ins Modul BatteryCanReceiver.cpp eingepflegen. In Meinem fork habe ich das bereits implementiert und hochgeladen. Ein Release ist noch nicht erstellt. |
Hallo @skippermeister Ich habe Als ich Victron auf GPIO1 und GPIO2 definiert hatte, gab es Probleme |
@skippermeister Was tut das und hat das etwas mit dem SPI Port Manager zu tun?
@AndreasBoehm Der eine User, der einen ESP32-C3 einsetzt, der wird sich dann schon melden, wenn es mit dem ESP32-C3 nicht klappt 🤷♂️ |
@schlimmchen Auf einem ESP32 tritt der Fehler nicht auf, da genügend freie Interrupts im Level 1 zur Verfügung stehen. |
@skippermeister kannst du auch bestätigen, dass mit Firmware opendtu-onbattery-generic_esp32s3.bin (ohne USB), deine ESP32-S3 mit USB Port funktioniert ohne Probleme? (so wie es bei mir der Fall ist) (oder willst du, dass ich es teste - die Firmware opendtu-onbattery-generic_esp32s3_usb.bin (mit USB), auf meine ESP32-S3 mit USB Port zu installieren und gucken ob sie das gleiche Problem hat?) |
@Manos1966 Ich teste die Tage mal meine Software auf dem ESP32-S3 USB mit der opendtu-onbattery-generic_esp32s3.bin (ohne USB. |
@skippermeister das klingt so als ob dein Problem nichts mit dem SPIPortManager zu tun hat. Mit einem Fusion Board (ESP32-S3) funktioniert die Kombination aus NRF, CMT, CAN0 und 2x Victron mit den USB builds ohne Probleme, sowohl mit aktuellem Release build als auch mit dem build aus diesem PR. Falls ihr mit der gleichen Hardware schwierigkeiten habt wäre es super wenn Ihr ausschließen könnt das es am SPIPortManager liegt und hier kurz Bescheid gebt. Dieser PR ist jetzt schon relativ lange offen und ich habe das Gefühl das wir hier vom Thema abkommen, jedenfalls hab ich den Überblick verloren und weiß aktuell nicht ob der SPIPortManager nun bei allen funktioniert oder nicht. |
@AndreasBoehm Also liegt es wohl am PSRAM. Du kannst diesen PR aber schließen. |
Ich nehme an, das ist ein Tippfehler?! Der wird nicht geschlossen, der wird ge-merge't... @AndreasBoehm Die Eingriffe in die Libs sind schon lästig. Beim Einpflegen von Änderungen aus dem Upstream kann das lästig werden. Ich sehe aber den Vorteil, den der SPI Port Manger bringt definitiv als wichtiger an. Außerdem gibt es in den Libs wenig Anpassungen und vermutlich auch zukünftig wenig Bedarf für Anpassungen. Danke @skippermeister und @AndreasBoehm. |
Habe mir die Diskussion bis hier in durchgelesen und doch noch ein paar offene Fragen. |
Das MCP2515 Modul wird über direkte Verbindungen genutzt. CMT, NRF und Huawei können nicht gleichzeitig genutzt werden. Eins davon musst du weg lassen. |
@AndreasBoehm angenommen: |
Booten wird es auch wenn im pin mapping alle Ger äte hinterlegt sind. Wirst nur im Log sehen welches Gerät nicht aktiviert werden konnte und sonst funktioniert alles ganz normal. |
Ich habe anderes erlebt 😨 deine Beschreibung gefehlt mir aber besser ... 👍 UPDATE: Ich habe es getestet, due hast recht er ist NICHT aufgehangen! ❤️
|
D.h. man könnte NRF (NRF weil es mit der Zeit weniger HM WR's geben wird) und MCP2515 optional machen und jeweils per Jumper/DIP aktivieren so dass den Nutzern die Wahl bleibt. Wie wird der Wechsel dann in der Software dargestellt? Einfach ein anderes Mapping wählen? |
@swingstate ich nehme alles zurueck! Du brauchst keine extra Jumper. (ich haette schwoeren koennen @AndreasBoehm ich hatte eine Version, wo ich mindenstens ein Geraet entfernen musste damit sie bootet, vielleicht bei der normalen ESP324MB? EGAL, Schnee von gestern). |
Ist das belegt bzw. getestet worden? D.h. das Umschalten erfolgt nur per Software bzw. Mapping Änderung? Welches physisches Interface nutzt ihr eigentlich für die Verbindung zum Huawei bzw. welches wäre sinnvoll? |
siehe #1144 (comment) |
Bleibt noch die Frage nach der physischen Verbindung. |
2 Draht Schraubklemme oder RJ45? |
Du hast den Huawei, Pylontech, NRF und CMT Kombi zu laufen bekommen auf einem Board? Chapeau!! Wie ist der hardware setup aus? Ist ein MCP2515 benötigt? Kannst du das Vorgehen zum nachbauen mal hier dokumentieren?
|
Sorry @gitisgreat2023 es war nur ein Test um die neue SPIPortManager Firmware Version die Skippermeister und AndreasBoehm Danach habe ich alles abgebaut. MC2515 (Joy-IT Version, sowie Standard). NUR ZWEI VON DREI (NRF24, CMT23000, MC2515) koennen laufen.
wenn sie eine PIN-Definition in der Konfig findet, ordnet sie eins von den (nur) zwei verfuegbaren SPI zu. Die aktuelle Test Firmware wird sogar erkennen, falls alle drei aktiviert sind und das korrekt behandeln ohne aufzuhaengen (siehe mein Boot Log). |
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns. |
There are bittersweet news regarding this PR/feature: I am going to revert these changes in favor of the upstream implementation of the SpiManager, which is superior to this SPIPortManager, as it allows to share one SPI host to serve multiple SPI devices. @AndreasBoehm is already aware and plans to help adapt the Huawei CAN implementation to use the new upstream SpiManager library. Thanks again to @AndreasBoehm for this effort, which was highly appreciated! |
backport 'SPIPortManager' from skippermeisters fork: skippermeister@a642c9d
Ongoing discussion: #1132 (comment)
fixes: #605
Tests:
- [ ] ESP32-C3 with NRF24 and CMT2300a- [ ] ESP32-C3 with NRF24 and Huawei CAN- [ ] ESP32-C3 with CMT2300a and Huawei CANSPI# to SPI ID and SPI_HOST mapping
ESP32
ESP32-S3
ESP32-C3