6.8 KiB
problems
баг с размещением большого буфера не в тот регион памяти
hardware
подключение (OUT_10) -- ADC_clock -> DI_SYN1 Фазы обеих клоков будем обнулять в начале цикла ЛЧМ.
BP9 (OUT_11) -- Modulation -> Mach-Zander
TIM11_CH1 Тактирование от APB2 (184 MHz). Желаемая частота -- 1 МГц. => Prescaler =1, ARR = 91, OCR1=22 Подключим его через драйвер к модулятору Маха-Цандера.
BP8 (OUT_10) -- ADC_clock -> DI_SYN1
TIM4_CH3 Тактирование от APB1 (92 MHz). Желаемая частота -- 2 МГц. => Prescaler = 0, ARR = 45, OCR3=22 Подключим его к DI_SYN1.
PD7 (TASK_TRG) -- trigger -> DI_SYN2
software
- После перенастройки модуля надо сбрасывать приемный буфер на ПК. Сейчас сброс через полное вычитывание данных вникуда.
Логическая таблица задает порядок опроса и параметры опрашиваемых физических каналов. Данные с физических каналов затем поступают по SPORT0 в порядке опроса.
Алгоритм работы: 1. Приняли команду о начале работы (напр. усреднение) с ПК. Настроили state machine. 2. Обработка данных 3. Отправка данных hdma_send_req_start(). Поднимается флаг "данные отправляются, передающий буффер занят" 4. При окончании отправки вызывается обработчик hdma_send_done(), в котором сбрасываем флаг "данные отправляются, передающий буффер занят"
Вернул ПО blackfin в оригинальное состояние (git checkout). Bf не возвращает данные. При попытке запуска через x502studio -- возникает ошибка с каналами:
!
Причем если подключить ноут к сети, то вылетает быстрее.
Однажды перед вылетом была получена такая картина:
!
Подключение -- syn1 (тактирование АПЦ), syn2 (запуск), X1 -- сигнал (треугольник). Видно, что в процессе поменялись местами каналы 1 и 2. WTF?
Настройки:
!
Проблема воспроизводима: !
!
Воспроизведение:
Эксперимент:
- 1 канал подключен к генератору с треугольным сигналом
- 2,3,4,5 каналы -- заземлены (внешне проводами к GND32) результат:
- sync start mode -- internal











