Hi Ingo,

Update for you,

Received two 18F248 today. snatched half an hour to quickly try out, but no bus activity at all. getting the same results as for 18F4580 otherwise.

Also tried using your configuration ( modified to 16Mhz OSC)


FYI, here is my transmit code for 18F4580



define OSC 16

TRISB = %00000010 'Set portb.2 output (cantx) ,b.2 input (canrx) 18F248/4580
'************************************************* ***************
' Include "CanRxDeclarePic18.bas"
'************************************************* ***************
TXB0DLC = $00
TXB0D0 = $00
TXB0D1 = $00
TXB0D2 = $00
TXB0D3 = $00
TXB0D4 = $00
TXB0D5 = $00
TXB0D6 = $00
TXB0D7 = $00

'************************************************* ***************************
' Include "CanVarsPic18.bas"
'************************************************* ***************************

DataBytesTx VAR BYTE 'number of bytes to transmit from SPI / MCP2510
DataBytesTx = 0
CanDataTx VAR BYTE[8] '0 - 7 data bytes to send (xmit)
k var byte

for k = 0 to 7
CanDataTx[k] = 0
next


TREQ var bit
TREQ =0


CanStatusReg var byte
CanControlReg var byte
RxBuffer0Control var byte
ExtCanControl var byte
BaudRateGenControl1 var byte
BaudRateGenControl2 var byte
BaudRateGenControl3 var byte
CanIOControl var byte
PeripheralInterruptReg3 var byte
PeripheralInterruptEnable var byte
CnfgReg1 Var byte
'************************************************* ***************
' CanConfig
'************************************************* ***************

CANCON.7 = 1 'Request configuration mode (looped on CANSTAT)
CanStatusReg = CANSTAT

'Set Data Rate based on 16Mhz OSC See page 332
'125 kbs:
BRGCON1 = $07 'brp = 7(16 mhz), jump 1 TQ (SWJ): 8Tq = 1x10.6/8 = 125Kbs data rate
BRGCON2 = $90 'freely programmable , sample once, 3TQ seg1,propogation time 1Tq
BRGCON3 = $02 '3TQ seg2
BaudRateGenControl1 = BRGCON1
BaudRateGenControl2 = BRGCON2
BaudRateGenControl3 = BRGCON3

'CIOCON see page 314

CIOCON = $30 ' bit 5 set, CANtx drives vdd when recessive, bit 4 set,enable CAN capture
CanIOControl=CIOCON
TXB0SIDH = $10 'b7 - b0 = SID10- SID3
TXB0SIDL = $10 'b7 = SID2, b6 = SID1, b5 = SID0, b3=EXIDE = 0 for SID, 1 for EID



CANCON = $08 'request normal mode set tx buffer 0
CanControlReg = CANCON
CanStatusReg = CANSTAT



'************************************************* ***************


k=1

'------------------------------------------------------------------------------

' Program Loop Program Loop

'------------------------------------------------------------------------------


Main:
PeripheralInterruptEnable =PIE3
if k >=256 then k=0
'*********Transmit Data **************************



' CANCON = %00000000 'clear WIN bits
' CanControlReg = CANCON
' CANCON = %00001000 'select TXbuffer0 WIN bits b3 hi, b2-b1 low
CANCON.3=1 ' set win bit to txbuffer 0
CanControlReg = CANCON
CanStatusReg = CANSTAT
PeripheralInterruptReg3=PIR3

if TXB0CON.3 = 0 then 'last message is clear (bit 3 is TXREQ)

DataBytesTx = 4 ' experiment with changing DLC
TXB0DLC = DataBytesTx
CanDataTx[0] = K
CanDataTx[1] = K+1 ' each byte has a different value
CanDataTx[2] = K+2
CanDataTx[3] = K+3
CanDataTx[4] = K+4
CanDataTx[5] = K+5
CanDataTx[6] = K+6
CanDataTx[7] = K+7
k=k+1

TXB0CON = %00000011 'tx highest priority
TXB0D0 = CanDataTx[0]
TXB0D1 = CanDataTx[1]
TXB0D2 = CanDataTx[2]
TXB0D3 = CanDataTx[3]
TXB0D4 = CanDataTx[4]
TXB0D5 = CanDataTx[5]
TXB0D6 = CanDataTx[6]
TXB0D7 = CanDataTx[7]


TXB0CON = %00001011 'request a send highest priority
TREQ = TXB0CON.3



PeripheralInterruptReg3=PIR3
endif


CANCON.3=0 ' set win bit back to default rxbuffer 0
CanControlReg = CANCON
CanStatusReg = CANSTAT

'TXB0CON.3 = 0 'clear txreq - for test purposes only

gosub blink
Goto main
'************************************************* ******************************
'************************************************* ******************************
'************************************************* ******************************
'************************************************* ******************************
'************************************************* ******************************

End

'************************************************* ***************************




Blink:

high portb.0
pause 100
low portb.0
pause 150
return