Giter VIP home page Giter VIP logo

esp32_ne's Introduction

Назначение выводов

смотри defines.h секцию "Hardware pin's setup"

Осталось назначить выводы UART, их следует перепроверить, часто путают RxD/TxD. Судя по схеме соединения с CP2102 это pin 34, 35

Функции программы

ADC Echo

АЦП имеет параметр скорость, см. SAMPLE_FREQ_HZ. Следует подобрать величину, но не более 2МГц, иначе программа падает

АЦП выполняет TIMES (равное 1024) выборок и потом сбор данных останавливается

Измеренные значения АЦП хранятсся в буфере result (cм. файл adc.c)

uint8_t result[TIMES] = {0};

Время записи результатов можно оценить как TIMES/SAMPLE_FREQ_HZ

ADC 40V

АЦП для контроля за напряжением питания 40В

Запускатся если разкомментирована строка:

// #define SLOW_ADC_TEST       1

DAC

ЦАП для формирования сигнала управления усилением приемника эха.

Стартует сразу после генерации импульсов 1.75МГц и с максимальной скоростью выдает отсчеты из буфера (см. файл dac.c)

uint8_t profile[PROFILE_SIZE];

Число отсчетов равно PROFILE_SIZE и равно 100.

Внимание, если требуется изменить число отсчетов, то в файле dac.c следует изменить число записей в ЦАП, т.е. таких строк:

dac_ll_update_output_value(channel, profile[1]);
...

1.75MHz pulses

Пачка из четырех импульсов 1.75МГц формируется интерфейсом RMT. Расчет длины импульсов:

1.75 MHz 4 pulses setup:
    - period = 1/1.75=0.571 us
    - pulse duration = period/2 = 0.2855 us = 285 ns
    - RMT tick = 1/80MHz = 12.5 ns
    - pulse rmt's tick = 285/12.5 = 22.8 ticks

Время задержки между каналами A и B регулируется подбором числа тиков в коде ниже:

	rmt_item32_t items_0[5];
	items_0[0].duration0 = 565;
	items_0[0].level0 = 0;
	items_0[0].duration1 = 525;
	items_0[0].level1 = 0;

где 565 и 525 константы, обеспечивающие задержку. Так же задержку между запуском двух каналов более точно можно регулировать числом команд nop:

    __asm__ __volatile__ ("nop");
    __asm__ __volatile__ ("nop");
    ...

Пачка импульсов запускается последовательным вызовом двух функций:

void initRmt(channelPulses_t channelPulses);
...
void runRmt(channelPulses_t channelPulses);

Аргумент channelPulses задает номер канала CHANNEL_1_AB/CHANNEL_2_AB

Frame Pulse

Frame pulse generates low level when RMT/ADC/DAC processing.

Внимание, pullup & pulldown для этого выхода выключены, требуется внешний резистор к питанию. Прин инициализации вывод устанавливается в высокий уровень.

ADC 40V

АЦП для контроля за напряжением питания 40В

Запускатся если разкомментирована строка:

// #define SLOW_ADC_TEST       1

Примечание: замечено, что одновременный запуск АЦП Echo и АЦП 40V влияет на время обработки Echo. Странно, надо исследовать этот вопрос

esp32_ne's People

Contributors

sergey-bulanov avatar ssriblo avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.