Спокуха, все под контролем
В-общем, подумал я раз 10 пФ на AD3 сразу заметно снижает помеху, и проблемы вылазят если читается 177777, то вопрос аппаратный. Поменял схему степпинга, раньше было побайтно - выдавался на шину сначала младший байт, через 10 нс старший. А на схеме каждый байт выдается отдельной микросхемой 74LVC245, поэтому решил сделать чередование - выдаются сначала четные биты, потом нечетные, одна микросхема за такт будет приводить максимум 4 линии. Помогло очень заметно - стал проходить тест таймера (вывод тиков в цикле), а Пи стал виснуть не сразу и по-другому. Тогда на каждый AD процессора припаял 10 пФ и все заработало! Уже полчаса гоняю на 7.14МГц, все устойчиво работает. Попробовал 8.3МГц, стартует но подвисает, надо сделать более точно устанавливаемую частоту чтобы нащупать границу, а от у меня только деление 100/(2*N)
Посмотрел трассировку платы модуля - там реально не очень удачная - младший байт AD пересекает длинный разрыв в подстилающем слое GND (там заливка почти везде с обратной стороны), причем в этом разрыве идет EVNT. И потом еще один очень длинный разрыв пересекаетсмя под процессором, все это приводит к повышенной (условно) индуктивности линии и переходным процессам, которых видимо достаточно чтобы повлиять на микросхему процессора. В-общем, 10пФ на шину данных помогли, всем спасибо за помощь. Осталось разобраться с 4 тактами на команду, реально это или нет.
- - - Добавлено - - -
Это косвенный метод. Желательно проделать прямые измерения - набрать пачку последовательных команд mov R0, R1 и запустить на нее бесконечный цикл. И осциллографом наблюдать за SYNC, если период 4 такта, то буду искать у себя непонятку (на моем стенде минимальный цикл 5 тактов). Сделал сейчас вариант очень быстрого снятия RPLY - все равно процессор при высоком SYNC проводит бесполезный такт и итоговая длина цикла 5 тактов.
Это нестрашно, МПИ внутри ПЛИС синхронизируется с клоком 100МГц, достаточно предустановки адреса всего на 20нс.
Выложил ревизию 1.2B
- - - Добавлено - - -
Пачка mov R0,R1 в цикле выглядит так (укоротил, только цикл): []
Видно что процессор теряет такт при высоком SYNC, не начинает почему-то новый цикл сразу.







Ответить с цитированием