Cascoda SDK
Cascoda SDK for building software to run with CA-821x transceivers
|
Platform abstraction layer definition for baremetal, expands upon Baremetal Core platform abstraction. More...
Classes | |
struct | gpio_input_args |
Arguments for the BSP_ModuleRegisterGPIOInput function. More... | |
struct | ModuleSpecialPins |
struct | RTCDateAndTime |
Interface Structure for RTC Date and Time. More... | |
Macros | |
#define | MSP_DEFAULT P_NA, P_NA, P_NA, P_NA |
Typedefs | |
typedef enum fsys_mhz | fsys_mhz |
typedef enum wakeup_reason | wakeup_reason |
typedef enum dpd_flag | dpd_flag |
typedef enum sysreset_mode | sysreset_mode |
typedef enum module_pin_dir | module_pin_dir |
Pin Type. More... | |
typedef enum module_pin_pullup | module_pin_pullup |
Pin Pull-Up. More... | |
typedef enum module_pin_debounce | module_pin_debounce |
Pin Debounce. More... | |
typedef enum module_pin_type | module_pin_type |
Pin is LED? More... | |
typedef enum module_pin_irq | module_pin_irq |
Pin Interrupt. More... | |
typedef void(* | dispatch_read_t) (struct ca821x_dev *pDeviceRef) |
Functions | |
void | BSP_EnableSerialIRQ (void) |
Enable the serial (usb/uart) irq. More... | |
void | BSP_DisableSerialIRQ (void) |
Disable the serial (usb/uart) irq. More... | |
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_Initialise (struct ca821x_dev *pDeviceRef) |
Initialise the system for a given ca821x_dev. More... | |
void | BSP_UseExternalClock (u8_t useExternalClock) |
Enable or disable the usage of the external clock from the CA821x. More... | |
struct ModuleSpecialPins | BSP_GetModuleSpecialPins (void) |
Get the struct of special pins for the platform. More... | |
ca_error | BSP_ModuleRegisterGPIOInput (struct gpio_input_args *args) |
Registers GPIO Input Functionality for Module Pin. More... | |
ca_error | BSP_ModuleRegisterGPIOOutput (u8_t mpin, module_pin_type isled) |
Registers GPIO Output Functionality for Module Pin. More... | |
ca_error | BSP_ModuleRegisterGPIOOutputOD (u8_t mpin, module_pin_type isled) |
Registers GPIO Open Drain Output Functionality for Module Pin. More... | |
ca_error | BSP_ModuleRegisterGPIOSharedInputOutputOD (struct gpio_input_args *args, module_pin_type isled) |
Registers GPIO Input AND Open Drain Output Functionality for Module Pin. More... | |
ca_error | BSP_ModuleDeregisterGPIOPin (u8_t mpin) |
Unregisters GPIO Functionality for Module Pin to Default Settings. More... | |
u8_t | BSP_ModuleIsGPIOPinRegistered (u8_t mpin) |
Checks if a Module Pin is already registered / used. More... | |
ca_error | BSP_ModuleSetGPIOPin (u8_t mpin, u8_t val) |
Sets Module Pin GPIO Output Value. More... | |
ca_error | BSP_ModuleSenseGPIOPin (u8_t mpin, u8_t *val) |
Senses GPIO Input Value of Module Pin. More... | |
ca_error | BSP_ModuleSenseGPIOPinOutput (u8_t mpin, u8_t *val) |
Senses GPIO Output Value of Module Pin. More... | |
ca_error | BSP_ModuleSetGPIOOutputPermanent (u8_t mpin) |
Sets Module Pin GPIO Output as permanently driven (don't tristate in Power-Down) More... | |
ca_error | BSP_ModuleReadVoltsPin (u8_t mpin, u32_t *val) |
Reads ADC Conversion Value on Module Pin. 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... | |
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... | |
wakeup_reason | BSP_GetWakeupReason (void) |
Reason MCU has woken up after reset. More... | |
void | BSP_WatchdogEnable (u32_t timeout_ms) |
Watchdog Enable. More... | |
void | BSP_WatchdogReset (void) |
Watchdog Reset and Restart. More... | |
void | BSP_WatchdogDisable (void) |
Watchdog Disable. More... | |
u8_t | BSP_IsWatchdogTriggered (void) |
Checks if the watchdog has been triggered, clears the warning if so. 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... | |
void | BSP_GetFlashInfo (struct ca_flash_info *aFlashInfoOut) |
Get the flashinfo struct for the current platform. More... | |
ca_error | BSP_FlashWriteInitial (u32_t startaddr, void *data, u32_t datasize) |
Writes Dataflash Memory, relies on Memory erased. More... | |
ca_error | BSP_FlashErase (u32_t startaddr) |
Erases a Dataflash Memory page (All words in page set to 0xFFFFFFFF) More... | |
ca_error | BSP_FlashRead (u32_t startaddr, u32_t *data, u32_t datasize) |
Reads Dataflash Memory. More... | |
void | BSP_FlashLock (void) |
Prevent ICP access to Flash. More... | |
ca_error | BSP_FlashCheck (u32_t startaddr, u32_t checklen, u32_t crc32) |
Check that a given range of flash matches the provided CRC32 checksum. More... | |
void | BSP_RTCInitialise (void) |
Initialises RTC. More... | |
ca_error | BSP_RTCSetAlarmSeconds (u32_t seconds) |
Sets RTC Alarm in seconds from current time. More... | |
void | BSP_RTCDisableAlarm (void) |
Disables RTC Alarm. More... | |
ca_error | BSP_RTCSetDateAndTime (struct RTCDateAndTime dateandtime) |
Sets RTC Date+Time. More... | |
void | BSP_RTCGetDateAndTime (struct RTCDateAndTime *dateandtime) |
Gets RTC Date+Time. More... | |
void | BSP_RTCConvertSecondsToDateAndTime (i64_t seconds, struct RTCDateAndTime *dateandtime) |
Converts Unix Time seconds to RTC Date+Time. More... | |
i64_t | BSP_RTCConvertDateAndTimeToSeconds (const struct RTCDateAndTime *dateandtime) |
Converts RTC Date+Time to Unix Time seconds. More... | |
void | BSP_RTCRegisterCallback (int(*callback)(void)) |
Registers RTC IRQ function callback. More... | |
Platform abstraction layer definition for baremetal, expands upon Baremetal Core platform abstraction.
typedef void(* dispatch_read_t) (struct ca821x_dev *pDeviceRef) |
typedef enum module_pin_debounce module_pin_debounce |
Pin Debounce.
typedef enum module_pin_dir module_pin_dir |
Pin Type.
typedef enum module_pin_irq module_pin_irq |
Pin Interrupt.
typedef enum module_pin_pullup module_pin_pullup |
Pin Pull-Up.
typedef enum module_pin_type module_pin_type |
Pin is LED?
typedef enum sysreset_mode sysreset_mode |
typedef enum wakeup_reason wakeup_reason |
enum dpd_flag |
enum fsys_mhz |
enum module_pin_debounce |
enum module_pin_dir |
enum module_pin_irq |
enum module_pin_led_set |
enum module_pin_pullup |
enum module_pin_type |
enum sysreset_mode |
enum wakeup_reason |
u32_t BSP_ADCGetVolts | ( | void | ) |
Measure and Read Battery Volts Value from ADC.
void BSP_DisableSerialIRQ | ( | void | ) |
Disable the serial (usb/uart) irq.
void BSP_DisableUSB | ( | void | ) |
Disable the USB.
void BSP_EnableSerialIRQ | ( | void | ) |
Enable the serial (usb/uart) irq.
void BSP_EnableUSB | ( | void | ) |
Enable the USB if connected.
- | 0 if successfully enabled, -1 if enable not possible (eg. not connected) |
Check that a given range of flash matches the provided CRC32 checksum.
startaddr | The start address to check (must be page-aligned) |
checklen | The number of bytes to check (must be page-aligned) |
crc32 | The CRC32 checksum to verify against |
CA_ERROR_SUCCESS | CRC32 matches the data in flash |
CA_ERROR_INVALID_ARGS | Invalid arguments/flash range |
CA_ERROR_FAIL | CRC32 value does not match the data in flash range |
Erases a Dataflash Memory page (All words in page set to 0xFFFFFFFF)
startaddr is absolute, see the dataFlashBaseAddr of the FlashInfo struct for correct offset. Using any address in a given page will erase that entire page.
startaddr | - byte address (divisible by 4 (word)) |
CA_ERROR_SUCCESS | Flash erased successfully |
CA_ERROR_INVALID_ARGS | Invalid arguments/flash range |
void BSP_FlashLock | ( | void | ) |
Prevent ICP access to Flash.
After calling this function & resetting the microcontroller, reads to APROM & LDROM region using the ICP programming interface will fail.
The lock can only be undone by performing a mass erase of the microcontroller.
Reads Dataflash Memory.
startaddr is absolute, see the dataFlashBaseAddr of the FlashInfo struct for correct offset.
startaddr | - byte address (divisible by 4 (word)) |
data | - pointer to data (words) |
datasize | - size of data (in words) |
CA_ERROR_SUCCESS | Flash read into buffer successfully |
CA_ERROR_INVALID_ARGS | Invalid arguments/flash range |
Writes Dataflash Memory, relies on Memory erased.
startaddr is absolute, see the dataFlashBaseAddr of the FlashInfo struct for correct offset.
startaddr | - byte address (divisible by 4 (word)) |
data | - pointer to data |
datasize | - size of data (in bytes) |
CA_ERROR_SUCCESS | Flash erased successfully |
CA_ERROR_INVALID_ARGS | Invalid arguments/flash range |
u8_t BSP_GetChargeStat | ( | void | ) |
Get Microchip MCP73831 Charge Status.
void BSP_GetFlashInfo | ( | struct ca_flash_info * | aFlashInfoOut | ) |
Get the flashinfo struct for the current platform.
aFlashInfoOut | Pointer to struct to fill with flashinfo |
struct ModuleSpecialPins BSP_GetModuleSpecialPins | ( | void | ) |
Get the struct of special pins for the platform.
const char* BSP_GetPlatString | ( | void | ) |
Get a string that describes this device.
fsys_mhz BSP_GetSystemFrequency | ( | void | ) |
Returns the system frequency.
system | frequency [MHz], enum type fsys_mhz |
i32_t BSP_GetTemperature | ( | void | ) |
Measure and Read Temperature Value.
u64_t BSP_GetUniqueId | ( | void | ) |
Get a 64-bit ID that is unique to this device.
u8_t BSP_GetVBUSConnected | ( | void | ) |
Get USB VBUS status (connected/not connected)
wakeup_reason BSP_GetWakeupReason | ( | void | ) |
Reason MCU has woken up after reset.
void BSP_Initialise | ( | struct ca821x_dev * | pDeviceRef | ) |
Initialise the system for a given ca821x_dev.
u8_t BSP_IsUSBPresent | ( | void | ) |
Is the USB connected?
returns | 1 if connected, 0 if disconnected |
u8_t BSP_IsWatchdogTriggered | ( | void | ) |
Checks if the watchdog has been triggered, clears the warning if so.
boolean,1 | triggered, 0: Not triggered |
Unregisters GPIO Functionality for Module Pin to Default Settings.
mpin | - module pin number |
Checks if a Module Pin is already registered / used.
mpin | - module pin number |
Reads ADC Conversion Value on Module Pin.
Pins must NOT be registered if used with this function.
mpin | - module pin |
val | - 32-bit conversion value (12-bit resolution ADC: 0-4095) |
ca_error BSP_ModuleRegisterGPIOInput | ( | struct gpio_input_args * | args | ) |
Registers GPIO Input Functionality for Module Pin.
args | Arguments, see gpio_input_args |
ca_error BSP_ModuleRegisterGPIOOutput | ( | u8_t | mpin, |
module_pin_type | isled | ||
) |
Registers GPIO Output Functionality for Module Pin.
mpin | - module pin number |
isled | - pin is attached to led (Used to prevent power down leakage) |
ca_error BSP_ModuleRegisterGPIOOutputOD | ( | u8_t | mpin, |
module_pin_type | isled | ||
) |
Registers GPIO Open Drain Output Functionality for Module Pin.
mpin | - module pin number |
isled | - pin is attached to led (Used to prevent power down leakage) |
ca_error BSP_ModuleRegisterGPIOSharedInputOutputOD | ( | struct gpio_input_args * | args, |
module_pin_type | isled | ||
) |
Registers GPIO Input AND Open Drain Output Functionality for Module Pin.
args | - gpio input args |
isled | - pin is attached to led (Used to prevent power down leakage) |
Senses GPIO Input Value of Module Pin.
Input pins must be registered before they can be used. See BSP_ModuleRegisterGPIOInput().
mpin | - module pin |
val | - value read |
Senses GPIO Output Value of Module Pin.
Output pins must be registered before they can be used. See BSP_ModuleRegisterGPIOOutput().
mpin | - module pin |
val | - value read |
Sets Module Pin GPIO Output as permanently driven (don't tristate in Power-Down)
Input pins must be registered before they can be used. See BSP_ModuleRegisterGPIOOutput().
mpin | - module pin |
Sets Module Pin GPIO Output Value.
Output pins must be registered before they can be used. See BSP_ModuleRegisterGPIOOutput().
mpin | - module pin |
val | - output value |
Set up wake on timer/IRQ, Power down MCU and return on wakeup.
sleeptime_ms | - sleep time [milliseconds] |
use_timer0 | - if set to 1, system wake-up by mcu (timer0 or gpio); if set to 0, system wake-up by radio sleep timer. |
dpd | - flag if to enter deep-power-down without data retention, and whether wakeup pin is enabled |
i64_t BSP_RTCConvertDateAndTimeToSeconds | ( | const struct RTCDateAndTime * | dateandtime | ) |
Converts RTC Date+Time to Unix Time seconds.
dateandtime | - RTCDateAndTime structure |
void BSP_RTCConvertSecondsToDateAndTime | ( | i64_t | seconds, |
struct RTCDateAndTime * | dateandtime | ||
) |
Converts Unix Time seconds to RTC Date+Time.
seconds | - Unix time seconds |
dateandtime | - pointer to RTCDateAndTime structure |
void BSP_RTCDisableAlarm | ( | void | ) |
Disables RTC Alarm.
void BSP_RTCGetDateAndTime | ( | struct RTCDateAndTime * | dateandtime | ) |
void BSP_RTCInitialise | ( | void | ) |
Initialises RTC.
Initialises RTC.
void BSP_RTCRegisterCallback | ( | int(*)(void) | callback | ) |
Registers RTC IRQ function callback.
callback | - pointer to ISR for input |
Sets RTC Alarm in seconds from current time.
seconds | - seconds to be added to current time |
ca_error BSP_RTCSetDateAndTime | ( | struct RTCDateAndTime | dateandtime | ) |
ca_error BSP_SetBootMode | ( | sysreset_mode | bootMode | ) |
Set the default boot mode for the device.
bootMode | The default mode to boot into |
Here we set bit 7 (BS) of CONFIG0 to set the default boot source of the chip. CONFIG0 is nonvolatile, but BS can be overridden by FMC_ISPCTL_BS when software reboot takes place.
void BSP_SetPowerDown | ( | void | ) |
Set flag that system has started power-down sequence.
re-configures system clock frequency and comms interface
fsys | - system frequency [MHz], enum type fsys_mhz |
enable_comms | - boolean, 1: comms interface enabled 0: disabled |
void BSP_SystemReset | ( | sysreset_mode | resetMode | ) |
**OPTIONAL Function Declarations for cascoda_bsp_*.c
(make stubs & return 0 if unused)
Reset the CPU using a soft-reset.
resetMode | The mode of reset to use |
void BSP_UseExternalClock | ( | u8_t | useExternalClock | ) |
Enable or disable the usage of the external clock from the CA821x.
useExternalClock | - (0: Use internal clock) (1: Use the clock from CA821x) |
void BSP_WatchdogDisable | ( | void | ) |
Watchdog Disable.
void BSP_WatchdogEnable | ( | u32_t | timeout_ms | ) |
Watchdog Enable.
timeout_ms | - timeout in milliseconds |
void BSP_WatchdogReset | ( | void | ) |
Watchdog Reset and Restart.