DSPI.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //==============================================================================
  2. // Purpose: SPI Interface für das DSPI-Modul des MPC5646
  3. //
  4. // Created on: 20.04.2012 by IPE
  5. //
  6. // History
  7. // 20.04.2012 neu, T.Maurer
  8. //==============================================================================
  9. #ifndef __DSPI_H__
  10. #define __DSPI_H__
  11. // Globale Datentypen
  12. //DSPI_config_t
  13. //Konfiguration des DSPI-Moduls
  14. typedef struct {
  15. volatile struct DSPI_tag *p_Modul; //Adresse des Moduls
  16. enum {DSPI_Master,DSPI_Slave} MaSlv_Mode;
  17. uint8_t FrameSize; //Anzahl Bits
  18. enum {DSPI_ClassicFormat,DSPI_ModifiedFormat} TimingFormat;
  19. enum {DSPI_Baud15MHz,DSPI_Baud5MHz,DSPI_Baud2MHz} Baud_Setting; //nur MasterMode;
  20. uint8_t CStoSCK_Delay_Cycles; //nur MasterMode; Werte >15 müssen in DSPI_init() implementiert werden
  21. uint8_t AfterSCK_Delay_Cycles; //nur MasterMode;
  22. uint8_t DelayAfterTransfer_Cycles; //nur MasterMode;
  23. uint16_t Std_CS_Mask;
  24. enum{CS_Cont_ON, CS_Cont_OFF} CS_Cont;
  25. enum {DSPI0_PortA12,DSPI1_PortE4,DSPI2_PortC12,
  26. DSPI3_PortG2,DSPI4_PortK9,DSPI6_PortG14} Port; //Auswahl der Rx/Tx-Port-Pins für ein CAN-Modul
  27. } DSPI_config_t;
  28. extern const DSPI_config_t SPI_6_Config; //ISA
  29. extern int8_t DSPI_init(DSPI_config_t *Config);
  30. extern int8_t DSPI_check_and_read(DSPI_config_t *p_Config, uint32_t *data);
  31. extern int8_t DSPI_push(DSPI_config_t *const p_Config, uint16_t data, uint8_t isEOQ);
  32. extern int8_t DSPI_pop(DSPI_config_t *const p_Config, volatile uint16_t *const data);
  33. extern int8_t DSPI_Clear_RxFifo(DSPI_config_t *const p_Config);
  34. int8_t DSPI_init_Tx(DSPI_config_t *const p_Config);
  35. #endif /*ifndef*/