From: Eric on
The CAN board of my hardware platform (xPC Target Kernel) shares the same interrupt (IRQ7) with the ethernet controller. Running the Simulink model, which transmits only one CAN message, causes a communication hang-up. The ISR cannot handle the interrupt anymore and I've to restart the xPC target.

What happens here? Are the interrupts coming from the ethernet controller the cause of the problem? There should only one transmit interrupt and one receive interrupt detected, because of the fact I sent only one message.

Details:
Communication host PC --> xPC target: ethernet
Matlab R2007b
CAN board (CAN port 1 - send, CAN port 2 - receive)
From: Gordon Weast on
Eric,

R2007b should handle shared interrupts fine. Something
unusual must be going on.

Are you using a PCI CAN board or the PC104 board? The
IRQ situation is a bit different between those two. Is
your model using the CAN interrupt?

I suggest you contact tech support where they will ask
you to provide a sample model that shows the problem.
I always ask for that since it might be a configuration
that we didn't hit during our testing. Trying to discover
that without a broken example can be difficult.

Gordon Weast
xPC Target Development
The MathWorks

Eric wrote:
> The CAN board of my hardware platform (xPC Target Kernel) shares the
> same interrupt (IRQ7) with the ethernet controller. Running the Simulink
> model, which transmits only one CAN message, causes a communication
> hang-up. The ISR cannot handle the interrupt anymore and I've to restart
> the xPC target.
>
> What happens here? Are the interrupts coming from the ethernet
> controller the cause of the problem? There should only one transmit
> interrupt and one receive interrupt detected, because of the fact I sent
> only one message.
>
> Details:
> Communication host PC --> xPC target: ethernet
> Matlab R2007b
> CAN board (CAN port 1 - send, CAN port 2 - receive)
From: Eric on
Hello Gordon,

Thanks for your help!

I'am using a PC104 CAN board which is not supported by Matlab. So I've to write my own driver to communicate with the board. Yes, my model is using CAN interrupts.

When I send a CAN message I do not see that the Transmission Complete Status bit is set in the status register (Tranmission Request bit is set). So it doesn't send anything and the communications hangs.

I will contact techn support asap.

Regards Eric

Gordon Weast <gweast(a)mathworks.com> wrote in message <hlebot$anf$1(a)fred.mathworks.com>...
> Eric,
>
> R2007b should handle shared interrupts fine. Something
> unusual must be going on.
>
> Are you using a PCI CAN board or the PC104 board? The
> IRQ situation is a bit different between those two. Is
> your model using the CAN interrupt?
>
> I suggest you contact tech support where they will ask
> you to provide a sample model that shows the problem.
> I always ask for that since it might be a configuration
> that we didn't hit during our testing. Trying to discover
> that without a broken example can be difficult.
>
> Gordon Weast
> xPC Target Development
> The MathWorks
>
> Eric wrote:
> > The CAN board of my hardware platform (xPC Target Kernel) shares the
> > same interrupt (IRQ7) with the ethernet controller. Running the Simulink
> > model, which transmits only one CAN message, causes a communication
> > hang-up. The ISR cannot handle the interrupt anymore and I've to restart
> > the xPC target.
> >
> > What happens here? Are the interrupts coming from the ethernet
> > controller the cause of the problem? There should only one transmit
> > interrupt and one receive interrupt detected, because of the fact I sent
> > only one message.
> >
> > Details:
> > Communication host PC --> xPC target: ethernet
> > Matlab R2007b
> > CAN board (CAN port 1 - send, CAN port 2 - receive)