firmware  v0.1.2
Chromation Spectrometer Dev-Kit
Typedefs | Functions | Variables
UartSpi.h File Reference
#include <stdint.h>
#include "ReadWriteBits.h"

Go to the source code of this file.

Typedefs

typedef uint8_t volatile *const uspi_ptr
 
typedef uint16_t volatile *const uspi_ptr16
 
typedef uint8_t const uspi_pin
 
typedef uint8_t const uspi_bit
 

Functions

void RunSpiAt5Mhz (void)
 
void SetSckAsOutput (void)
 
void AdcConvIdleLow (void)
 
void SetAdcConvAsOutput (void)
 
void EnableAtmega328UsartInSpiMasterMode (void)
 
void UseSpiDataModeCpol1CPha1 (void)
 
void CfgSpiToTransferMsbFirst (void)
 
void GiveSpiControlOverMisoAndMosiPins (void)
 
void SpiMasterCfg (void)
 
void UartSpiInit (void)
 
void StartAdcConversion (void)
 
void StartAdcReadout (void)
 

Variables

uspi_ptr UartSpi_ddr
 
uspi_ptr UartSpi_port
 
uspi_ptr UartSpi_UCSR0A
 
uspi_ptr UartSpi_UCSR0B
 
uspi_ptr UartSpi_UCSR0C
 
uspi_ptr UartSpi_UDR0
 
uspi_ptr16 UartSpi_UBRR0
 
uspi_pin UartSpi_Miso
 
uspi_pin UartSpi_AdcConv
 
uspi_pin UartSpi_Sck
 
uspi_bit UartSpi_UMSEL00
 
uspi_bit UartSpi_UMSEL01
 
uspi_bit UartSpi_RXEN0
 
uspi_bit UartSpi_TXEN0
 
uspi_bit UartSpi_UCPOL0
 
uspi_bit UartSpi_UCPHA0
 
uspi_bit UartSpi_UDORD0
 
uspi_bit UartSpi_UDRE0
 
uspi_bit UartSpi_RXC0
 

Detailed Description

API

void UartSpiInit(void);
void StartAdcConversion(void);

Definition in file UartSpi.h.

Function Documentation

◆ CfgSpiToTransferMsbFirst()

void CfgSpiToTransferMsbFirst ( void  )
inline

Transfer MSB first

Definition at line 117 of file UartSpi.h.

◆ GiveSpiControlOverMisoAndMosiPins()

void GiveSpiControlOverMisoAndMosiPins ( void  )
inline

Override normal port operation for SPI MOSI/MISO:

  • enable the transmitter:
    • the UART Tx pin becomes the SPI MOSI
  • enable the receiver:
    • the UART Rx pin becomes the SPI MISO

Definition at line 127 of file UartSpi.h.

◆ RunSpiAt5Mhz()

void RunSpiAt5Mhz ( void  )
inline

Configure USART to clock ADC SCK at fosc/2 = 5MHz

  • fosc = 10MHz (10MHz external oscillator)
  • baudrate in bits per second = fosc/(2*(UBBR0+1))
  • set UBBR0=0 for baudrate = fosc/2

Definition at line 37 of file UartSpi.h.

◆ SetAdcConvAsOutput()

void SetAdcConvAsOutput ( void  )
inline

AdcConv is a general purpose i/o pin.

  • configure as an output
  • controls start of conversion
  • controls start of readout

Definition at line 63 of file UartSpi.h.

◆ SetSckAsOutput()

void SetSckAsOutput ( void  )
inline

Cfg XCK as an output. CPOL=1 makes the clock idle high.

Definition at line 50 of file UartSpi.h.

◆ UartSpiInit()

void UartSpiInit ( void  )
inline

UartSpiInit behavior:

  • clocks SPI bus at 5MHz
  • sets Sck as an output
  • sets AdcConv to idle low
  • sets AdcConv as an output
  • enables the UART in Master SPI Mode
  • uses SPI data mode CPOL 1 CPHA 1
  • cfgs SPI to transfer MSB first
  • gives SPI control over Miso and Mosi pin behavior

Definition at line 164 of file UartSpi.h.

◆ UseSpiDataModeCpol1CPha1()

void UseSpiDataModeCpol1CPha1 ( void  )
inline

Use SPI data mode: CPOL=1, CPHA=1

  • clock idles high
  • load data on falling clock edge
  • sample data on rising clock edge

Definition at line 96 of file UartSpi.h.