Sonoma (MAXREFDES14#) Code Documentation V01.00 Isolated EMP (Energy Measurement Processor)

- Main Page
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Macros Pages
Functions
utilities.c File Reference
`#include "utilities.h"`
`#include "MAXREFDES14.h"`

Go to the source code of this file.

## Functions
void | print_asterisks (int nQuantity)
| Print nQuantity of asterisks to the default Hyperterminal UART.
int | SpiRW (u32 unPeripheralAddressSPI, unsigned int unCPHA, unsigned int unCPOL, u8 *auchWriteBuf, u8 *auchReadBuf, int unNumBytes, u8 uchCsActiveHigh)
| Perform a SPI read or write.
void | delay (int nStopValue)
| Loop for nStopValue iterations to provide a delay.
void | led_knight_rider (XGpio *pLED_GPIO, int nNumberOfTimes)
| Blink a row of LEDs nNumberOfTimes times.
void | max_configure_PMOD_port (u8 uchPmodPortA, u8 uchPmodPortB, u8 uchPmodPortC, u8 uchPmodPortD)
| Configure driving peripherals on each Pmod port.
int | check_if_i2c_device_is_present ()
| Test for SDA and SCL pullups.
int | number_raised_to_power (int nBase, int nExponent)
| Raise nBase to the nExponent power (operates with integers only).
int | receive_byte_with_timeout (u32 unUartAddress, int nTimeoutInTenthsOfSeconds, u8 *uchRxData)
| Receive a byte from the UART located at *pUartAddress.
int | GetLine (char *sInputString, unsigned int unMaxSize)
| Retrieve a line of characters from the default Hyperterminal UART (DEFAULT_HYPERTERMINAL_UART).
void | printf_temp (float fTemp, u8 uchPrintCelsius, u8 uchAddCarriageReturn)
| Print temperature as xx.x as degrees F or C.
u8 | getUartByte (u32 nUartAddress)
| Get a byte from either the full UART in the Zynq PS, or a Xilinx UartLite.
int | htoi (char *sStr)

## Detailed Description

          Project: Maxim Plug-in Peripheral Modules
         Filename: utilities.c
      Description: This module contains a collection of general utility
                   functions which are not specific to any particular
                   module.

Revision History:
4-13-12 Rev 1.0 Seth Messimer Initial Release
7-20-12 Rev 1.4 Nathan Young Additional functions

This code follows the following naming conventions.

char chPmodValue char (array) sPmodString[16] float fPmodValue int nPmodValue int (array) anPmodValue[16] u16 uPmodValue u8 uchPmodValue u8 (array) auchPmodBuffer[16] unsigned int unPmodValue int * punPmodValue

Definition in file utilities.c.

## Function Documentation

int check_if_i2c_device_is_present | ( |  | ) |

Test for SDA and SCL pullups.

Details
  This function places the PMOD A port into GPIO mode briefly in order to sample the SDA and SCL lines If they are high, then this implies that a pull-up is present, and hence a PMOD board is likely present

Parameters

  None |

Return values

  TRUE | if pull-ups present, FALSE if pullups not present

Definition at line 261 of file utilities.c.

void delay | ( | int | nStopValue | ) |

Loop for nStopValue iterations to provide a delay.

Details
  It is commonly used with the constant 'ABOUT_ONE_SECOND' defined in maximPMOD.h for setting approximate delays

Parameters

  [in] | nStopValue | - number of iterations to loop

Return values

  None |

Definition at line 165 of file utilities.c.

int GetLine | ( | char * | sInputString,
|  | unsigned int | unMaxSize
| ) |  |

Retrieve a line of characters from the default Hyperterminal UART (DEFAULT_HYPERTERMINAL_UART).

Details
  Maximum number of characters can be specified. Function will timeout after 10 seconds.

Parameters

  [in] | sInputString | - pointer to buffer for input string
  [in] | unMaxSize | - maximum number of characters to input

Return values

  TRUE | if operation succeeded

Definition at line 393 of file utilities.c.

u8 getUartByte | ( | u32 | nUartAddress | ) |

Get a byte from either the full UART in the Zynq PS, or a Xilinx UartLite.

Parameters

  [in] | unUartAddress. | 32 bit UART address

Return values

  Returns | the next byte from the Uart Rx FIFO

Definition at line 442 of file utilities.c.

int htoi | ( | char * | sStr | ) |

Definition at line 457 of file utilities.c.

void led_knight_rider | ( | XGpio * | pLED_GPIO,
|  | int | nNumberOfTimes
| ) |  |

Blink a row of LEDs nNumberOfTimes times.

Details
  The Digilent NEXYS-3 board has 8 green LEDs located above the toggle switches. This function blinks them back/forth (a bit like the KITT car from Knight Rider)

Parameters

  [in] | *pLED_GPIO | - address of the GPIO peripheral driving the LEDs in MicroBlaze memory map

Return values

  None |

Definition at line 186 of file utilities.c.

void max_configure_PMOD_port | ( | u8 | uchPmodPortA,
|  | u8 | uchPmodPortB,
|  | u8 | uchPmodPortC,
|  | u8 | uchPmodPortD
| ) |  |

Configure driving peripherals on each Pmod port.

Details
  The Maxim HDL hardware design for the Nexys 3 includes a multiplexer on each PMOD port to allow I2C, SPI, GPIO, and UART functionality to be selected on each port. The standard configuration is (PortA = I2C, PortB = SPI, PortC = GPIO, PortD = UART) This function is used to set the standard configuration in the main() function, as well as to optionally change the port config. The 2-bit number used to define the port configuration is encoded as follows:
  00=UART, 01=SPI, 10=GPIO and 11=I2C

Parameters

  [in] | uchPmodPortA | - 2-bit number to define configuration for Pmod port A
  [in] | uchPmodPortB | - 2-bit number to define configuration for Pmod port B
  [in] | uchPmodPortC | - 2-bit number to define configuration for Pmod port C
  [in] | uchPmodPortD | - 2-bit number to define configuration for Pmod port D

Return values

  TRUE | if operation succeeded

Definition at line 221 of file utilities.c.

int number_raised_to_power | ( | int | nBase,
|  | int | nExponent
| ) |  |

Raise nBase to the nExponent power (operates with integers only).

Details
  Many Microblaze applications will not have math.h included due to limited memory space. This is a simple functions to implement (nBase ^ nExponent) Some Maxim devices (such as MAX44009) return values in mantissa + (power of 2) exponent format.

Parameters

  [in] | nBase | - base
  [in] | nExponent | - exponent

Return values

  Base^Exponent |

Definition at line 308 of file utilities.c.

void print_asterisks | ( | int | nQuantity | ) |

Print nQuantity of asterisks to the default Hyperterminal UART.

Parameters

  [in] | nQuantity | - number of asterisks to print

Return values

  None |

Definition at line 64 of file utilities.c.

void printf_temp | ( | float | fTemp,
|  | u8 | uchPrintCelsius,
|  | u8 | uchAddCarriageReturn
| ) |  |

Print temperature as xx.x as degrees F or C.

Details
  This function prints the temperature with .1 degree resolution in either degrees
  Celsius (uchPrintCelsius==TRUE) -or- Fahrenheit (uchPrintCelsius==FALSE)

Parameters

  [in] | fTemp | - temperature to print in celsius
  [in] | uchPrintCelsius | - true = print as celsius, false = print as fahrenheit
  [in] | uchAddCarriageReturn | - true = add a carriage return

Return values

  None |

Definition at line 420 of file utilities.c.

int receive_byte_with_timeout | ( | u32 | unUartAddress,
|  | int | nTimeoutInTenthsOfSeconds,
|  | u8 * | uchRxData
| ) |  |

Receive a byte from the UART located at *pUartAddress.

Parameters

  [in] | unUartAddress | - address of the UART peripheral in MicroBlaze memory map
  [in] | nTimeoutInTenthsOfSeconds | - amount of time to allow before TIMEOUT
  [out] | *uchRxData | - received data is stored at uchRxData

Return values

  TRUE | if operation succeeded

Definition at line 337 of file utilities.c.

int SpiRW | ( | u32 | unPeripheralAddressSPI,
|  | unsigned int | unCPHA,
|  | unsigned int | unCPOL,
|  | u8 * | auchWriteBuf,
|  | u8 * | auchReadBuf,
|  | int | unNumBytes,
|  | u8 | uchCsActiveHigh
| ) |  |

Perform a SPI read or write.

Details
  This function provides a combination SPI Read and Write to the chosen SPI port in the design CPHA and CPOL can be set to 0 or 1 Pointers are provided to u8 buffers containing the data to be written and received Data in the auchWriteBuf will be clocked out (MSB first) onto the MOSI pin Data from the MISO pin will be placed into the auchReadBuf uchCsActiveHigh==TRUE allows SS configurations to be used uchCsActiveHigh==FALSE allows SS# configurations to be used

Parameters

  [in] | unPeripheralAddressSPI | -
  [in] | unCPHA | - phase of SCK (edge to trigger on). 0=Leading edge, 1=Trailing edge
  [in] | unCPOL | - polarity of SCK. 0=Active high, 1=Active low
  [in] | auchWriteBuf | - pointer to write data buffer
  [in] | auchReadBuf | - pointer to read data buffer
  [in] | unNumBytes | - number of bytes to transfer
  [in] | uchCsActiveHigh | - polarity of slave select 0=active low, 1=active high

Return values

  Always | returns 0

Definition at line 78 of file utilities.c.