This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

CAN: some questions about how T89C51CC01 does it

Maybe some1 can help with next questions:

- are dominant bits produced with zeros? For example, if CANIDTx register contain 11110000 so does CAN transmit r-r-r-r-d-d-d-d bits (r=recessive, d=dominant)? Here we connect CAN RX/TX directly to 82С250 chip.

- which order of transmitted bits? Is it next: bit 7 of CANIDT1 ... bit 0 of CANIDT1 ... bit 3 of CANIDT4 (with service bits inside, ofcoz)?

- is it necessary to set CANIDMx registers for transmit message objects? Why?

- does CAN controller of T89C51CC01 retransmit frames if it detects BERR (Bit error)? And AERR (Acknowledgement error)? Or does it set corresponded bit only and it is my task to retransmit it again?

- What is difference between General Errors (bits of CANGIT register) and Message Object Errors (bits of CANSTCH register)?

- does CANIT bit work only if CAN interrupts are allowed by set ECAN set?

Thanks you, I have even more questions next time (=
Good days!

Parents
  • Thank you, Rob!

    Your answer helps about re-transmission. Actually, it should be not 255 times but 16 only (128 / 8).

    As about other. The reason why programmer should know about how it works physical is the original Bosch CAN specification which says about Data Frame:

    "IDENTIFIER. <skip> The 7 most significant bits must not be all recessive". This rule was discarded late by ISO 11898. But who knows which device may be connected to? So for following the standard you should know:
    - the order which bits are transmitted with;
    - either 0 or 1 does produce recessive bits.
    Otherwise there is a chance to break rules of specification. Anyway, I have already solved this problem, so all is okay.

    Good days!

Reply
  • Thank you, Rob!

    Your answer helps about re-transmission. Actually, it should be not 255 times but 16 only (128 / 8).

    As about other. The reason why programmer should know about how it works physical is the original Bosch CAN specification which says about Data Frame:

    "IDENTIFIER. <skip> The 7 most significant bits must not be all recessive". This rule was discarded late by ISO 11898. But who knows which device may be connected to? So for following the standard you should know:
    - the order which bits are transmitted with;
    - either 0 or 1 does produce recessive bits.
    Otherwise there is a chance to break rules of specification. Anyway, I have already solved this problem, so all is okay.

    Good days!

Children
No data