no-OS Bare-Metal Software Framework

repository·main·Indexed 23 days ago

https://github.com/analogdevicesinc/no-os

A bare-metal software framework from Analog Devices Inc. providing platform-agnostic device drivers and a hardware abstraction layer (HAL) for microcontrollers and FPGAs. It is designed for systems without an operating system, supporting platforms such as Xilinx, Intel, Maxim, STM32, ADuCM3029, and Raspberry Pi Pico. The framework includes ready-to-build project examples and drivers for ADI components, such as the ADXL355 accelerometer and AD7134_FMC.

Tokens
339.6K
Snippets
659
Records
1.5K
Agent score
80%

What's inside no-OS

  1. What is no-OS?

    main

    no-OS is a bare-metal software framework from Analog Devices Inc. designed for systems without an operating system. It is intended for use with lower-end processors (microcontrollers, FPGAs, etc.) that cannot run Linux or a specific OS.

    Key features include:

    • Platform-agnostic device drivers: Drivers for ADI components that run without an OS.
    • Hardware Abstraction Layer (HAL): Allows the same driver to work across various platforms including Xilinx, Intel, Maxim, STM32, ADuCM3029, and Raspberry Pi Pico.
    • Ready-to-build project examples: Example projects designed to be flashed to supported evaluation boards.
  2. Overview of the Display Demo project

    main

    The display_demo project is a no-OS example designed to demonstrate driving an SSD1306 OLED display using a Xilinx ZedBoard.

    Key functionalities include:

    • Initializing the SSD1306 display controller via SPI.
    • Controlling display power using dedicated VDD and VBAT GPIO controls.
    • Printing text messages to the screen.

    The initialization data is located in the project source at projects/display_demo/src/app.

  3. Overview of EVAL-ADXL355-PMDZ

    main

    The EVAL-ADXL355-PMDZ is an accelerometer evaluation board for high-precision, low-power 3-axis MEMS measurements. It supports selectable measurement ranges of $\pm$2g, $\pm$4g, and $\pm$8g.

    Hardware Specifications

    • Power Supply: 3.3V from a host board (up to 100 mA).
    • Interface: 12-pin PMOD connector for SPI communication.

    PMOD Pinout

    PinFunctionMnemonic
    1Chip SelectCS
    2Master Out Slave InMOSI
    3Master In Slave OutMISO
    4Serial ClockSCLK
    5Digital GroundDGND
    6Digital PowerVDD
    7Interrupt 1INT1
    8Not ConnectedNC
    9Interrupt 2INT2
    10Data ReadyDRDY
    11Digital GroundDGND
    12Digital PowerVDD
  4. Overview of AD7124-4SDZ no-OS Project

    main

    The AD7124-4SDZ no-OS project provides examples for the AD7124-4, a low-power, low-noise, integrated analog front end. The AD7124-4 features a 24-bit sigma-delta ADC, 4 differential or 7 pseudo-differential input channels, an on-chip 2.5V reference, an internal oscillator, a programmable gain amplifier (PGA), and excitation current sources.

    Supported Evaluation Board:

    • EVAL-AD7124-4SDZ

    Common Applications:

    • Temperature and pressure measurement
    • Industrial process control
    • Instrumentation and smart transmitters
  5. Overview of the ADRV903x no-OS Project

    main

    The ADRV903x project provides no-OS drivers and examples for the ADRV9032, a 4-transmitter / 4-receiver (4T4R) integrated RF transceiver. This implementation brings up the ADRV9032 on the ZCU102 carrier using a full JESD204C link managed by the no-OS JESD204 FSM.

    Active Profile: UC101 4T4R1OR NLS

    • JESD204C: 64B/66B encoding, 8 lanes TX + 8 lanes RX
    • Lane rate: 16220.160 Mbps
    • DEVCLK: 245.760 MHz (AD9528 channel 1)
    • LEMC rate: 7.680 MHz
    • Channels: 8 TX / 8 RX IQ channels (4 physical antennas x I + Q)
  6. Overview of ADIS1646X Family no-OS Project

    main

    The ADIS1646X family consists of precision MEMS Inertial Measurement Units (IMUs) containing a triaxial gyroscope and a triaxial accelerometer. This no-OS project provides example implementations for these devices, which include factory calibration for sensitivity, bias, alignment, and linear acceleration.

    Supported Evaluation Boards:

    • ADIS16465
    • ADIS16467
    • ADIS16470
    • ADIS16475
  7. Overview of FMCDAQ2 no-OS Project

    main

    The FMCDAQ2 no-OS project provides example software for the AD-FMCDAQ2-EBZ evaluation board. This board is an FMC module featuring:

    • AD9144: A quad, 16-bit, 2.8 GSPS DAC.
    • AD9680: A dual, 14-bit, 1 GSPS ADC.
    • AD9523-1: A low jitter clock generator.

    Data converters interface with the FPGA carrier board via the JESD204B serial interface. The board is powered through the FMC connector from the attached FPGA carrier board. The UART console for debugging is available at 115200 baud, 8N1 via the carrier board's USB-UART adapter.

  8. Overview of the MAX22915 basic example

    main

    The basic variant of the MAX22915 project is a simple example that initializes the device via SPI and demonstrates the following capabilities:

    • Switching Control: 8-channel high-side switch control.
    • Diagnostics:
      • Open-wire detection (on/off states)
      • Short to VDD detection
      • Overcurrent protection
      • Thermal protection
    • Monitoring:
      • ADC-based current sensing per channel
      • On-chip temperature measurement
    • Indicators: LED status indicators (FLED for faults, SLED for channel state).
    • Data Integrity: CRC protection for SPI communication.
  9. Overview of PULSAR-ADC no-OS Project

    main

    The PULSAR-ADC project provides no-OS examples for the AD4000/AD4001/AD4002/AD4003/AD4020 family of precision SAR analog-to-digital converters (ADCs). These ADCs offer high performance with throughputs up to 2 MSPS (1.8 MSPS for the AD4020).

    Supported Evaluation Boards

    • EVAL-AD400x-FMCZ

    Project Structure

    The project uses a variant-based build flow. You select a variant at build time using the --variant <name> flag. The main() function acts as a dispatcher that calls example_main(), which is defined by the selected variant.

    • Shared initialization data: Located in src/common.
    • Platform-specific macros/init parameters: Located in src/platform.
  10. Overview of the MAX30009 basic example

    main

    The basic example demonstrates the integration of the MAX30009 with the no-OS framework. It covers:

    • Device initialization and hardware setup
    • Interrupt configuration for FIFO data ready
    • PLL configuration (e.g., 50 kHz stimulus frequency @ 100 sps sample rate)
    • BioZ measurement configuration (sine-wave current drive, 10 V/V gain)
    • 4-electrode (tetrapolar) BIA electrode MUX configuration
    • Lead-off detection setup
    • FIFO data acquisition and sample decoding (I and Q channels)
    • Status monitoring (frequency lock, phase lock, power ready)
  11. Overview of the LTC3337 no-OS project

    main

    The LTC3337 is a primary battery state of health (SOH) monitor with a built-in precision coulomb counter. This no-OS project provides an example that initializes the device and continuously reads:

    • Accumulated charge
    • Battery input/output voltages (with iPeak on and off)
    • Die temperature

    Results are printed over UART. The project uses common data located in src/common and platform-specific macros located in src/platform.

    Hardware Specifications:

    • Battery input voltage range: 1.8 V to 5.5 V
    • Quiescent current: 100 nA
    • Peak input current limits (selectable): 5 mA, 10 mA, 15 mA, 20 mA, 25 mA, 50 mA, 75 mA, 100 mA
  12. Overview of AD74414H device capabilities

    main

    The AD74414H is a quad-channel, software-configurable device for industrial control.

    Key Features:

    • I/O Capabilities: Measures voltage, current, RTD, and thermocouples.
    • Converters: 16-bit DAC and 24-bit sigma-delta ADC (with optional 50Hz/60Hz rejection).
    • Communication: Integrated HART modem supporting both HART and SPI via configurable pin assignments.
    • Diagnostics: Built-in open-circuit/short-circuit detection and adaptive power switching.
    • Reference: High-accuracy 2.5V reference.
    • Auxiliary Channels: For sensing and power supply measurements.