Возможно... У тебя же там мудрено сделано. Это у меня - сразу портами идет работа :)
Но я у себя вводил задержки для старых серий.
Вид для печати
Я попробовал с задержками. Правда, в файле с тестами задержки измеряются "в попугаях", я ставил много-много инструкций, которые по идее должны были "попридержать коней". Даже кварц менял на более медленный. Всё то же. Не тестирует.
К сожалению я не знаком с работой самой прошивки тестера, но сильно подозреваю, что питание даётся не в импульсе, а просто - подал на время теста одного типа микросхем и всё. В моих силах только протестировать отклик микросхемы в статике, однако на ней напряжение падает вообще до 1,8В, что неудивительно - ВА86 пожирает порядка 840 мВт мощности (если журнал "Радио" не врёт).
Вообщем, после того, как благодаря героическим стараниям Prusak-а баз тестируемых микросхем существенно расширилась, а количество свободной памяти меги32, соответственно, существенно сократилось, решено было соорудить нового франкенштейна :D
От версии 2.0 хочется возможности проверять микросхемы в любых (узких/широких) корпусах до DIP-40. Следовательно, напрашивается переход на мега128, как МК с достаточным для этого количеством выводов. При этом для управления дисплеем и клавиатурой придется использовать отдельный МК, видимо, мегу8. Это вызвано тем, что
1. выводов меги128 на все все равно не хватит
2. питание дисплея 3.3В, питание основного МК - 5В, будет лучше записать 2й МК от 3.3В чтобы решить проблему сопряжения с дисплеем
Конструктивно агрегат видится состоящим из трех модулей:
1. Основная плата. Состоит из универсальной ZIF-панели + мега128 + резисторы.
2. Модуль дисплей + клавиатура + мега8. Подключается через uart к основной плате
3. Модуль полевых транзисторов для подачи питания + регистры типа HC595 для управления ими (регистров, наверное, будет штуки три) . Опциональный модуль если хочется работать с прожорливыми микросхемами.
Разбиение на модули связано с желанием упростить разводку печатных плат, уменьшить размеры и иметь возможность легкой модернизации в последующем.
Основная плата будет самодостаточным тестером при подключении к компьютеру по UART. Одна из хотелок на будущее - небольшой адаптер в ZIF-панель для программирования ретро-ПЗУ вроде РЕ3, РТ4/5.
Сейчас нарисовал схему и развел плату основного модуля, после окончания праздников у китайцев отдам в производство. Ежели кому-то интересно, могу выложить Eagle-проект :)
Функционал нового тестера просто супер!
А не будет ли возможности подписаться на заказ чистой платки(платок модулей) или конструктора? Было бы очень здорово.
Я присоеденюсь к платке, если для 128-й меги будете делать, можно и первого релиза.
PS. А платки тестера на 16-й меге делались?
Trol73, если делать франкенштейна, то есть такие соображения:
1) если тестируемая микросхема имеет защитные диоды, соединена только с мегой, то подав высокий уровень на землю микросхемы, его можно увидеть и на других ногах, аналогично можно подать низкий уровень на питание.
2) если защитных диодов нет, при отсутствии питания большинство ног микросхемы пребывает в Z-состоянии, то по идее между землёй и питанием должна быть или повышенная ёмкость или пониженное сопротивление, иными словами выдача на одну из ног некоторого логического уровня может привести к изменению состояния другой ноги.
3) кратковременно выдав на ногу меги 0 или 1 и переключившись в режим входа можно сразу же прочитать его обратно, если подтягивающие резисторы отключены, нога микросхемы находится в Z-состоянии или такой ноги у неё вообще нет
4) если выбрать мегу с 16 каналами АЦП, каждый канал параллельно с еще одной ногой(через резисторы) подключить к кандидатам на питание микросхемы, то когда мы примерно определились сколько у нас ног и где может быть питание, можно кратковременно подать питание и замерив падание напряжения выяснить какой нужен ток и можем ли мы его обеспечить (в случае питания через внешний транзистор возможность оценки потребляемого тока тоже остаётся).
5) 16 каналов АЦП вроде только у меги в 100 ног, поэтому внешние регистры для управления транзисторами возможно и не нужны.
6) возможно есть смысл для хранения тестов использовать SPI-flash, кроме того туда существенно больше прошивок может поместиться. Вообще описание тестов в виде состояния входов/выходов хорошо только для микросхем без памяти, а для какого нибудь счётчика без циклов полноценный тест будет весьма длинным, а если в счётчик по сигналу сброса можно загрузить 0, но при определённом значении он сбрасывается не полностью/не сразу, то для выявления этого уже будет нужен двойной цикл. Сдвиговые регистры с параллельной загрузкой для полноценного тестирования тоже требуют загружать все возможные значения, а потом еще при проверке правильности сдвига ссылаться на определённый бит загруженного значения.
Есть некоторые подозрения, что в автоматическом режиме тестер должен определить сколько у микросхемы ног, где питание, где входы и выходы, а выполнять автоматические тесты можно только если это точно мелкая логика, а не какое нибудь однократно программируемое ПЗУ.
Вас помню, уже посчитал :)
Хорошо, желающих стало четыре :)
Платок для тестера на 16й меге я не делал - ее было нетрудно заутюжить ЛУТом )
По поводу шаманства с выводами в Z-состоянии - кмк, это все слишком ненадежно
т.к. можно прочитать, а можно и не прочитать, тут как повезет. Пока метод простого перебора показал себя как достаточно эффективный, если тестер не угадал микросхему, то обычно первый-второй тест сразу же фейлится и переходим к следующему. А АЦП, имхо, тоже сложно получается, хотя бы то, что разводка платы сильно усложнится да и прошивка тоже.
Кстати, да - тип корпуса мы можем попробовать определить перед тестом чтобы сразу отсеять кучу микросхем.
По поводу SPI-flash полностью согласен, при необходимости в будущем можно будет ее добавить. Либо SD-карту. Но пока кажется, что до этого не дойдет и 128кб хватит всем :)
По поводу полноты тестов - имхо, нет смысла тестировать вообще все возможные комбинации входов - их может быть нереально много (тем более, если учитывать предысторию), достаточно конечного количества тестов. В любом случае, этот вопрос решается добавлением новых команд в язык описания тестов.
Trol73, На меня один комплект тестера тоже запишите :)
Trol73, Я буду в этом участвовать!
Господа, давайте записываться не здесь!
Trol73,
Внутренние элементы микросхем и дорожки на печатной плате имеют некоторую ёмкость, если этот конденсатор зарядить или разрядить, подтягивающих резисторов и открытых транзисторов с ним не связано, то своё состояние он будет сохранять достаточно долго, чтобы его можно было считать в следующем такте(DRAM кстати тоже на конденсаторах). Проблема только с большой ёмкостью, мы не можем выдать слишком длинный импульс для заряда, поскольку не знаем, нет ли там открытых транзисторов и не устроим ли мы КЗ.Цитата:
По поводу шаманства с выводами в Z-состоянии - кмк, это все слишком ненадежно
До начала тестов и подключения микросхемы к земле и питанию можно просканировать все возможные пары выводов и составить матрицу в которой будет указано ведёт ли себя эта пара как диод. Сканирование выполняется следующим образом: все выводы находятся в режиме входов, на каждый вывод по очереди подаём высокий(низкий) уровень, а на все остальные(тоже поочерёдно) выдаём короткий импульс низким(высоким) уровнем, и сразу считываем, если вернулся обратно, значит там что-то похожее на диод. Если подав на вход A высокий уровень, мы его наблюдаем на входе B, а подав на вход B низкий уровень мы его наблюдаем на входе A, то значит точно похоже на диод. Для КМОП-микросхем с защитными диодами матрицы скорее всего будут одинаковые, но строки и столбцы соответствующие питанию должны быть видны явно, а вот ТТЛ-микросхемы скорее всего будут от КМОП и друг друга отличаться. На равенство сравнивать полученную матрицу с матрицами в базе данных конечно нельзя, но можно искать наиболее похожую.
Конечного количества тестов может быть достаточно для распознавания микросхемы, но полноценным тестированием это назвать сложно. К примеру память, достаточно ли записать/прочитать 1, 10, 100 ячеек? Ясное дело что всех комбинаций тут не перебрать, но проверить что все ячейки способны сохранять различную информацию, что она не стирается вдруг при особой комбинации адреса/данных, очень желательно.Цитата:
достаточно конечного количества тестов. В любом случае, этот вопрос решается добавлением новых команд в язык описания тестов.
Хотя если в описание тестов добавить команды организации циклов, переменные, арифметические операции, возможность присваивания разрядов переменной "списку ног" и наоборот, то можно будет счётчики, сдвиговые регистры и память более полноценно проверять. Z-состояние тоже желательно проверять, микросхемы такие используются, да и сделать несложно.
Да, но если я не ошибаюсь, то дорожка на плате - это не только конденсатор, но еще и антена, на которую можно поймать все, что угодно, от ближайшего wi-fi, до пролетающих в соседней галактике звездолета. Причем, разные дорожки имеют разную длину и геометрию.
Для памяти, очевидно, надо, как минимум, записать 0 и 1 во все ячейки. Но при этом, очевидно, что мы навряд ли сможем в 32кб ОЗУ записать вообще все возможные комбинации. А для регистров, подозреваю, достаточно записать все нули, все единицы и комбинации вида 01010101 и 10101010. Проверять все 256 сочетаний, думаю, тут не обязательно.
Для проверки выводов с ОК и Z-состояний мы решили использовать резисторы подтяжки к земле (резисторы подтяжки к питанию есть в AVR). Подтягивая поочередно к земле и питанию мы можем попробовать угадать входы и выходы тестируемой МС. И таким образом попытаться на первом шаге отсеять большую часть заведомо ненужных тестов.
Прикрепил схему основного модуля тестера.
Trol73, а в какой проге делали предыдущий проект, а то в AtmelStudio 6 жму Build - какая-то ерунда выскакивает, в WinAVR пытался скомпилить - сплошные ошибки! С AtmelStudio вообще не работал (жуткий монстр!), ради этого проекта поставил, поэтому может где-то чего-то не настроил?
Изначально делал в в AtmelStudio 7. Но, во-первых, она только под Windows. А во-вторых, после ее обновления как-то словил кучу проблем.
В итоге, перешел на NetBeans - хоть и монстр, зато открытый и кроссплатформенный. Его использовал как удобный текстовый редактор.
Для сборки проектов запилил свою утилитку на питоне: http://trolsoft.ru/ru/soft/avr-builder. Проверял под Windows и MacOS.
Тестер собирается ей (см. файл make.builder).
Первая партия плат прибыла.
Осталось
1. собрать пробный экземпляр
2. написать софт для компа. Как минимум, необходима возможность пошаговой отладки тестов с визуализацией состояния выводов тестируемой микросхемы. Иначе написание тестов вслепую превращается в боль и страдания.
3. написать и отладить прошивки для нового девайса и блока управления
Текущая версия плат не содержит полевых транзисторов для подачи питания на тестируемую МС. Т.е., особо прожорливые микросхемы им проверять а автоматическом режиме не получится (но ничто не мешает подать питание вручную, разъём на плате для этого предусмотрен). В следующей версии платы хочу добавить их
Сейчас хотелось бы оценить спрос на этот девайс, а именно
1. Комплектация:
а) только платы,
б) платы + детали (все или частично)
в) готовое устройство
2. Насколько важен блок с полевиками и возможности проверять микросхемы с током потребления более 50 мА. Возможно, кому-то не нужен модуль экрана и клавиатуры, если будет нормальный интерфейс с компом
3. Возможно, какие-то пожелания по железной части.
Заинтересованных просьба отписываться в ЛС или на сайт.
И по поводу продажи плат - хотелось бы сначала поиметь рабочий вариант устройства хотя бы в зачаточной форме. Конечно, могу выставить имеющиеся излишки плат на продажу прямо сейчас, но смысл это делать, когда ничего еще не готово и пока не ясно со сроками. Даже нормально оформленной схемы нет. Заказывать платы партиями больше 10 штук пока тоже смысла не вижу - первое время возможны интенсивные изменения.
Заинтересован в варианте 1б.
Интерфейс с компом вообще не интересен. Многие универсальные USB-программаторы имеют функцию проверки логических микросхем.
Гораздо удобнее, на мой взгляд, иметь отдельный девайс, с дисплеем, выводящим всю необходимую информацию.
Вообще хочется полный фарш со всеми фишками, которые задумали. :)
Подозреваю, что многоуниверсальные USB-программаторы могут только проверять логические микросхемы и ставить диагноз: годная/нет. Главная фишка подключения к компу в том, чтобы иметь возможность изучить микросхему, "потыкать в нее палочкой". А если она определяется как нерабочая, то увидеть причину неработоспособности. Для таких вещей дисплея нокии 3310 и 5 кнопок будет явно мало :)
А что если, например, проблема в том, что не работает перевод в Z-состояние какого-то вывода, а это Z-состояние и не нужно?
Или другой пример - недавно я проверял микросхемы, и в некоторых партиях одного вида находил до половины и более брака - не определяются. И тут очень интересно узнать причину, и посмотреть - одна и та же проблема у бедовых МС или разные.
Так же для написания тестов это очень важно. Или если делать программатор РЕ3/РТ4/прочего антиквариата.
Угу, верно. Еще будет возможность поковырять "спиленные" микросхемы, надежнее перебрать все возможные варианты изменения входов(тестеры используют сокращенные алгоритмы), что бы уж наверняка. Еще добавляется возможность анализировать программируемую логику. Так что фича однозначно полезная, правда далеко не все будут пользоваться, да и отладку упростит, как писали выше, опять же, учитывая скорость контроллера, можно и с времянками поиграть.
Собрал девайс - не работает. Но наверное неверно прошил контроллер. Почему то в SinaProg не было активно окно Ext. Fuse, прошил без него. Что не так?
http://www.getchip.net/wp-content/up...g-advanced.png
Вот мои фьюзы:
LOCK BIT = 0x3F
LOW FUSE = 0x7F
HIGH FUSE = 0xD8
EXT FUSE у меги32 вроде как нет и не было
Да я понял, вроде нормально прошил. Я наверное индикатор сжёг. Подал на него 5 вместо 3,3 вольта.
Сжечь так просто подачей навряд ли получилось бы. Возможно, надо настроить контрастность - попробовать разные прошивки. Для начала с контрастностью 65
Я зашивал с 60. Да и подсветка индикатора не раз не появлялась. Питание на контроллере и индикаторе присутствует.
Подсветка индикатора не подключена в тестере по причине отсутствия свободных пинов у меги32.
Можно взять прошивку с максимальным контрастом - экран должен стать чёрным если все работает.
Какой дисплей использован - с красной платой или с синей? Подключён без ошибок?
Ещё хорошо бы посмотреть осциллографом/анализатором наличие сигналов на выводах дисплея в моменты нажатия на кнопки.
Индикатор с красной платой. Вечером попробую прошивку с максимумом.
Индикатору пофиг 5 вольт, он спокойно работает и на пяти продолжительное время.
Сделал рабочий вариант прошивки нового тестера.
Описание буду выкладывать тут.
По платам - количество чистых плат сравнялось с количеством желающих. Просьба тех, кто ранее изъявлял желание на платы первой партии и не утратил его, отписаться в ЛС. Остатки плат, если таковые будут, выставлю на барахолке.
Ждем варианта с полевыми транзисторами. Мне кажется это наиболее приемлемый вариант :)))
П.С. Кстати, а где взять прошивку для последней версии тестера , что-то искал нигде не нашел )))
Добавил прошивку и фьюзы к описанию на сайте
Спасибо,а какие микрухи сейчас проверяются ? Те же ,что и раньше или добавились еще ??
Пока ничего нового не добавлял, да и старые под вопросом :) База тестов целиком из последней версии первого девайса, но проверял я только несколько микросхем.
Следующий шаг - софт для ПК с возможностью пошаговой отладки тестов. Без этого процесс написания тестов несёт боль и страдания :)
Надеюсь, что в ближайшем будущем завершу его рабочую версию и тогда займусь написанием тестов для всех оставшихся микросхем которые у меня есть.
Добрый день.
Trol73, можете уточнить, у Вас на сайте http://trolsoft.ru/ru/sch/ic_tester прошивки выложены под 16-ю или 32-ю мегу?
Спасибо.
На сайте проект называется "Тестер микросхем на ATMega32". Соответственно, прошивка там под atmega32. С некоторого момента тесты перестали влазить в atmega16.