TI BLE-Stack for Bluetooth API Documentation  3.03.08.00
Modules | Files | Macros
TRNG driver

TRNG driver implementation for a CC26XX device. More...

Modules

 TRNG_STATUS
 

Files

file  TRNGCC26XX.h
 TRNG driver implementation for a CC26XX device.
 

Macros

#define TRNGCC26XX_CLOCKS_PER_SAMPLES_MAX   15
 
#define TRNGCC26XX_MAX_SAMPLES_MAX   16777216
 
#define TRNGCC26XX_MAX_SAMPLES_MIN   256
 
#define TRNGCC26XX_MIN_SAMPLES_MAX   16384
 
#define TRNGCC26XX_MIN_SAMPLES_MIN   64
 

Detailed Description

TRNG driver implementation for a CC26XX device.

============================================================================

Driver Include

The TRNG header file should be included in an application as follows:

#include <ti/drivers/trng/TRNGCC26XX.h>

Overview

The TRNGCC26XX driver provides reentrant access to the TRNG module within the CC26XX. Reentrant access is controlled by creating a global critical section when requesting a random number. This critical section disables all Hwi's from running.

General Behavior

Initialing the TRNGCC26XX Driver

Opening the TRNGCC26XX Driver

// Open the driver
TRNGCC26XX_open(Board_TRNG);

Initializing client parameters

TRNGCC26XX_Params trngParams;
// Initialize parameters.
// Optionally modify trngParams
...

Validating client parameters

TRNGCC26XX_Params trngParams;
// Initialize parameters.
// Set client parameters.
trngParams.minSamplesPerCycle = 256;
trngParams.maxSamplesPerCycle = 256;
trngParams.clocksPerSample = 1;
// Validate parameters.
{
// Parameters are valid.
}

Generating a random number

TRNGCC26XX_Params trngParams;
uint8_t trngStatusFlag;
uint32_t trngNum1;
uint32_t trngNum2;
// Init driver.
// Open TRNG peripheral.
TRNGCC26XX_open(Board_TRNG);
// Initialize parameters.
// Generate a random number. Use optional status flag.
trngNum1 = TRNGCC26XX_getNumber(&trngParams, &trngStatusFlag);
// Check if status was okay
if (trngStatusFlag == TRNGCC26XX_STATUS_SUCCESS)
{
// Random number was generated successfully
}
// Generate a second random number using the default values and no
// status flag.
trngNum2 = TRNGCC26XX_getNumber(NULL, NULL);

Supported transaction modes

Error handling

If an error occurs during a call to TRNGCC26XX_getNumber, the error status will be set into the status flag and the returned random number shall be 0. passing the status flag is optional.

Supported Functions

API function Description
TRNGCC26XX_open() Open driver (stub)
TRNGCC26XX_close() Close driver (stub)
TRNGCC26XX_Params_init() Initialize parameters for random number generation
TRNGCC26XX_init() Generates a random number
TRNGCC26XX_isParamValid Validate client configuration parameters

Macro Definition Documentation

§ TRNGCC26XX_CLOCKS_PER_SAMPLES_MAX

#define TRNGCC26XX_CLOCKS_PER_SAMPLES_MAX   15

Number of clocks cycles per sample must be between 1 (0) and 16 (15), inclusive.

§ TRNGCC26XX_MAX_SAMPLES_MAX

#define TRNGCC26XX_MAX_SAMPLES_MAX   16777216

Largest allowable maximum samples count per cycle

§ TRNGCC26XX_MAX_SAMPLES_MIN

#define TRNGCC26XX_MAX_SAMPLES_MIN   256

Maximium samples per cycle range. Maximium may be 0, or greater than or equal to 2^8 and less than or equal to 2^24.Smallest allowable maximum samples count per cycle

§ TRNGCC26XX_MIN_SAMPLES_MAX

#define TRNGCC26XX_MIN_SAMPLES_MAX   16384

Largest allowable minimum samples count per cycle

§ TRNGCC26XX_MIN_SAMPLES_MIN

#define TRNGCC26XX_MIN_SAMPLES_MIN   64

Minimum samples per cycle range, minimum value

Minimum may be 0, or greater than or equal to 2^6 and less than 2^14.Smallest allowable minimum samples count per cycle

© Copyright 1995-2021, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale