Je viens de me réinstaller un IDE. Ca a pris un temps fou, plus de 3 heures pour le DL et l'installation des modèles de cartes esp. Le cas échéant, il faut être patient, et laisser faire, même si on a le sentiment que c'est planté.
J'ai fait un premier test, avec juste un devkit V1, sans rien d'autre: pas de transmissions.
J'ai ajouté un bout de câble entre 4 et 5: on a alors bien des paquets reçus.
Dans les transceiver CAN, Tx est bouclé sur Rx. C'est donc mon bout de câble qui fait fonction de transceiver.
ESP32 SDK: v5.1.4-972-g632e0c2a9f-dirty
ESP32 Flash: 4 MB (external)
APB CLOCK: 80000000 Hz
Configure ESP32 CAN
Bit Rate prescaler: 2
Time Segment 1: 13
Time Segment 2: 6
RJW: 4
Triple Sampling: no
Actual bit rate: 1000000 bit/s
Exact bit rate ? yes
Distance 0 ppm
Sample point: 70%
Configuration OK!
Sent: 0 Receive: 0 STATUS 0xC RXERR 0 TXERR 0
Sent: 1 Receive: 1 STATUS 0xC RXERR 0 TXERR 0
Sent: 2 Receive: 2 STATUS 0xC RXERR 0 TXERR 0
Sent: 3 Receive: 3 STATUS 0xC RXERR 0 TXERR 0
Sent: 4 Receive: 4 STATUS 0xC RXERR 0 TXERR 0
Sent: 5 Receive: 5 STATUS 0xC RXERR 0 TXERR 0
Sent: 6 Receive: 6 STATUS 0xC RXERR 0 TXERR 0
Sans cette boucle, et sans non plus un transceiver, ça ne m'affichait que "Receive: 0".
Par moments, j'ai eu des erreurs, mais c'était lorsque j'ai commencé à prendre le devkit en main (pour des contacts électriques entre GPIO quelconques). Je doute que ces erreurs là aient un sens; je suppose que c'est ce qu'on obtiendrait avec un problème de câblage, un transceiver défectueux ou un débit CAN trop élevé pour le transceiver utilisé:
Sent: 17 Receive: 0 STATUS 0x30 RXERR 0 TXERR 0
Sent: 17 Receive: 0 STATUS 0x30 RXERR 0 TXERR 0
Sent: 17 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Sent: 18 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Sent: 19 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Sent: 20 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Sent: 21 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Sent: 22 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Sent: 23 Receive: 8 STATUS 0xD4 RXERR 0 TXERR 128
Configure ESP32 CAN
Bit Rate prescaler: 2
Time Segment 1: 13
Time Segment 2: 6
RJW: 4
Triple Sampling: no
Actual bit rate: 1000000 bit/s
Exact bit rate ? yes
Distance 0 ppm
Sample point: 70%
Configuration OK!
Sent: 0 Receive: 0 STATUS 0xC RXERR 36 TXERR 0
Sent: 1 Receive: 0 STATUS 0x6C RXERR 131 TXERR 55
Sent: 2 Receive: 0 STATUS 0x60 RXERR 131 TXERR 55
Sent: 3 Receive: 0 STATUS 0x60 RXERR 131 TXERR 55
Sent: 4 Receive: 0 STATUS 0x60 RXERR 131 TXERR 55
Sent: 5 Receive: 0 STATUS 0x60 RXERR 131 TXERR 55
Sent: 6 Receive: 0 STATUS 0x60 RXERR 131 TXERR 55
Sent: 7 Receive: 0 STATUS 0x60 RXERR 131 TXERR 55
Sans boucle (ni un transceiver ni un bout de câble), ça semble s'arrêter à 17 paquets Tx, sans afficher grand chose de clair. Peut-être un statut 0x30...
Avec une boucle, le statut est chez moi 0xC. C'est probablement ce statut qui pourrait nous renseigner sur l'état du port CAN.
Sent: 0 Receive: 0 STATUS 0xC RXERR 0 TXERR 0
Sent: 1 Receive: 1 STATUS 0xC RXERR 0 TXERR 0
Sent: 2 Receive: 2 STATUS 0xC RXERR 0 TXERR 0
Sent: 3 Receive: 3 STATUS 0xC RXERR 0 TXERR 0
...
Sent: 33 Receive: 33 STATUS 0xC RXERR 0 TXERR 0
Sent: 34 Receive: 34 STATUS 0xC RXERR 0 TXERR 0
Sent: 35 Receive: 35 STATUS 0xC RXERR 0 TXERR 0
Sent: 36 Receive: 36 STATUS 0xC RXERR 0 TXERR 0
Sent: 37 Receive: 37 STATUS 0xC RXERR 0 TXERR 0
Sent: 38 Receive: 38 STATUS 0xC RXERR 0 TXERR 0
Serial.print (" STATUS 0x") ;
Serial.print (TWAI_STATUS_REG, HEX) ;
Serial.print (" RXERR ") ;
Serial.print (TWAI_RX_ERR_CNT_REG) ;
Serial.print (" TXERR ") ;
Serial.println (TWAI_TX_ERR_CNT_REG) ;