/*
* spiInterface.h
*
* Created on: 10 Feb 2018
* Author: Mike
*/
#pragma once
#include "ch.h"
#include "hal.h"
#include "ssd1306_config.h"
// Peripherial Clock 84MHz SPI1 SPI1 SPI2/3
#define SPI_BaudRatePrescaler_2 ((uint16_t)0x0000) // 42 MHz 21 MHZ
#define SPI_BaudRatePrescaler_4 ((uint16_t)0x0008) // 21 MHz 10.5 MHz
#define SPI_BaudRatePrescaler_8 ((uint16_t)0x0010) // 10.5 MHz 5.25 MHz
#define SPI_BaudRatePrescaler_16 ((uint16_t)0x0018) // 5.25 MHz 2.626 MHz
#define SPI_BaudRatePrescaler_32 ((uint16_t)0x0020) // 2.626 MHz 1.3125 MHz
#define SPI_BaudRatePrescaler_64 ((uint16_t)0x0028) // 1.3125 MHz 656.25 KHz
#define SPI_BaudRatePrescaler_128 ((uint16_t)0x0030) // 656.25 KHz 328.125 KHz
#define SPI_BaudRatePrescaler_256 ((uint16_t)0x0038) // 328.125 KHz 164.06 KHz
#if !defined (SPI_CS_PIN) || !defined(SPI_CS_GPIO)
#error "Need to define SPI_CS_PIN and SPI_CS_GPIO"
#endif
#if !defined (SPI_CD_PIN) || !defined(SPI_CD_GPIO)
#error "Need to define SPI_CD_PIN and SPI_CD_GPIO"
#endif
#if !defined (SPI_RESET_PIN) || !defined(SPI_RESET_GPIO)
#error "Need to define SPI_RESET_PIN and SPI_RESET_GPIO"
#endif