Hallo, ich versuche gerade eine Verbindung zwischen einem dspic33fj128mc506 und einem pic24HJ64GP502 aufzubauen. Ales erstes habe ich das CAN-Modul des dspic konfiguriert und zum testen eine willkürliche nachricht auf dem Bus geschickt. Dann habe ich mit dem Oszi auf der Bus_Leitung nachgeschaut und habe ein gutes differenzielles Signal erhalten. Also funktioniert das Senden mit dem dspic schonmal. Nun habe ich die komplette CAN-Konfig-Funktion des dspic auf den pic24 1:1 übernomen, wenn ich mich nicht verlesen habe sollte das laut Datenblatt auch funktionieren. Lediglich das Pin-mapping habe ich auf dem pic24 hinzugefügt:
1 | //Peripherie den Pins zuweisen |
2 | // Unlock Registers |
3 | __builtin_write_OSCCONL(OSCCON & ~(1<<6)); |
4 | // Assign C1Rx To Pin RP12 |
5 | RPINR26bits.C1RXR = 12; |
6 | // Assign C1Tx To Pin RP13 |
7 | RPOR6bits.RP13R = 16; |
8 | // Lock Registers |
9 | __builtin_write_OSCCONL(OSCCON | (1<<6)); |
10 | |
11 | TRISBbits.TRISB12 = 1; //C1RX als Eingang definieren |
12 | TRISBbits.TRISB13 = 0; //C1TX als Ausgang definieren |
Nun habe ich vom pic24 aus was gesendet, aber ich erhalte direkt am Pin des pics nur ein Dauerhigh-Signal. Es kann eigentlich nur was beim Pin-mapping falsch sein, nur weis ich nicht was (Pic läuft, Pin-toggeln funktioniert). Mfg