CROSS Technical Documentation User Manual and Technical Doc.
INFN Milano Bicocca
Loading...
Searching...
No Matches

◆ CAN_Inizialize()

void CAN_Inizialize ( void  )

The CAN initialization function.

Returns
No parameters
433void CAN_Inizialize(void)
434{
435 uint32_t test_addr;
436 indirizzo_CAN_della_scheda= lettura_indirizzi_CAN(); //Leggiamo l'indirizzo del CAN dagli interruttori
437
438 EPROM_lettura_M24C32_64(0,I2C_postmainboard, Canale_EPROM_postmainboard_down, Memory_postmainboard_CAN_from_hw_switch_1_from_EPROM_0 <<2 , (uint8_t *)&test_addr);
439 if (test_addr ==0) EPROM_lettura_M24C32_64(0,I2C_postmainboard, Canale_EPROM_postmainboard_down, Memory_postmainboard_address_CAN_own_filter <<2 , (uint8_t *)&indirizzo_CAN_della_scheda);
440// LED_accendi_spegni(LED_GREEN, accendi);
441// LED_accendi_spegni(LED_RED, spegni);
442
443 status = CANdrv ->PowerControl(ARM_POWER_OFF); //AL risveglio serve per resettare tutti i registri, altrimenti
444 status = CANdrv -> Uninitialize();
445 //gli interrupt non li configura e bisogna farlo a mano.
447 status = CANdrv->PowerControl(ARM_POWER_FULL); // Viene accesa la periferica CAN
448 status = CANdrv->SetMode(ARM_CAN_MODE_INITIALIZATION); // Viene attivata la modalit\'a inizializzazione
449
450 // Vengono impostati i valori per il BitRate
451 status = CANdrv->SetBitrate (ARM_CAN_BITRATE_NOMINAL,
452 CAN_speed,
453 ARM_CAN_BIT_PROP_SEG(5U) |
454 ARM_CAN_BIT_PHASE_SEG1(1U) |
455 ARM_CAN_BIT_PHASE_SEG2(1U) |
456 ARM_CAN_BIT_SJW(1U));
457 // Viene impostato il filtro per ricevere i messaggi con ID esteso 0x12345678 per ricevere l'oggetto
458
459 LPC_CANAF->ENDofTable =0; //Resettiamo la tabella dei filtri: se c'e' un semplice reset sw rimane quella precedente e si aggiungono
460 LPC_CANAF->EFF_GRP_sa=0;
461
462 status = CANdrv->ObjectSetFilter(rx_obj_idx, ARM_CAN_FILTER_ID_EXACT_ADD, ARM_CAN_EXTENDED_ID(indirizzo_CAN_della_scheda), 0U);
463 status = CANdrv->ObjectSetFilter(rx_obj_idx, ARM_CAN_FILTER_ID_EXACT_ADD, ARM_CAN_EXTENDED_ID(indirizzo_generico_CAN), 0U);
464
465
466 status = CANdrv->ObjectConfigure(tx_obj_idx, ARM_CAN_OBJ_TX); // Viene configurata la trasmissione
467 status = CANdrv->ObjectConfigure(rx_obj_idx, ARM_CAN_OBJ_RX); // Viene configurata la ricezione
468 status = CANdrv->SetMode (ARM_CAN_MODE_NORMAL); // Viene attivata la modalit\'a normale
469}
void CAN_SignalUnitEvent(uint32_t event)
After that CAN aneded operation eand the interrupt is generated this signal function is called which ...
Definition: Can.c:375
unsigned char lettura_indirizzi_CAN(void)
The CAN bus address.
Definition: Can.c:346
uint32_t tx_obj_idx
This is the variable which resembles the flags from the communication.
Definition: Can.c:323
unsigned int indirizzo_CAN_della_scheda
Per ora lo assegnamo cos\i l'indirizzo della scheda.
Definition: Can.c:335
void CAN_SignalObjectEvent(uint32_t obj_idx, uint32_t event)
After that CAN aneded operation eand the interrupt is generated this object function is called which ...
Definition: Can.c:388
void CAN_Inizialize(void)
The CAN initialization function.
Definition: Can.c:433
ARM_DRIVER_CAN * CANdrv
Definition: Can.c:333
#define indirizzo_generico_CAN
snippetlineno Can.h var_indirizzo_generico_CAN
Definition: Can.h:13
void EPROM_lettura_M24C32_64(uint8_t scheda_su_scheda_giu_, uint8_t mainboard_postmainboard, uint8_t canale, short indirizzo_memoria, uint8_t *dati_letti)
Read from preamplifier and on-board flashes.
@ Memory_postmainboard_address_CAN_own_filter
This is the filter of the board.
@ Memory_postmainboard_CAN_from_hw_switch_1_from_EPROM_0
CAN bu from memory or from switches on board

Definition at line 433 of file Can.c.

References CAN_SignalObjectEvent(), CAN_SignalUnitEvent(), CANdrv, EPROM_lettura_M24C32_64(), indirizzo_CAN_della_scheda, indirizzo_generico_CAN, lettura_indirizzi_CAN(), Memory_postmainboard_address_CAN_own_filter, Memory_postmainboard_CAN_from_hw_switch_1_from_EPROM_0, and tx_obj_idx.

Referenced by CANActivity_IRQHandler_mio(), instr_inizializza_tutto_da_zero_function(), and instr_periferal_reset_function().