Цитата(akimych @ Feb 1 2011, 20:16)

Не может ли там быть каким-то образом, что перезапуск дма получился где-то в середине? По идее достаточно одно такого глюка, что бы началась каша.
Очень на то похоже, другого объяснения не вижу.
Цитата(akimych @ Feb 1 2011, 20:16)

АЦП выдает 2 значения подряд,
Разве такое возможно? Каналы перебираются последовательно, после каждого преобразования i-го канала запрос к DMA. В моём случае АЦП на максимальной скорости - 12МГц, 14 тактов - одна конверсия 1.17мкс. Период триггера запуска АЦП от таймера >50мкс. А пересылка посредством DMA одного 16-бит слова из АЦП со всякими там арбитражами-подтверждениями (тонкостей не знаю), думаю, займёт ну пусть 10 тактов системных (72МГц) - всё равно несоизмеримо с 1.17мкс.
Цитата(akimych @ Feb 1 2011, 20:16)

а дма уже не в 0, на 1ом будет флаг ТС1, пересброс дма, по сути операция эта очень быстрая, ацп не успеет 2ое значение потерять, 2ое значение ляжет первым, после чего 1ое (новое) значение пойдет на 2ое место, опять готовность дма и всё повторяется. Если буфер не 2, а больше значений, то соотв. сдвижка будет другая. И никуда она не денется и период таймера не повлияет.
Характер сдвига несколько другой, в хаосе имеется закономерность - сдвиг циклический

- из моих 6 каналов возможны комбинации
012345-123450-234501 и т.д. И сдвиг гуляет, а не стоит на месте.
Вот такого нет: 102345,42501 и т.п.
Цитата(akimych @ Feb 1 2011, 20:16)

Как вариант, можно попробовать ловить флаг не от дма, а от ацп, он его выдаст после оцифровки всей группы каналов. Тут уже глюков быть не должно.
Заодно можно проверить, если от ацп флаг есть, а от дма нету (в течение некоторого адекватного времени, весьма короткого), значит имеет место косяк.
Согласен полностью, выглядит самым надёжным вариантом. От АЦП конечно флаг будет, раз уж ввалились в прерывание от оного, и очень интересно поглядеть, чем в это момент занимается ДМА,все ли дела закончило. Думаю, проверка флага ТС1 обязательна, и вовсе не будет означать косяк. Важнее глянуть на счётчик передач, он должен быть не больше 1, т.е. может идти последняя передача. К сожалению, сегодня не добрался до железки, как только опробую, отрапортую.
Сообщение отредактировал pr0m - Feb 1 2011, 20:27