Cascoda SDK
Cascoda SDK for building software to run with CA-821x transceivers
cascoda_bsp_chili.c File Reference
#include <stdio.h>
#include "cascoda-util/cascoda_hash.h"
#include "Nano100Series.h"
#include "adc.h"
#include "gpio.h"
#include "spi.h"
#include "sys.h"
#include "timer.h"
#include "uart.h"
#include "usbd.h"
#include "cascoda-bm/cascoda_dispatch.h"
#include "cascoda-bm/cascoda_evbme.h"
#include "cascoda-bm/cascoda_interface.h"
#include "cascoda-bm/cascoda_spi.h"
#include "cascoda-bm/cascoda_types.h"
#include "cascoda-util/cascoda_time.h"
#include "ca821x_api.h"
#include "cascoda_chili.h"
#include "cascoda_chili_gpio.h"
Include dependency graph for cascoda_bsp_chili.c:

Macros

#define MAX(x, y)   ((x) > (y) ? (x) : (y))
 

Functions

void BSP_WaitUs (u32_t us)
 Wait for specified Time in Microseconds (max. More...
 
void BSP_ResetRF (u8_t ms)
 Reset CAX RF Chip. More...
 
u8_t BSP_SenseRFIRQ (void)
 Sense whether SPI IRQ is high or low. More...
 
void BSP_DisableRFIRQ ()
 Inhibit SPI IRQ, suppresses interrupt but still latches it. More...
 
void BSP_EnableRFIRQ ()
 Allow SPI IRQ, re-enabling interrupt after BSP_DisableRFIRQ() More...
 
void BSP_SetRFSSBHigh (void)
 Put SPI Select (SSB) Pin high. More...
 
void BSP_SetRFSSBLow (void)
 Put SPI Select (SSB) Pin low. More...
 
void BSP_EnableSerialIRQ (void)
 Enable the serial (usb/uart) irq. More...
 
void BSP_DisableSerialIRQ (void)
 Disable the serial (usb/uart) irq. More...
 
u64_t BSP_GetUniqueId (void)
 Get a 64-bit ID that is unique to this device. More...
 
const char * BSP_GetPlatString (void)
 Get a string that describes this device. More...
 
u8_t BSP_GetChargeStat (void)
 Get Microchip MCP73831 Charge Status. More...
 
u8_t BSP_GetVBUSConnected (void)
 Get USB VBUS status (connected/not connected) More...
 
i32_t BSP_GetTemperature (void)
 Measure and Read Temperature Value. More...
 
u32_t BSP_ADCGetVolts (void)
 Measure and Read Battery Volts Value from ADC. More...
 
void BSP_SPIInit (void)
 Initialise GPIO and SPI Pins for Comms with CA-821X. More...
 
void BSP_SPIExchange (uint8_t *RxBuf, const uint8_t *TxBuf, uint8_t RxLen, uint8_t TxLen)
 
void BSP_PowerDown (u32_t sleeptime_ms, u8_t use_timer0, dpd_flag dpd)
 Set up wake on timer/IRQ, Power down MCU and return on wakeup. More...
 
void BSP_SetPowerDown (void)
 Set flag that system has started power-down sequence. More...
 
void BSP_SetSPIMOSIOutput (void)
 Connect MOSI port to SPI MOSI and disable pull-up. More...
 
void BSP_SetSPIMOSITristate (void)
 Disconnect MOSI port from SPI MOSI and put to tristate with pull-up. More...
 
wakeup_reason BSP_GetWakeupReason (void)
 Reason MCU has woken up after reset. More...
 
void BSP_UseExternalClock (u8_t useExternalClock)
 Enable or disable the usage of the external clock from the CA821x. More...
 
void BSP_SystemReset (sysreset_mode resetMode)
 **OPTIONAL Function Declarations for cascoda_bsp_*.c
More...
 
ca_error BSP_SetBootMode (sysreset_mode bootMode)
 Set the default boot mode for the device. More...
 
void BSP_Waiting (void)
 This function will be called repeatedly when the Baremetal drivers are blocking & waiting (eg. More...
 
void BSP_Initialise (struct ca821x_dev *pDeviceRef)
 Initialise the system for a given ca821x_dev. More...
 
void BSP_WatchdogEnable (u32_t timeout_ms)
 Watchdog Enable. More...
 
void BSP_WatchdogReset (void)
 Watchdog Reset and Restart. More...
 
u8_t BSP_IsWatchdogTriggered (void)
 Checks if the watchdog has been triggered, clears the warning if so. More...
 
void BSP_WatchdogDisable (void)
 Watchdog Disable. More...
 
void BSP_EnableUSB (void)
 Enable the USB if connected. More...
 
void BSP_DisableUSB (void)
 Disable the USB. More...
 
u8_t BSP_IsUSBPresent (void)
 Is the USB connected? More...
 
fsys_mhz BSP_GetSystemFrequency (void)
 Returns the system frequency. More...
 
void BSP_SystemConfig (fsys_mhz fsys, u8_t enable_comms)
 re-configures system clock frequency and comms interface More...
 
bool BSP_IsInsideInterrupt (void)
 Is the code running in an interrupt context? More...
 
void BSP_FlashLock (void)
 Prevent ICP access to Flash. More...
 

Variables

volatile u8_t WDTimeout = 0
 
volatile u8_t USBPresent = 1
 
volatile u8_t UseExternalClock = 0
 
volatile u8_t asleep = 0
 
struct device_link device_list [NUM_DEVICES]
 

Macro Definition Documentation

◆ MAX

#define MAX (   x,
 
)    ((x) > (y) ? (x) : (y))

Function Documentation

◆ BSP_SPIExchange()

void BSP_SPIExchange ( uint8_t *  RxBuf,
const uint8_t *  TxBuf,
uint8_t  RxLen,
uint8_t  TxLen 
)

Variable Documentation

◆ asleep

volatile u8_t asleep = 0

◆ device_list

struct device_link device_list[NUM_DEVICES]

◆ USBPresent

volatile u8_t USBPresent = 1

◆ UseExternalClock

volatile u8_t UseExternalClock = 0

◆ WDTimeout

volatile u8_t WDTimeout = 0