Skip to main content
Yugenthar
Associate III
February 22, 2023
Solved

how to inteface HI-8476 ic in stm32

Hello every one .Im yugenthar

I need your help

Anyone Know th arinc-429 protoacl

Then how to implement the stm32F

Any boady know this concept Please give the sollution

    This topic has been closed for replies.
    AScha.3
    AScha.3Best answer
    Super User
    February 22, 2023

    what you talk about ? - this :

    0693W00000aHOOUQA4.png

    If you feel a post has answered your question, please click on " Best Answer ".

    10 replies

    AScha.3
    AScha.3Best answer
    Super User
    February 22, 2023

    what you talk about ? - this :

    0693W00000aHOOUQA4.png

    If you feel a post has answered your question, please click on " Best Answer ".
    Yugenthar
    YugentharAuthor
    Associate III
    February 22, 2023

    Yes bro but this board is not in my hand .Actual this Board is using in DIP Switch but how to send the data frame in using stm32 or other controller the how to Veiw the output .Using this board

    This is my FRAME:Arinc-429

    EXAMPLE:

    STAR-00,

    LABEL-299(octal)

    SDI-01

    SSM-11

    DATA-4095 "ADC Value"

    PARITY-01

    Then One Quation how to buy this Demo kit Board

    Your are using this board then give the price rate bro.

    Please give any Sofware simulator for view purpose

    /* USER CODE BEGIN Header */
    /**
     ******************************************************************************
     * @file : main.c
     * @brief : Main program body
     ******************************************************************************
     * @attention
     *
     * Copyright (c) 2023 STMicroelectronics.
     * All rights reserved.
     *
     * This software is licensed under terms that can be found in the LICENSE file
     * in the root directory of this software component.
     * If no LICENSE file comes with this software, it is provided AS-IS.
     *
     ******************************************************************************
     */
    /* USER CODE END Header */
    /* Includes ------------------------------------------------------------------*/
    #include "main.h"
    #include <stdio.h>
    #define LABEL 0x81
    #define SDI 0x03
    #define SSM 0x00
    #define PARITY 0x01
     
    #define UART_BUFFER_SIZE 1
    uint8_t rxData[UART_BUFFER_SIZE];
    uint8_t data_array[4] ;
    uint32_t DATA;
    uint16_t bytes[2];
    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
     
    /* USER CODE END Includes */
     
    /* Private typedef -----------------------------------------------------------*/
    /* USER CODE BEGIN PTD */
     
    /* USER CODE END PTD */
     
    /* Private define ------------------------------------------------------------*/
    /* USER CODE BEGIN PD */
    /* USER CODE END PD */
     
    /* Private macro -------------------------------------------------------------*/
    /* USER CODE BEGIN PM */
     
    /* USER CODE END PM */
     
    /* Private variables ---------------------------------------------------------*/
    ADC_HandleTypeDef hadc1;
     
    UART_HandleTypeDef huart1;
     
    /* USER CODE BEGIN PV */
     
    /* USER CODE END PV */
     
    /* Private function prototypes -----------------------------------------------*/
    void SystemClock_Config(void);
    static void MX_GPIO_Init(void);
    static void MX_USART1_UART_Init(void);
    static void MX_ADC1_Init(void);
    /* USER CODE BEGIN PFP */
     
     
    /* USER CODE END PFP */
     
    /* Private user code ---------------------------------------------------------*/
    /* USER CODE BEGIN 0 */
     
    /* USER CODE END 0 */
     
    /**
     * @brief The application entry point.
     * @retval int
     */
    int main(void)
    {
     /* USER CODE BEGIN 1 */
     
     /* USER CODE END 1 */
     
     /* MCU Configuration--------------------------------------------------------*/
     
     /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
     HAL_Init();
     
     /* USER CODE BEGIN Init */
     
     /* USER CODE END Init */
     
     /* Configure the system clock */
     SystemClock_Config();
     
     /* USER CODE BEGIN SysInit */
     
     /* USER CODE END SysInit */
     
     /* Initialize all configured peripherals */
     MX_GPIO_Init();
     MX_USART1_UART_Init();
     MX_ADC1_Init();
     /* USER CODE BEGIN 2 */
     
     
     /* USER CODE END 2 */
     
     /* Infinite loop */
     /* USER CODE BEGIN WHILE */
     while(1)
     {
     HAL_ADC_Start(&hadc1);
     HAL_ADC_PollForConversion(&hadc1, 100);
     DATA=HAL_ADC_GetValue(&hadc1);
     
     bytes[0] = DATA >> 8;
     bytes[1] = DATA & 0x00FF;
     HAL_ADC_Stop(&hadc1);
     
     if (HAL_UART_Receive(&huart1, &rxData, 4, 100) == HAL_OK)
     {
     
     	 if (rxData[0] == LABEL)
     	 {
     	 if(rxData[1]==SDI)
     	 {
     	 	 if(rxData[2]==SSM)
     	 	 {
     	 		if(rxData[3]==PARITY)
     	 		 {
    // 	 			for (int i = 0; i < sizeof(data_array); i++)
    // 	 			 {
    // 	 			 HAL_UART_Transmit(&huart1, &data_array[i], 1, HAL_MAX_DELAY);
    // 	 			 }
     	 			HAL_UART_Transmit(&huart1, &rxData[0], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &rxData[1], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &rxData[2], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &bytes[0], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &bytes[1], 1, HAL_MAX_DELAY);
    // 	 			HAL_UART_Transmit(&huart1, &DATA, 1, HAL_MAX_DELAY);
     	 		 HAL_UART_Transmit(&huart1, &rxData[3], 1, HAL_MAX_DELAY);
     
     
     
     	 		 }
     	 	 }
     
     	 }
     	 }
     }
     }
    }
     
    /**
     * @brief System Clock Configuration
     * @retval None
     */
    void SystemClock_Config(void)
    {
     RCC_OscInitTypeDef RCC_OscInitStruct = {0};
     RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
     RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
     
     /** Initializes the RCC Oscillators according to the specified parameters
     * in the RCC_OscInitTypeDef structure.
     */
     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
     RCC_OscInitStruct.HSIState = RCC_HSI_ON;
     RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
     if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
     {
     Error_Handler();
     }
     
     /** Initializes the CPU, AHB and APB buses clocks
     */
     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
     |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
     
     if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
     {
     Error_Handler();
     }
     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
     PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
     {
     Error_Handler();
     }
    }
     
    /**
     * @brief ADC1 Initialization Function
     * @param None
     * @retval None
     */
    static void MX_ADC1_Init(void)
    {
     
     /* USER CODE BEGIN ADC1_Init 0 */
     
     /* USER CODE END ADC1_Init 0 */
     
     ADC_ChannelConfTypeDef sConfig = {0};
     
     /* USER CODE BEGIN ADC1_Init 1 */
     
     /* USER CODE END ADC1_Init 1 */
     
     /** Common config
     */
     hadc1.Instance = ADC1;
     hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
     hadc1.Init.ContinuousConvMode = DISABLE;
     hadc1.Init.DiscontinuousConvMode = DISABLE;
     hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
     hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
     hadc1.Init.NbrOfConversion = 1;
     if (HAL_ADC_Init(&hadc1) != HAL_OK)
     {
     Error_Handler();
     }
     
     /** Configure Regular Channel
     */
     sConfig.Channel = ADC_CHANNEL_0;
     sConfig.Rank = ADC_REGULAR_RANK_1;
     sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
     if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
     {
     Error_Handler();
     }
     /* USER CODE BEGIN ADC1_Init 2 */
     
     /* USER CODE END ADC1_Init 2 */
     
    }
     
    /**
     * @brief USART1 Initialization Function
     * @param None
     * @retval None
     */
    static void MX_USART1_UART_Init(void)
    {
     
     /* USER CODE BEGIN USART1_Init 0 */
     
     /* USER CODE END USART1_Init 0 */
     
     /* USER CODE BEGIN USART1_Init 1 */
     
     /* USER CODE END USART1_Init 1 */
     huart1.Instance = USART1;
     huart1.Init.BaudRate = 115200;
     huart1.Init.WordLength = UART_WORDLENGTH_8B;
     huart1.Init.StopBits = UART_STOPBITS_1;
     huart1.Init.Parity = UART_PARITY_NONE;
     huart1.Init.Mode = UART_MODE_TX_RX;
     huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
     huart1.Init.OverSampling = UART_OVERSAMPLING_16;
     if (HAL_UART_Init(&huart1) != HAL_OK)
     {
     Error_Handler();
     }
     /* USER CODE BEGIN USART1_Init 2 */
     
     /* USER CODE END USART1_Init 2 */
     
    }
     
    /**
     * @brief GPIO Initialization Function
     * @param None
     * @retval None
     */
    static void MX_GPIO_Init(void)
    {
     
     /* GPIO Ports Clock Enable */
     __HAL_RCC_GPIOD_CLK_ENABLE();
     __HAL_RCC_GPIOA_CLK_ENABLE();
     
    }
     
    /* USER CODE BEGIN 4 */
     
    /* USER CODE END 4 */
     
    /**
     * @brief This function is executed in case of error occurrence.
     * @retval None
     */
    void Error_Handler(void)
    {
     /* USER CODE BEGIN Error_Handler_Debug */
     /* User can add his own implementation to report the HAL error return state */
     __disable_irq();
     while (1)
     {
     
     }
     /* USER CODE END Error_Handler_Debug */
    }
     
    #ifdef USE_FULL_ASSERT
    /**
     * @brief Reports the name of the source file and the source line number
     * where the assert_param error has occurred.
     * @param file: pointer to the source file name
     * @param line: assert_param error line source number
     * @retval None
     */
    void assert_failed(uint8_t *file, uint32_t line)
    {
     /* USER CODE BEGIN 6 */
     /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
     /* USER CODE END 6 */
    }
    #endif /* USE_FULL_ASSERT */

    This is Microcontroller output.using Docklight

    0693W00000aHP9GQAW.pngBut this working only Stm32 microcontroller not in ARINC -429 HI-8476 board.

    I need your support

    Yugenthar
    YugentharAuthor
    Associate III
    February 22, 2023

    Yes bro but this board is not in my hand .Actual this Board is using in DIP Switch but how to send the data frame in using stm32 or other controller the how to veiw the output .Using this board

    This is my FRAME:Arinc-429

    EXAMPLE:

    STAR-00,

    LABEL-299(octal)

    SDI-01

    SSM-11

    DATA-4095 ADCvalue

    PARITY-01

    Then One Quation how to buy this Demo kit Board

    Your are using this board then give the price rate bro.

    Please give any sofware simulator for view purpose

    /* USER CODE BEGIN Header */
    /**
     ******************************************************************************
     * @file : main.c
     * @brief : Main program body
     ******************************************************************************
     * @attention
     *
     * Copyright (c) 2023 STMicroelectronics.
     * All rights reserved.
     *
     * This software is licensed under terms that can be found in the LICENSE file
     * in the root directory of this software component.
     * If no LICENSE file comes with this software, it is provided AS-IS.
     *
     ******************************************************************************
     */
    /* USER CODE END Header */
    /* Includes ------------------------------------------------------------------*/
    #include "main.h"
    #include <stdio.h>
    #define LABEL 0x81
    #define SDI 0x03
    #define SSM 0x00
    #define PARITY 0x01
     
    #define UART_BUFFER_SIZE 1
    uint8_t rxData[UART_BUFFER_SIZE];
    uint8_t data_array[4] ;
    uint32_t DATA;
    uint16_t bytes[2];
    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
     
    /* USER CODE END Includes */
     
    /* Private typedef -----------------------------------------------------------*/
    /* USER CODE BEGIN PTD */
     
    /* USER CODE END PTD */
     
    /* Private define ------------------------------------------------------------*/
    /* USER CODE BEGIN PD */
    /* USER CODE END PD */
     
    /* Private macro -------------------------------------------------------------*/
    /* USER CODE BEGIN PM */
     
    /* USER CODE END PM */
     
    /* Private variables ---------------------------------------------------------*/
    ADC_HandleTypeDef hadc1;
     
    UART_HandleTypeDef huart1;
     
    /* USER CODE BEGIN PV */
     
    /* USER CODE END PV */
     
    /* Private function prototypes -----------------------------------------------*/
    void SystemClock_Config(void);
    static void MX_GPIO_Init(void);
    static void MX_USART1_UART_Init(void);
    static void MX_ADC1_Init(void);
    /* USER CODE BEGIN PFP */
     
     
    /* USER CODE END PFP */
     
    /* Private user code ---------------------------------------------------------*/
    /* USER CODE BEGIN 0 */
     
    /* USER CODE END 0 */
     
    /**
     * @brief The application entry point.
     * @retval int
     */
    int main(void)
    {
     /* USER CODE BEGIN 1 */
     
     /* USER CODE END 1 */
     
     /* MCU Configuration--------------------------------------------------------*/
     
     /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
     HAL_Init();
     
     /* USER CODE BEGIN Init */
     
     /* USER CODE END Init */
     
     /* Configure the system clock */
     SystemClock_Config();
     
     /* USER CODE BEGIN SysInit */
     
     /* USER CODE END SysInit */
     
     /* Initialize all configured peripherals */
     MX_GPIO_Init();
     MX_USART1_UART_Init();
     MX_ADC1_Init();
     /* USER CODE BEGIN 2 */
     
     
     /* USER CODE END 2 */
     
     /* Infinite loop */
     /* USER CODE BEGIN WHILE */
     while(1)
     {
     HAL_ADC_Start(&hadc1);
     HAL_ADC_PollForConversion(&hadc1, 100);
     DATA=HAL_ADC_GetValue(&hadc1);
     
     bytes[0] = DATA >> 8;
     bytes[1] = DATA & 0x00FF;
     HAL_ADC_Stop(&hadc1);
     
     if (HAL_UART_Receive(&huart1, &rxData, 4, 100) == HAL_OK)
     {
     
     	 if (rxData[0] == LABEL)
     	 {
     	 if(rxData[1]==SDI)
     	 {
     	 	 if(rxData[2]==SSM)
     	 	 {
     	 		if(rxData[3]==PARITY)
     	 		 {
    // 	 			for (int i = 0; i < sizeof(data_array); i++)
    // 	 			 {
    // 	 			 HAL_UART_Transmit(&huart1, &data_array[i], 1, HAL_MAX_DELAY);
    // 	 			 }
     	 			HAL_UART_Transmit(&huart1, &rxData[0], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &rxData[1], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &rxData[2], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &bytes[0], 1, HAL_MAX_DELAY);
     	 			HAL_UART_Transmit(&huart1, &bytes[1], 1, HAL_MAX_DELAY);
    // 	 			HAL_UART_Transmit(&huart1, &DATA, 1, HAL_MAX_DELAY);
     	 		 HAL_UART_Transmit(&huart1, &rxData[3], 1, HAL_MAX_DELAY);
     
     
     
     	 		 }
     	 	 }
     
     	 }
     	 }
     }
     }
    }
     
    /**
     * @brief System Clock Configuration
     * @retval None
     */
    void SystemClock_Config(void)
    {
     RCC_OscInitTypeDef RCC_OscInitStruct = {0};
     RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
     RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
     
     /** Initializes the RCC Oscillators according to the specified parameters
     * in the RCC_OscInitTypeDef structure.
     */
     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
     RCC_OscInitStruct.HSIState = RCC_HSI_ON;
     RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
     RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
     if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
     {
     Error_Handler();
     }
     
     /** Initializes the CPU, AHB and APB buses clocks
     */
     RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
     |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
     RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
     RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
     RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
     RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
     
     if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
     {
     Error_Handler();
     }
     PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
     PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
     if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
     {
     Error_Handler();
     }
    }
     
    /**
     * @brief ADC1 Initialization Function
     * @param None
     * @retval None
     */
    static void MX_ADC1_Init(void)
    {
     
     /* USER CODE BEGIN ADC1_Init 0 */
     
     /* USER CODE END ADC1_Init 0 */
     
     ADC_ChannelConfTypeDef sConfig = {0};
     
     /* USER CODE BEGIN ADC1_Init 1 */
     
     /* USER CODE END ADC1_Init 1 */
     
     /** Common config
     */
     hadc1.Instance = ADC1;
     hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
     hadc1.Init.ContinuousConvMode = DISABLE;
     hadc1.Init.DiscontinuousConvMode = DISABLE;
     hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
     hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
     hadc1.Init.NbrOfConversion = 1;
     if (HAL_ADC_Init(&hadc1) != HAL_OK)
     {
     Error_Handler();
     }
     
     /** Configure Regular Channel
     */
     sConfig.Channel = ADC_CHANNEL_0;
     sConfig.Rank = ADC_REGULAR_RANK_1;
     sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
     if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
     {
     Error_Handler();
     }
     /* USER CODE BEGIN ADC1_Init 2 */
     
     /* USER CODE END ADC1_Init 2 */
     
    }
     
    /**
     * @brief USART1 Initialization Function
     * @param None
     * @retval None
     */
    static void MX_USART1_UART_Init(void)
    {
     
     /* USER CODE BEGIN USART1_Init 0 */
     
     /* USER CODE END USART1_Init 0 */
     
     /* USER CODE BEGIN USART1_Init 1 */
     
     /* USER CODE END USART1_Init 1 */
     huart1.Instance = USART1;
     huart1.Init.BaudRate = 115200;
     huart1.Init.WordLength = UART_WORDLENGTH_8B;
     huart1.Init.StopBits = UART_STOPBITS_1;
     huart1.Init.Parity = UART_PARITY_NONE;
     huart1.Init.Mode = UART_MODE_TX_RX;
     huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
     huart1.Init.OverSampling = UART_OVERSAMPLING_16;
     if (HAL_UART_Init(&huart1) != HAL_OK)
     {
     Error_Handler();
     }
     /* USER CODE BEGIN USART1_Init 2 */
     
     /* USER CODE END USART1_Init 2 */
     
    }
     
    /**
     * @brief GPIO Initialization Function
     * @param None
     * @retval None
     */
    static void MX_GPIO_Init(void)
    {
     
     /* GPIO Ports Clock Enable */
     __HAL_RCC_GPIOD_CLK_ENABLE();
     __HAL_RCC_GPIOA_CLK_ENABLE();
     
    }
     
    /* USER CODE BEGIN 4 */
     
    /* USER CODE END 4 */
     
    /**
     * @brief This function is executed in case of error occurrence.
     * @retval None
     */
    void Error_Handler(void)
    {
     /* USER CODE BEGIN Error_Handler_Debug */
     /* User can add his own implementation to report the HAL error return state */
     __disable_irq();
     while (1)
     {
     
     }
     /* USER CODE END Error_Handler_Debug */
    }
     
    #ifdef USE_FULL_ASSERT
    /**
     * @brief Reports the name of the source file and the source line number
     * where the assert_param error has occurred.
     * @param file: pointer to the source file name
     * @param line: assert_param error line source number
     * @retval None
     */
    void assert_failed(uint8_t *file, uint32_t line)
    {
     /* USER CODE BEGIN 6 */
     /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
     /* USER CODE END 6 */
    }
    #endif /* USE_FULL_ASSERT */

    0693W00000aHP9GQAW.pngBut this working only Stm32 microcontroller not in arinc -429 HI-8476 board.

    i need your support

    AScha.3
    Super User
    February 22, 2023

    Sorry to say - but i dont have this board and i dont know much about the ->ARINC_429 for aircraft .

    https://en.wikipedia.org/wiki/ARINC_429

    what you wanna do then ?

    If you feel a post has answered your question, please click on " Best Answer ".
    Yugenthar
    YugentharAuthor
    Associate III
    February 23, 2023

    Actually one doubt its possible to implement the stm32 or any other microcontroller.

    If you any idea this protocal Please give me

    AScha.3
    Super User
    February 23, 2023

    first line in description:

    >The HI-8475 is an ARINC 429 Receiver designed specifically for use without a microprocessor.<

    so this board is for testing something without needing any cpu.

    but want to use a cpu - right? and what you want make then with arinc in airplane ?

    here a lib , in rust:

    https://github.com/samcrow/arinc_429.rs

    and in python

    https://github.com/aeroneous/PyARINC429

    and even for a raspberry:

    https://github.com/neonbjb/RaspPiArinc429

    the interface chip rx+tx :

     https://datasheetspdf.com/pdf-file/650413/DeviceEngineering/DEI1016/1

    If you feel a post has answered your question, please click on " Best Answer ".
    Yugenthar
    YugentharAuthor
    Associate III
    February 23, 2023

    Thanks sir,

    Please the c based example code so implement the microcontroller

    I have one doubt why using the HI8476 board in Arinc 429

    0693W00000aHUvyQAG.png