nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 08:37



Reply to topic  [ 193 posts ]  Go to page 1, 2, 3, 4, 5 ... 13  Next
Реальный 8086/88 + FPGA 
Author Message
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Хотя меня пытались убедить, что чисто теоретический рассказ о грандиозных планах лучше пускай небольшого, но реально работающего устройства, я все же решил остаться при своем мнении и рассказывать только о том, что реально сделано.

Тема с компьютером на 86/88 меня заинтересовала, но я уже удовлетворил свои желания попробовать разные способы макетирования - МГТФ, беспаечная макетная плата, монтаж накруткой (вообще не пошел - наверное, руки совсем кривые).

Соответственно, решил одним махом двух зайцев убить - во первых, научиться разрабатывать печатные платы и, во вторых, получить способ очень быстрого экспериментирования вообще без проводов.

В принципе, я подобное уже делал - http://www.nedopc.org/forum/viewtopic.p ... =15#113957 , однако обилие МГТФ и там у меня быстро сбило энтузиазм.

А тут помучил пару дней Eagle и на выходе родилось следующее:

Image

Эта конструкция подключается к GPIO разъему отладочной платы от Altera, и дальше можно творить, чего душа пожелает.

Так как это был первый опыт разработки печатной платы, то решил обойтись самым минимумом - процессор (можно вставить как 8086, так и 8088) плюс преобразователи уровней (отладочная плата работает максимум с 3.3В).

Причем преобразователи уровней попробовал новые - в отличие от использованных ранее в плате для 8080, эти не требуют сигнала направления для двунаправленных сигналов, все определяется автоматически. Есть там, правда, из-за этого некоторые ограничения, но в данном случае они роли не играют.

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

Что дальше - не уверен. Если интерес у меня не начнет плавно угасать (что вполне может быть), то подумаю, в какую сторону двинуться - остальное все внутри FPGA, или все-таки сделать новую платку с бОльшим количеством корпусов (типа 59, 37 и т.д.).


13 Nov 2014 10:58
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Аплодисменты. Респект и уважуха. :kruto:


13 Nov 2014 11:03
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
newold86 wrote:
А тут помучил пару дней Eagle и на выходе родилось следующее:

Я несколько озадачен... С одной стороны есть непротрав, с другой стороны via без "чопиков" :roll:
Плата заводсткая или самоварная? Если второе, то как сделано меднение переходных отверстий?

newold86 wrote:
Эта конструкция подключается к GPIO разъему отладочной платы от Altera, и дальше можно творить, чего душа пожелает.

Так как это был первый опыт разработки печатной платы, то решил обойтись самым минимумом - процессор (можно вставить как 8086, так и 8088) плюс преобразователи уровней (отладочная плата работает максимум с 3.3В).
Респект!
Меня не так давно посещала подобная мысль, сделать плату с панелькой DIP40 и FPGA для совмещения последней с любыми процессорами в DIP40. Но пока не стал развивать эту мысль, т.к. есть куча недоделок и хотелок более первой необходимости.


13 Nov 2014 23:32
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Post 
Наверное, на фото что-то плохо видно - никаких непротравов там нет, все нормально, плата заводская. Флюс не смывал, так что от него видны пятна.

А вообще у меня разные мысли есть насчет отладочной платы для реальных процессоров с FPGA. Но пока решил совместно с DE2-115 все делать - глупо повторять все индикаторы, кнопки и т.п., что уже установлено. А вот если дойдет до чего-то минимально законченного, там уже можно еще раз подумать.


14 Nov 2014 00:11
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Post 
Кстати, вопрос - существует ли разъем типа установленного, но только "мама", чтобы без шлейфа соединять, а просто напрямую плату в плату втыкать ?

Вроде простейшая вещь, но, как ни странно, пока даже не нашел признаков существования такого...

---------------

upd - все, нашел - просто плохо смотрел


14 Nov 2014 03:07
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
newold86 wrote:
Причем преобразователи уровней попробовал новые - в отличие от использованных ранее в плате для 8080, эти не требуют сигнала направления для двунаправленных сигналов, все определяется автоматически. Есть там, правда, из-за этого некоторые ограничения, но в данном случае они роли не играют.


Блин, такое впечатление, что все-таки есть проблемы с этими преобразователями уровней. Возможно из-за того, что пины FPGA защищены диодами и резисторами.

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


14 Nov 2014 16:07
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Честно не работал с FPGA, но может быть стоит попробовать поконфигурировать ея пины в разные режимы: IN/OUT/TRISTATE/PULLUP и т.п.?


14 Nov 2014 22:39
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Post 
jdigreze wrote:
Честно не работал с FPGA, но может быть стоит попробовать поконфигурировать ея пины в разные режимы: IN/OUT/TRISTATE/PULLUP и т.п.?


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

Кинулся было переделывать платку на проверенные 8T245 (с явным контролем направления), но пока уперся в то, что не могу придумать красивого способа получить сигнал направления (так как шина данных мультиплексирована с адресом).


15 Nov 2014 01:49
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
То, что я углядел в ДШ:
При MN/MX=1 за направление отвечает DT/R: =1 ADx передают, =0 ADx принимают. Относительно проца.
При MN/MX=0 нужно смотреть на S0-S2.


15 Nov 2014 05:49
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Post 
К сожалению, не так все просто. Я ведь не напрасно ранее упомянул о проблеме мультиплексирования данных и адреса. Писать много лень (тем более, я еще не до конца разобрался), но общий смысл в том, что нужно обеспечить открытость AD внутрь FPGA на все время действия ALE и еще чуть-чуть (так как по спаду ALE защелкиваются младшие разряды адресов).

Естественно, как я уже говорил, есть простой способ - поставить защелку младших разрядов адресов прямо на платку, и потом направить уже защелкнутые адреса внутрь FPGA через однонаправленный согласователь уровня. А параллельно с этим еще и направить внутрь FPGA шину AD через двунаправленный согласователь, как раз управляемый DT/R. Только коряво как-то получается - совершенно неохота ставить на платку то, что одним движением мышки внутри FPGA делается, да и понадобится дополнительно 8 пинов.


15 Nov 2014 06:27
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Ну да, но по-моему, ты усложняешь насчёт ALE.
Сейчас более внимательно посмотрел диаграмму в MN режиме.
В общем, получается, что, если взять функцию (/RD or /INTA or DT/R), то получим искомый сигнал направления с активным низким на чтение. От этого уже можно попробовать разбираться дальше.

Порой мне очень жаль, что нет под рукой ни 8086, ни 8088...


15 Nov 2014 08:32
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Tronix, я где-то на zx.pk видел, ты IDE-HDD ROM под эмулятором 8086 тестировал...
А в нём можно ROM BIOS посадить на нужные адреса и посмотреть в отладке?

_________________
iLavr


15 Nov 2014 18:31
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
Post 
Lavr wrote:
Tronix, я где-то на zx.pk видел, ты IDE-HDD ROM под эмулятором 8086 тестировал...
А в нём можно ROM BIOS посадить на нужные адреса и посмотреть в отладке?


Я пользую PCem, отладчика там нет. Но есть сорцы. Нужно что-то посмотреть, например что в порт лезет или что по такому-то адресу меняется - пишем в сорцы в нужное место if (port == 0xblabla) printf("DEBUG: PORT = %u,%u",port,value); пересобираем и вуаля ;)

В борще (bochs) по слухам есть дебагер мегамощный, но я не осилил.


15 Nov 2014 23:44
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Нельзя на ночь глядя посты писать, ибо:
jdigreze wrote:
... функцию (/RD or /INTA or DT/R), то получим искомый сигнал направления с активным низким на чтение.
будет всегда равно 1.
А вот ((/RD or DT/R) and (/INTA or DT/R)) должно давать искомый низки на чтение.


16 Nov 2014 00:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Tronix wrote:
Я пользую PCem, отладчика там нет. Но есть сорцы. Нужно что-то посмотреть, например что в порт лезет или что по такому-то адресу меняется - пишем в сорцы в нужное место if (port == 0xblabla) printf("DEBUG: PORT = %u,%u",port,value); пересобираем и вуаля ;)

В борще (bochs) по слухам есть дебагер мегамощный, но я не осилил.

Спасибо, Tronix! Выяснилось, что кроме отладчика, мне ещё и эмулятор процессора NEC V40 нужен. :lol:
Но кое в чем смог разобраться и под обычным DEBUG в окне MS-DOS...

_________________
iLavr


16 Nov 2014 06:22
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 193 posts ]  Go to page 1, 2, 3, 4, 5 ... 13  Next

Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.