Tak to vypadá, že mě CAN na ESPčku pěkně vypekl. Několik hodin jsem se mořil s tím, proč mi nechodí žádné zprávy až jsem dospěl do stádia, které se v logických hrách nezývá "zkus všechno použít na všechno" 😀 Takže jsem zjistil (sláva logickým analyzátorům!), že když mám jedno ESPčko, tak vysílá, jakmile propojím dvě, tak na sběrnici ticho a způsobuje to TX pin. Jakmile ho odpojím na přijímací straně, zprávy chodí.
Mám prozatímní hypotézu, že je to tím, že:
1. protože je CAN multimaster, rozlišuje se tam ne logická nula a jednička, ale "recesivní" a "dominantní" stav. Recesivní znamená "nechávám sběrnici na pokoji" a dominantní znamená "stáhnu sběrnici do nuly".
2. STMka jsou udělaná tak, že u nich stačí RX a TX spojit a použít jeden drát ke spojení napřímo, bez transciveru. U ESPčka to nejspíš nejde asi proto, že ESPčko potřebuje nutně mít za pinem transceiver, protože v "recesivním" stavu nenechá pin napokoji, ale nastaví ho na 1. Čímž sběrnici efektivně totálně utlumí (navíc tím jde vysílaná nula přímo proti nastavené jedničce, což není úplně dobrý).
To je teda docela opruz. V praxi to znamená, že ESPčko nemůže fungovat jako převodník, jenom jako pasivní odposlouchávání sběrnice 🙁
Navíc CAN funguje tak, že se očekává, že alespoň jeden uzel na sběrnici příjem zprávy potvrdí. Kromě ESPčka teda na sběrnici musí být aspoň jeden uzel. No, takže jásání bylo předčasné 🙁 Transceivery dorazí z dálného východu až za dlouho (a ještě jsem, blbec, koupil pětivoltové 🙁 )
Mám prozatímní hypotézu, že je to tím, že:
1. protože je CAN multimaster, rozlišuje se tam ne logická nula a jednička, ale "recesivní" a "dominantní" stav. Recesivní znamená "nechávám sběrnici na pokoji" a dominantní znamená "stáhnu sběrnici do nuly".
2. STMka jsou udělaná tak, že u nich stačí RX a TX spojit a použít jeden drát ke spojení napřímo, bez transciveru. U ESPčka to nejspíš nejde asi proto, že ESPčko potřebuje nutně mít za pinem transceiver, protože v "recesivním" stavu nenechá pin napokoji, ale nastaví ho na 1. Čímž sběrnici efektivně totálně utlumí (navíc tím jde vysílaná nula přímo proti nastavené jedničce, což není úplně dobrý).
To je teda docela opruz. V praxi to znamená, že ESPčko nemůže fungovat jako převodník, jenom jako pasivní odposlouchávání sběrnice 🙁
Navíc CAN funguje tak, že se očekává, že alespoň jeden uzel na sběrnici příjem zprávy potvrdí. Kromě ESPčka teda na sběrnici musí být aspoň jeden uzel. No, takže jásání bylo předčasné 🙁 Transceivery dorazí z dálného východu až za dlouho (a ještě jsem, blbec, koupil pětivoltové 🙁 )
Miroslav Prýmek
Unknown parent • •Miroslav Prýmek
Unknown parent • •Miroslav Prýmek
Unknown parent • •Každopádně jsem někde na webu narazil na radu, kterou když jsem četl, tak jsem se studem málem propadl, že mě to nenapadlo: před TX pin stačí předřadit diodu! OMG! Pak může být pin nastavenej jak chce, nula na sběrnici projde, jednička neprojde. Jak říká klasik: "a přitom taková blbost"! Ale pro samý zkoumání a debugování jsem neměl čas se zastavit a zamyslet!
Miroslav Prýmek
in reply to Miroslav Prýmek • •Tak, a teď už si můžu vesele zprovoznit malou CAN sensorovou síť! Juchů!