La libreria can per pic Laurtec "CANlib.h" e' stata creata per il C18 quindi non direttamente funzionante sul C della hi-tech questo perche' alcune definizioni per le chiamate alle SFR hanno diverse denominazioni.
Ho dovuto modificare la libreria per adeguarla a funzionare anche sul C hi-tech, senza modificarne la funzionalita' ma solo rinominando i nomi delle definizioni e le funzioni sono rimaste identiche.
Ho solo riscontrato alcuni "problemi" nel segnale e volevo una tua conferma.
Usando un PIC 18F4580 con una frequenza da 8 mhz senza prescaler (prova eseguita sia con clock interno da 8 mhz sia con un quarzo esterno sempre da 8Mhz),
scegliendo di usare la frequenza minima di 125Kb/s e 16 Quanti Temporali (quindi un Tq di 0,5 uS come nel tuo esempio) ho dovuto impostare il BRP a 1.
CANInitialize (2,7,6,1,1,
CAN_CONFIG_LINE_FILTER_OFF &
CAN_CONFIG_SAMPLE_ONCE &
CAN_CONFIG_ALL_VALID_MSG &
CAN_CONFIG_DBL_BUFFER_ON);
Bene, come calcolo teorico e' ok , ma in pratica tramite un analizzatore di segnali un USBee SX ho notato che il Tbit varia da 9,083 uS a 9,167 uS invece che di 8 uS , differenza di 2 Tq circa che posso correggere manualmente con i phaseseg1 e 2 nel CANInitialize,
e' possibile che la variazione sia causata dal il mio analizzatore da PC,
ma ho notato che c'e' anche una differenza tra il Tbit a livello alto circa 9 uS e il Tbit a livello basso 9,85 uS e per questo volevo una tua conferma, anche se ho capito che il Tbit da prendere in considerazione quando il segnale e' a liv alto.
File allegato:
Nome del file:
CANlib.zip
Dimensione del file:5 KB