79 lines
6.8 KiB
Markdown
79 lines
6.8 KiB
Markdown
## 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
|
||
|
||
![[Pasted image 20250711184438.png]]
|
||
![[Pasted image 20250711184407.png]]
|
||
## software
|
||
1. После перенастройки модуля надо сбрасывать приемный буфер на ПК. Сейчас сброс через полное вычитывание данных вникуда.
|
||
|
||
|
||
Логическая таблица задает порядок опроса и параметры опрашиваемых физических каналов. Данные с физических каналов затем поступают по SPORT0 в порядке опроса.
|
||
|
||
Алгоритм работы:
|
||
1. Приняли команду о начале работы (напр. усреднение) с ПК. Настроили state machine.
|
||
2. Обработка данных
|
||
3. Отправка данных hdma_send_req_start(). Поднимается флаг **"данные отправляются, передающий буффер занят"**
|
||
4. При окончании отправки вызывается обработчик hdma_send_done(), в котором сбрасываем флаг **"данные отправляются, передающий буффер занят"**
|
||
|
||
|
||
|
||
Вернул ПО blackfin в оригинальное состояние (git checkout). Bf не возвращает данные. При попытке запуска через x502studio -- возникает ошибка с каналами:
|
||
![[Pasted image 20250916221016.png]]
|
||
|
||
|
||
Причем если подключить ноут к сети, то вылетает быстрее.
|
||
Однажды перед вылетом была получена такая картина:
|
||
![[Pasted image 20250916220932.png]]
|
||
Подключение -- syn1 (тактирование АПЦ), syn2 (запуск), X1 -- сигнал (треугольник). Видно, что в процессе поменялись местами каналы 1 и 2. WTF?
|
||
Настройки:
|
||
![[Pasted image 20250916221400.png]]
|
||
|
||
Проблема воспроизводима: ![[Pasted image 20250916221611.png]]
|
||
![[Pasted image 20250916221856.png]]
|
||
Воспроизведение:
|
||
|
||
|
||
| ошибка | sync freq mode | sync start mode | пр. условия | |
|
||
| ------ | -------------------------- | --------------- | -------------------------------------------------------------------------- | ---------------------------------------------- |
|
||
| да | syn1 rise | syn2 rise | | |
|
||
| да | syn1 rise | internal | | |
|
||
| нет | internal | internal | | |
|
||
| нет | int | syn1 rise | | |
|
||
| нет | syn2 rise (низкая частота) | int | | |
|
||
| да | syn2 rise (ВЧ) (F>0.5 MHz) | int | | F=730 kHz ![[Pasted image 20250917153156.png]] |
|
||
| да | syn2 rise (ВЧ) (F=730 kHz) | int | вход канала 2 -- заземлен (внутренне):![[Pasted image 20250917161724.png]] | ![[Pasted image 20250917161645.png]] |
|
||
|
||
Эксперимент:
|
||
1. 1 канал подключен к генератору с треугольным сигналом
|
||
2. 2,3,4,5 каналы -- заземлены (внешне проводами к GND32)
|
||
результат:
|
||
3. sync start mode -- internal
|
||
|
||
| | sync freq mode | результат | |
|
||
| ------------------------------------------------ | -------------- | ------------------------------------------------------------------ | ---------------------------------------------------- |
|
||
| | INTernal | всё ОК | |
|
||
| | SYN1_RISE | каналы 1-5 путаются. Ранее аналогично путались и все другие каналы | ![[Pasted image 20250917193217.png]]![[newplot.png]] |
|
||
| после промежутка времени (неизвестное событие?): | то же | каналы перестали путаться. Большие помехи | ![[Pasted image 20250917193401.png]] |
|
||
| | INTernal | всё ОК | ![[newplot(1).png]] |
|
||
| | SYN2_RISE | ОК | ![[Pasted image 20250917193951.png]] |
|
||
| | SYN1_RISE | | ![[Pasted image 20250917194104.png]] |
|
||
| | SYN1_FALL | | ![[Pasted image 20250917194134.png]] |
|
||
|
||
|
||
|
||
|