12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- //==============================================================================
- // Purpose: SPI Interface für das DSPI-Modul des MPC5646
- //
- // Created on: 20.04.2012 by IPE
- //
- // History
- // 20.04.2012 neu, T.Maurer
- //==============================================================================
- #ifndef __DSPI_H__
- #define __DSPI_H__
- // Globale Datentypen
- //DSPI_config_t
- //Konfiguration des DSPI-Moduls
- typedef struct {
- volatile struct DSPI_tag *p_Modul; //Adresse des Moduls
- enum {DSPI_Master,DSPI_Slave} MaSlv_Mode;
- uint8_t FrameSize; //Anzahl Bits
- enum {DSPI_ClassicFormat,DSPI_ModifiedFormat} TimingFormat;
- enum {DSPI_Baud15MHz,DSPI_Baud5MHz,DSPI_Baud2MHz} Baud_Setting; //nur MasterMode;
- uint8_t CStoSCK_Delay_Cycles; //nur MasterMode; Werte >15 müssen in DSPI_init() implementiert werden
- uint8_t AfterSCK_Delay_Cycles; //nur MasterMode;
- uint8_t DelayAfterTransfer_Cycles; //nur MasterMode;
- uint16_t Std_CS_Mask;
- enum{CS_Cont_ON, CS_Cont_OFF} CS_Cont;
- enum {DSPI0_PortA12,DSPI1_PortE4,DSPI2_PortC12,
- DSPI3_PortG2,DSPI4_PortK9,DSPI6_PortG14} Port; //Auswahl der Rx/Tx-Port-Pins für ein CAN-Modul
- } DSPI_config_t;
- extern const DSPI_config_t SPI_6_Config; //ISA
- extern int8_t DSPI_init(DSPI_config_t *Config);
- extern int8_t DSPI_check_and_read(DSPI_config_t *p_Config, uint32_t *data);
- extern int8_t DSPI_push(DSPI_config_t *const p_Config, uint16_t data, uint8_t isEOQ);
- extern int8_t DSPI_pop(DSPI_config_t *const p_Config, volatile uint16_t *const data);
- extern int8_t DSPI_Clear_RxFifo(DSPI_config_t *const p_Config);
- int8_t DSPI_init_Tx(DSPI_config_t *const p_Config);
- #endif /*ifndef*/
|