hinto
New member
1.
WRITE_BURST_SIZE >= WRITE_SIZE
READ_BURST_SIZE >= READ_SIZE
но при этом WRITE_BURST_SIZE и READ_BURST_SIZE могут быть любыми по отношению друг к другу ?
То есть, если WRITE_BURST_SIZE > READ_BURST_SIZE, то чтобы началась запись, требуеться несколько чтений, каждое из которых должно ждать подтверждения от переферии ?
2.
Похоже значение ..._BURST_SIZE представляет собой место в буфере, но вот каков размер этого буфера ?
Опыт показал, что при WRITE_BURST_SIZE (или READ_BURST_SIZE) > 2 пересылка памяти не выполняется.
То есть 2^2=4 байта размер буфера канала? похоже в RV64, это значение будет минимум 3. хммм...
А вобще там отводиться 3 бита на ..._BURST_SIZE, то есть максимум 2^7=128 байт. Был соблазн использовать этот буферок, но вглядит так , что только 4 байта...
3.
Есть линия DAC, но нет ADC. Есть идея снимать данные по таймеру.
Можно например взять timer32_1, поскольку он на тойже шине что ADC (APB_P)
В этом случае рассинхронизации быть не должно, или не ?
Разумееться приоритет канала DMA будет наивысшим, иначе очередь может просто недойти.
Остаёться ещё вероятность, что сам CPU займёт шину AHB дольше, чем на 1 отсчёт.
Какие ещё засады могут быть?
Я так понял, должно выполняться условиеВ случае ввода значений не удовлетворяющих делению на блоки, или ввода значений превышающих размер буфера канала, возможно непредвиденное поведение контроллера. (K1948VK_018_015_MIK32_AMUR_2_2_2.pdf стр.19)
WRITE_BURST_SIZE >= WRITE_SIZE
READ_BURST_SIZE >= READ_SIZE
но при этом WRITE_BURST_SIZE и READ_BURST_SIZE могут быть любыми по отношению друг к другу ?
То есть, если WRITE_BURST_SIZE > READ_BURST_SIZE, то чтобы началась запись, требуеться несколько чтений, каждое из которых должно ждать подтверждения от переферии ?
2.
Похоже значение ..._BURST_SIZE представляет собой место в буфере, но вот каков размер этого буфера ?
Опыт показал, что при WRITE_BURST_SIZE (или READ_BURST_SIZE) > 2 пересылка памяти не выполняется.
То есть 2^2=4 байта размер буфера канала? похоже в RV64, это значение будет минимум 3. хммм...
А вобще там отводиться 3 бита на ..._BURST_SIZE, то есть максимум 2^7=128 байт. Был соблазн использовать этот буферок, но вглядит так , что только 4 байта...
3.
Есть линия DAC, но нет ADC. Есть идея снимать данные по таймеру.
Можно например взять timer32_1, поскольку он на тойже шине что ADC (APB_P)
В этом случае рассинхронизации быть не должно, или не ?
Разумееться приоритет канала DMA будет наивысшим, иначе очередь может просто недойти.
Остаёться ещё вероятность, что сам CPU займёт шину AHB дольше, чем на 1 отсчёт.
Какие ещё засады могут быть?
Последнее редактирование: