|
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.