смотри defines.h секцию "Hardware pin's setup"
Осталось назначить выводы UART, их следует перепроверить, часто путают RxD/TxD. Судя по схеме соединения с CP2102 это pin 34, 35
АЦП имеет параметр скорость, см. SAMPLE_FREQ_HZ. Следует подобрать величину, но не более 2МГц, иначе программа падает
АЦП выполняет TIMES (равное 1024) выборок и потом сбор данных останавливается
Измеренные значения АЦП хранятсся в буфере result (cм. файл adc.c)
uint8_t result[TIMES] = {0};
Время записи результатов можно оценить как TIMES/SAMPLE_FREQ_HZ
АЦП для контроля за напряжением питания 40В
Запускатся если разкомментирована строка:
// #define SLOW_ADC_TEST 1
ЦАП для формирования сигнала управления усилением приемника эха.
Стартует сразу после генерации импульсов 1.75МГц и с максимальной скоростью выдает отсчеты из буфера (см. файл dac.c)
uint8_t profile[PROFILE_SIZE];
Число отсчетов равно PROFILE_SIZE и равно 100.
Внимание, если требуется изменить число отсчетов, то в файле dac.c следует изменить число записей в ЦАП, т.е. таких строк:
dac_ll_update_output_value(channel, profile[1]);
...
Пачка из четырех импульсов 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 generates low level when RMT/ADC/DAC processing.
Внимание, pullup & pulldown для этого выхода выключены, требуется внешний резистор к питанию. Прин инициализации вывод устанавливается в высокий уровень.
АЦП для контроля за напряжением питания 40В
Запускатся если разкомментирована строка:
// #define SLOW_ADC_TEST 1
Примечание: замечено, что одновременный запуск АЦП Echo и АЦП 40V влияет на время обработки Echo. Странно, надо исследовать этот вопрос