реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Борьба с помехами в цифровой схеме
=AK=
сообщение Dec 16 2014, 00:55
Сообщение #16


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(justontime @ Dec 16 2014, 04:17) *
обратился за помощью сюда - http://electronix.ru/forum/index.php?showtopic=124728

...

Думаю, что разводка выполнена совершенно неправильно - дорожки земли и питания 0.4 мм без полигонов, по одному конденсатору 0.1 мкф на каждую линию питания 3.3 и 5.0 В (там обе линии в каждом шлейфе) и еще один такой же конденсатор у процессора (тоже на дорожках 0.4 мм).

В указанном вами топике я давал достаточно ясные, на мой взгляд, разъяснения как надо разводить землю .

Вкратце, советы таковы:
- толщина земляных проводников не играет большой роли, но из них должна быть сделана "решетка" или "сетка", покрываюшая всю плату; если плата уже разведена, то "решетку" можно сделать добавлением навесных проводников
- керамические развязывающие конденсаторы 0.1 мкФ лучше всего добавить на каждую цифровую микросхему, запаяв их прямо на ножки земли и питания
- если есть возможность выбирать, какую микросхему использовать, то надо выбирать самую медленную и малопотребляющую.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 16 2014, 06:21
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Прежде, чем что-то физически, решил провести маленький эксперимент - уменьшил частоту, приходящую с FPGA, в 4 раза, и запустил тест. Пока полет нормальный (но это ничего пока еще не значит - и до этого могло час-полтора работать), посмотрю, что будет к вечеру.

Просто хочу понять (с определенной степенью вероятности) - помеха внешняя или внутренняя ? Или я неправильно рассуждаю ?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2014, 06:43
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата
В ходе отладки ПО стал замечать необъяснимые зависания

А в программе вы уверены на 100%? Напрасно.
А все ли удовлетворяет спецификации - напряжения, частоты, уровни сигналов?

А терминатора Т-1000 можно сделать параллельного, на приемном конце, чтобы не портить Скайнет.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 16 2014, 08:46
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Цитата(ViKo @ Dec 16 2014, 06:43) *
А в программе вы уверены на 100%? Напрасно.


В изначальной программе уверен не был, потому что она называется MS DOS sm.gif

А вот в тестовой особых сомнений нет - написана мной, фактически целых три команды на ассемблере (запись в память, чтение из памяти, сравнение), бегающих по кругу.

Цитата(ViKo @ Dec 16 2014, 06:43) *
А все ли удовлетворяет спецификации - напряжения, частоты, уровни сигналов?


Теоретически, да. Практически - это уже слегка обсуждалось.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 16 2014, 13:00
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Еще вопрос возник - ширина сигнальных дорожек на таких частотах какое-либо существенное влияние оказывает ? Иными словами, есть ли реальные причины сделать сигнальные дорожки не 0.2 мм, а другой ширины (именно с точки зрения помехоустойчивости в обычной жизни) ?
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 16 2014, 13:07
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(justontime @ Dec 16 2014, 16:00) *
Еще вопрос возник - ширина сигнальных дорожек на таких частотах какое-либо существенное влияние оказывает ? Иными словами, есть ли реальные причины сделать сигнальные дорожки не 0.2 мм, а другой ширины (именно с точки зрения помехоустойчивости в обычной жизни) ?

Нет. Дорожки начинают влиять, когда они начинают быть сравнимыми по длине с длиной волны третьей-пятой гармоники тактового сигнала. У Вас там такого и в помине не наблюдается. В отличие от шлейфа, который уже может быть сравним.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 16 2014, 19:13
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Что-то я в полном расстройстве... Ни уменьшение частоты, ни распайка конденсаторов на все микросхемы и на все питания ничего ровным счетом не изменило - как происходил сбой от 30 минут до пары часов, так и происходит. Понимаю, что можно еще землю сеточкой (как советовали) дополнительно протянуть, но я очень надеялся, что почти два десятка конденсаторов уже принципиально изменят ситуацию...

Кстати, все сбои были именно по чтению из памяти, причем при повторном чтении данные всегда считывались нормально.
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 16 2014, 19:18
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(justontime @ Dec 16 2014, 22:13) *
Кстати, все сбои были именно по чтению из памяти, причем при повторном чтении данные всегда считывались нормально.


Наиболее вероятно у Вас то, что некорректно рассчитаны временные соотношения сигналов при работе FPGA с шиной, и при работе FPGA с ОЗУ (если оно внешнее относительно FPGA). Соответственно, в проекте FPGA неверно или неполно заданы констрейны, и происходят нарушения времен Tsu (Setup) или Th (Hold) на шине. И питание тут не причем.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 16 2014, 19:39
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Дело в том, что FPGA никакой роли в управлении памятью не играет - там нет контроллера памяти, сигналы от процессора и контроллера шины процессора просто транзитом проходят через FPGA. При этом вроде все временные параметры с огромным запасом - SRAM на отладочной плате может работать с тактовой до 125 МГц, поэтому 5МГц проекта для нее просто ничто. И управление памятью ну крайне простое, особенно на чтение.

