|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
CGA и CF IDE адаптер на Altera MAX10
Author |
Message |
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Спасибо ! Схема несложная, но вижу проблему в эмуляции 8051 - почти однозначно есть что-то, завязанное на конкретные скорости обработки, а FPGA ядра точно будут работать не совсем идентично. Без исходников прошивки сложновато будет... Но попробовать можно
|
06 Nov 2017 23:16 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Просто если эта хрень "в принципе" работать будет, то можно и клон саундбластера восьмибитного сделать, а то у людей какая-то проблема со звуком ISA 8.
|
06 Nov 2017 23:21 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Правильнее, конечно, сразу на HDL мутить... Вообще я давно посматриваю на предмет утащить SB из проекта AO486, но это довольно непросто для меня - там все завязано на шину Avalon...
|
06 Nov 2017 23:46 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Пришла смутная мысль в голову, копаться сильно не стал, просто заменил модуль работы с SD картой по SPI на другой (тоже мой, просто о нем я уже умудрился забыть), после чего вроде зависания прекратились... Нужно бы DMA добавить, чтобы скорость поприличнее получилась. Никто меня носом не ткнет в код для копирования блока данных из порта в память ? А то я совсем разленился, неохота документацию читать и вспоминать
|
07 Nov 2017 23:00 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
В смысле код для CPU или FPGA? Вот сетап DMA под чтение с флопа, выдернул из своего биоса. Но это только сетап, дальше диску отправляется команда на обмен, и, собственно, происходит обмен | | | | Code: DMA_CH2_BASE = 04h DMA_CH2_CNTR = 05h DMA_MODE = 0Bh DMA_CLEAR_FF = 0Ch DMA_CH2_PAGE = 81h ;------------------------------------------------------------------------------ ;----- cf FDCSetupDMA(si = cmd, ES:di->dst, byte [bp]=sector count) ----------- ;------------------------------------------------------------------------------ align 2 FDCSetupDMA: cli ;защелка и режим out DMA_CLEAR_FF,al mov ax,si out DMA_MODE,al ;адрес mov ax,ES mov cl,4 rol ax,cl mov ch,al and al,0F0h add ax,di adc ch,0 ;пишем push ax out DMA_CH2_BASE,al mov al,ah out DMA_CH2_BASE,al mov al,ch out DMA_CH2_PAGE,al ;кол-во mov ah,[bp] mov al,0 shr ax,1 ;sect*128 push ES push di les di,[1Eh*4] mov cl,[ES:di+TFDC_DPT.BPS] pop di pop ES shl ax,cl ;sect*BPS dec ax push ax out DMA_CH2_CNTR,al mov al,ah out DMA_CH2_CNTR,al sti pop dx pop ax add ax,dx jnc .1 mov [FDCRetCode],FDC_DMA_FAIL .1: retn
| | | | |
Если код для FPGA, то я вообще вопроса не понял.
|
08 Nov 2017 00:49 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Естественно, для CPU Есть порт, из которого нужно прочитать 512 байт и положить в нужное место в памяти
|
08 Nov 2017 00:58 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Нифига не естественно, учитывая, что код кучи разных биосов у вас есть Не хотелось верить, что кто-то ленив больше, чем я. Думал удерживать первенство еще годков 20 как минимум Инит ДМА, старт команды диску (512 байт "каг бэ" намекает, что порт из клана дисковых). Собсна, все. Радуемся свеженькому сектору в памяти.
|
08 Nov 2017 05:15 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Ну, диска тут особо нет - это для SD карты, поэтому еще буду доделывать соответствующий модуль FPGA, чтобы нужные команды принимал и сигналы генерил... Хотя могу плюнуть и так и оставить с rep movsb - и так дает около 200KB/s чтения на стандартной XT. Хотя с DMA интереснее P.S. Кстати, такое впечатление, что таинственные зависания происходили из-за метастабильности. Эх, пора полностью на синхронный дизайн переходить, но он так не вяжется с PC железом...
|
08 Nov 2017 05:35 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Интерфейс тоже называется "SD карта"? Или все-таки IDE? Или на суть команд влияет наличие вращающихся блинов? Вэлкам ту клаб, как грицца. Метастабильность как явление, я еще осилил. Но вот методы борьбы с оной, как и конкретные прописки по этому поводу в .sdc - увы. Маловато практики, учитывая, что ссыклон 4 быстрее всего забортного железа на порядок, а иногда и на два. Ладно, это уже оффтоп, проехали.
|
08 Nov 2017 05:49 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Интерфейс - мой собственный от начала и до конца (сама карта физически подключена по SPI), поэтому использую также собственный обработчик INT13 при обращениях к "жесткому диску".
|
08 Nov 2017 05:56 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Гмммм... Ну так тогда вам и писать код от начала и до конца. Тем более не понял исходного вопроса, если стандартный код не подходит.
|
08 Nov 2017 06:05 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Просто неохота заново разбираться с программированием 8237 (и прочего связанного). Я предполагаю, что где-то есть уже готовый кусок кода, который просто берет с помощью DMA из порта нужное количество байтов и запихивает их в память. На входе (условно говоря) - адрес порта, адрес памяти и количество байт. Что обидно - я вообще все это писал, только было это около 25 лет назад...
|
08 Nov 2017 06:13 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Зачем? В смысле, что за разработка была? Интересно просто...
|
08 Nov 2017 07:12 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Давайте определимся. Либо междумордие стандартное, и тогда работают все куски кода из биоса, включая приведенное мной (по мотивам PC/ХТ, слегка причесаное под себя), либо оно ни разу не стандартное, и тогда (увы) это ваши персональные грабли. К чему надо быть готовым, рожая собственные интерфейсы. "Готовых" на 100% кусков кода нет и быть не может, просто потому что их никто не писал. Потому что даже в стандартном PC биосе есть подпрограммы "setup_transfer", "send_fdc_cmd", "send_hdd_cmd" и т.п. Их нужно просто просмотреть и адаптировать.
|
08 Nov 2017 07:16 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Драйверы сетевых адаптеров
|
08 Nov 2017 09:57 |
|
|
Who is online |
Users browsing this forum: No registered users and 20 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
|
|