Jump to content
PLC Forum


Sign in to follow this  
OzneD

Microcontrollore Pic18F45K80

Recommended Posts

OzneD

Cari amici del forum sono nuovo e non sò se è corretto postare quì questa domanda, sto usando due schede elettroniche con microcontrollori PIC18F45K80 e stò cercando di trasmettere un DATA FRAME attraverso il MODULO ECAN in modalità "REQUESTS NORMAL MODE" da un microcontrollore all'altro, impostando l'ID del DATA FRAME da trasmettere (su un microcontrollore) uguale a quello del FILTRO associato al BUFFER IN RICEZIONE (sull'altro microcontrollore) la trasmissione avviene correttamente e l'ACKNOWLEDGE SLOT viene settato con un bit dominante "0", invece mettendo due ID diversi tra loro non si causa l'ACKNOWLEDGE ERROR come dice il protocollo bosch, premetto che il DATA FRAME che trasmetto quando imposto gli ID diversi non viene ricevuto da nessun buffer in ricezione su l'altra scheda e quindi stando a quanto dice il protocollo "Se nessun nodo ha ricevuto correttamente il frame si verifica un ACKNOWLEDGE ERROR e un error frame è generato e il messaggio (data frame) viene ripetuto, io controllando con l'oscilloscopio sulla connessione del CAN BUS ho notato che mettendo gli ID diversi il messaggio che invio non viene ripetuto non rispettando il protocollo ma se scollego il CAN BUS dalla scheda preposta a ricevere il messaggio viene ripetuto come dice il protocollo, SPERANDO CHE LA DESCRIZIONE DEL MIO PROBLEMA SIA STATA CHIARA ,SPERO CHE QUALCUNO MI POSSA AIUTARE A CAPIRE COME RIUSCIRE A FAR RIPETERE IL MESSAGGIO QUANDO NON VIENE RICEVUTO (cioè quando imposto gli ID diversi), RINGRAZIANDOVI ANTICIPATAMENTE ASPETTO UNA RISPOSTA.

Share this post


Link to post
Share on other sites

Livio Orsini

Hai aperto 2 discussioni sul medesimo argomento. Pratica vioetata dal regolamento perchè causa confusione e disguidi. Se invitato a non reiterare comportamenti contrari al regolamento.

Il regolamento lo hai accettato liberamente e dovresti averlo letto; se non lo hai fatto affrettati a farlo e leggi anche le FAQ.

Share this post


Link to post
Share on other sites
OzneD

SCUSATE NON SAPEVO IN QUALE SEZIONE DEL FORUM ANDAVA POSTATA

LA MIA DOMANDA. :(

Share this post


Link to post
Share on other sites
kappa47

Non ho capito molto bene il tuo problema, ma ti sottopongo alcune considerazioni:

1) in risposta ad un messaggio inviato si avra' un ACK se un nodo QUALUNQUE nella rete riceve il messaggio

(ACK indica che il msg e' corretto; non vuol dire che il messaggio inviato e' sato "raccolto" dal nodo interessato)

2) se hai ID e filtri corretti ti ritrovi il msg nel nodo destinatario (tramite interrupt o polling)

3) per informare il nodo mittente della avvenuta ricezione, il destinatario DEVE spedire un messaggio al mittente.

Buon lavoro

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...