Ads1299 у кого нибудь есть опыт работы

Тема в разделе "Arduino & Shields", создана пользователем Алексей132, 11 май 2020.

  1. Коллеги, а кого нибудь есть опыт с АЦП ADS1299, никак не могу оживить его, все по документации сделал, но чип никак не отвлекается, вот мой код, но может в схеме дело, хотя все несколько раз проверил
    по осцилограффу смотрел, spi все верно доходит

    int received_byte;
    uint8_t SDATAC = 0x11;
    uint8_t RESET = 0x06;
    uint8_t WAKEUP = 0x02;
    uint8_t CONFIG1 = 0x01;
    uint8_t CONFIG2 = 0x02;
    uint8_t CONFIG3 = 0x03;
    uint8_t test = 0x00;


    void send_command(uint8_t cmd)
    {
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET);
    delay_us(2);
    HAL_SPI_Transmit(&hspi3, (uint8_t*)&cmd,1, 0x1000);
    delay_us(2);
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    }
    void send_data_by_uart (received_byte)
    {
    // step 1 - convert dataset
    char buffer[16];
    char buffer1[16];
    sprintf(buffer1, "%d\n", received_byte);
    int a=0;
    for (a; a<strlen(buffer1); a=a+1) //
    {
    if (buffer1[a]!= 0)
    {
    buffer[0] = buffer1[a];
    HAL_UART_Transmit(&huart5, buffer, 1, 1000);
    }
    }
    a=0;
    // step 2 - send by uart UART
    HAL_UART_Transmit(&huart5, "amigos", 6, 1000); //"amigo\r\n\0"
    }
    void write_byte(uint8_t reg_addr, uint8_t val_hex)
    {
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET);
    delay_us(20);
    uint8_t adress = 0x40 | reg_addr;
    HAL_SPI_Transmit(&hspi3, (uint8_t*)&adress, 1, 0x1000);
    // delay_us(5);
    HAL_SPI_Transmit(&hspi3, (uint8_t*)&test, 1, 0x1000);
    // delay_us(5);
    HAL_SPI_Transmit(&hspi3, (uint8_t*)&val_hex, 1, 0x1000);
    // delay_us(2);
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    delay_us(2);
    }
    uint8_t read_byte(uint8_t reg_addr)
    {
    uint8_t out=0;
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET);
    delay_us(20);
    uint8_t adress = 0x20 | reg_addr;
    HAL_SPI_Transmit(&hspi3, (uint8_t*) &adress, 1 ,0x1000);
    // delay_us(5);
    HAL_SPI_Transmit(&hspi3, (uint8_t*)&test, 1, 0x1000);
    // delay_us(5);
    HAL_SPI_Receive(&hspi3, (uint8_t*)&out,1,0x1000);
    // delay_us(2);
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    delay_us(1);
    return(out);
    }
    void live_bits ()
    {
    HAL_Delay(100);
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_10);
    HAL_Delay(100);
    }
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    //reset communication, see datasheet
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET);
    // HAL_SPI_Transmit(&hspi3, (uint8_t*) &RESET, 1, 0x1000);
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    // delay_us(500);
    // send_command(SDATAC);
    delay_us(10);
    int chSet = read_byte(0x00);
    send_data_by_uart (chSet);
    delay_us(10);
    write_byte(CONFIG1, 0x96); // 96
    delay_us(10);
    write_byte(CONFIG1, 0xD1);
    delay_us(10);
    write_byte(CONFIG1, 0xE0);
    delay_us(10);
    while (1)
    {
    // live_bits ();
    // HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    // HAL_Delay(500);
    // HAL_Delay(10);
    // Step.2 - Write configuarations bits
    // HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_RESET);
    // HAL_Delay(1);
    HAL_GPIO_WritePin(GPIOD, CS_Pin, GPIO_PIN_SET);
    HAL_Delay(1);
    // Step.3 - Read configuarations bits
    int Read_con = read_byte(CONFIG1);
    send_data_by_uart (Read_con);
    }
    /* USER CODE END 3 */
    }
     
  2. parovoZZ

    parovoZZ Гуру

    на что не отвлекается?

    а это что:

    и где она?
    а можно всё тоже самое, но только по-русски?
     
  3. NikitOS

    NikitOS Король шутов Администратор

    Читаем правила.
     
  4. Daniil

    Daniil Гуру

    А что такое "HAL_" везде? А какая ардуина?
     
  5. parovoZZ

    parovoZZ Гуру

    Hardware abstraction layer - код, малозависящий от платформы.
     
    Daniil нравится это.
  6. b707

    b707 Гуру

    HAL - это СТМ32
    каким боком тут этот вопрос - непонятно.
     
  7. Daniil

    Daniil Гуру

    Вот и я, помнится, читал про стмы с халами, поэтому не понял при чем тут ардуина