Давным давно для ремонта пришлось собрать на коленке "эмулятор ISA":
В работающем обычном старом компе со вставленной ISA платой я упарился лазить с осцылом и лог анализаторами - очень не круто в динамике искать, что именно отвалилось. Сигналов много, и они довольно быстрые, и понять что где именно не работает - сложно. Решил сделать такой вот "эмулятор" ISA шины, что бы сигналами можно было вообще пошагово управлять. Основными циклами (чтение из порта, запись в порт, чтение из памяти, запись в память), ну и даже вообще каждым отдельным сигналом по отдельности.
Камень воткнул какой валялся на столе, а валялся STM32F302RDT6. Так себе, конечно, контроллер для ногодрыга, да и вообще для данной задачи в целом, но какой был :-E~ Шину данных напрямую завел на 5в толерантные пины, подтянул 10к к 5V_VCC. Шину адреса через 3 защелки 555ИР23. Остальные управляющие сигналы к 5в толерантным пинам напрямую. Генерацию OSC 14,3 MHz сделал отдельно на 155ЛН1. Питается махарайка от +12В. Далее 3.3V на МК через обычный линейник 1117. Пять вольт пробовал тоже сперва через 7805, но оно греется как ад, поэтому вкорячил DC/DC 2.5A на TPS54260 и все холодненькое. Ну и с МИНУС 12 вольтами вообще засада, как я только над бедной mc34063 не издевался. Не возжелала она давать -12 вольт. Максимум что удалось от нее добиться - где-то около минус 8 вольт и падает в зависимости от нагрузки. Пробовал вместо нее поставить ту же TPS54260 и включить как negative voltage, но почему-то потерпел фейл - то работает, то дырка в микросхеме. После пятка штук решил прекратить эксперименты и вернулся к mc34063 и ее -8 вольтами. В принципе, операционникам на исследуемой плате хватило.
Чисто ради лулзов включал и VGA видюху, утянув код инита с http://tinyvga.com/avr-isa-vga и поправив сорцы под STM32:
Ну, всё показывало:
Но, - медленно. В смысле текст то летает, а вот на графике уже всего кадров 10 в секунду где-то на любимом mode 13h, все-таки проброс 64Кб с HAL'овскими шевелениями ногами у STM32 - такое себе.. Конечно, можно и регистрами, GPIOx->BSR и как там они, но все равно до реальной скорости ISA не дотянет где-то наполовину. Но такой задачи и не стояло.
Здесь уже с более-менее нормальной системой питаний, в таком виде где-то и валяется на полках уже лет 5:
В принципе, удобно - выставил на шину данных 0x55h и смотришь ослом как они прошли через 74ls245 на исследуемой плате. Потом выставил 0xAAh и то же контролируешь как оно все прошло. Если есть хоть какое-то понимание как исследуемый девайс работает, можно осуществить запись в необходимый порт и остановить - посмотреть и исследовать реакцию девайса. Можно записать в память и остановить - так же проконтролировать все сигналы на девайсе. И тд.
Но щаз бы уже все делал по-другому конечно, если бы было нужно :-p









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