Но вообще не знаю, прямо руки опускаются...
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 16 2014, 19:58
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(justontime @ Dec 16 2014, 22:39) *
может работать с тактовой до 125 МГц, поэтому 5МГц проекта для нее просто ничто.

У Вас крайне скудное понятие о том, что такое временные соотношения на шине. Может быть, к примеру, что в результате транзитных задержек через буферы и FPGA, данные приходят с некоторым смещением от того времени, во время которого их ожидает процессор. И все, сбои гарантированы. Или адрес задерживается дольше, чем надо, и защелкивается где нибудь некорректно. Или, например, направление буфера переключается быстрее, чем следует, и данные снимаются на 20 пикосекунд раньше, чем это можно, вот оно раз в полчаса и глючит, потому, что на грани допуска балансирует...

Внимательно изучите в даташите картинки - BUS TIMING-MINIMUM MODE SYSTEM и BUS TIMING-MINIMUM MODE SYSTEM (Continued) - вот все-все то, что там нарисовано, и написано в виде MIN и MAX времен в наносекундах в табличке над ними, должно быть выдержано, несмотря на все транзитные задержки в буферах, проводах, FPGA и самой ОЗУ.
У самой ОЗУ, кстати, есть очень похожие параметры, и вот, суммарный бюджет по всем этим задержкам (включая все буфера, провода, FPGA, и пр.) должен укладываться в MIN...MAX значения из их документации как и для ОЗУ, так и для процессора. Стопудово, что там что-то где-то у Вас не учтено, и из-за этого происходят сбои. И это уже никакие не помехи, а ошибки в расчетах при проектировании.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 16 2014, 20:13
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Не претендую на глубокие познания, но все же определенные представления о работе шины есть. И под большим запасом я как раз подразумевал, что все задержки по пути через буферы и FPGA железно должны (по идее) укладываться в мин-макс параметры как процессора, так и памяти. Цикл шины 8088 ведь крайне простой, и особо узких мест там просто нет. Тем не менее, еще раз внимательно посмотрю в эту сторону - все равно пока у меня других идей нет.

Кстати, система у меня работает в max mode, хотя это принципиального значения вроде не имеет...
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 16 2014, 20:36
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Еще - как сделано защелкивание адреса по ALE? В FPGA? Констрейны записаны на это дело?
Go to the top of the page
 
+Quote Post
=AK=
сообщение Dec 16 2014, 23:28
Сообщение #28


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(justontime @ Dec 17 2014, 05:43) *
Ни уменьшение частоты, ни распайка конденсаторов на все микросхемы и на все питания ничего ровным счетом не изменило - как происходил сбой от 30 минут до пары часов, так и происходит. Понимаю, что можно еще землю сеточкой (как советовали) дополнительно протянуть, но я очень надеялся, что почти два десятка конденсаторов уже принципиально изменят ситуацию...

Конденсаторы по питанию помогают очень редко. Эти конденсаторы - необходимое условие, но не достаточное. Они должны быть запаяны для того, чтобы больше о них не думать. Основная польза от них в том, что, совместно с проводами земли и питания, они образуют "земляную сетку". Эта сетка обычно не накрывет всю плату, однако работает уже существенно лучше, чем просто земляной провод.

Вполне возможной причиной сбоев при обращении к памяти может быть "звон" в сигнальных линиях, когда эти линии имеют существенную длину (порядка 10 см и более). Проблема еще и в том, что ТТЛ выходы имеют разное сопротивление в "0" и в "1". Для борьбы со "звоном" требуется демпфирование и частичное согласование линий при помощи резисторов. Для начала надо выявить наиболее длинные линии. Между передатчиком и его линией хорошо бы врезать резистор примерно 33 Ома, это должно заметно уменьшить звон при преходе из 1 в 0. Ближе к приемному концу линии (или в середине двунаправленной линии) хорошо бы поставить подтяжку 680 Ом к плюсу питания и резистор 1 kОм на землю. Эти два резистора уменьшат отражение от приемного конца.

Цитата(justontime @ Dec 16 2014, 04:37) *
Да, забыл сказать - тактовая частота 5 МГц, в шлейфы особо земли не добавить, так как почти все уже занято сигналами.

У вас наверняка звон в шлейфах. Отчасти лечится, если шлейфы обернуть медной фольгой, которую заземлить в нескольких точках на каждой плате. Ну и резисторами, как написано выше.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2014, 05:51
Сообщение #29


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я думаю, проблема в питании, если ошибка выскакивает так редко.
Go to the top of the page
 
+Quote Post
justontime
сообщение Dec 17 2014, 06:48
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 6-12-14
Из: СПб
Пользователь №: 84 003



Вполне вероятно, SM оказался ближе всего к разгадке проблемы (что причина не в помехах, а в неправильных времянках на шине). Ночью пришла мне в голову одна мысль, попробовал - все ночь без сбоя проработало. Хотя, возможно, я не устранил проблему, а лишь уменьшил последствия.

Поспешных выводов пока делать не буду, помедитирую сначала немного еще на диаграммы шины 8088...
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 13:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01515 секунд с 7
ELECTRONIX ©2004-2016