User Tag List

Страница 13 из 29 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 287

Тема: Орион-128: Перспективы развития

  1. #121

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    AlexBel off Igor_t on

    А зачем такой страшный метод доступа к карте ? насколько я понимаю все равно это все будет укладыватся в плисину , а раз так то SPI как я уже говорил реализуется внутрях плиски легко и просто по сути своей это сдвиговый регистр с паралельной загрузкой и парой тригеров в качестве условия начала передачи и флаг окончания оной. Тогда резко упрощается написание драйвера работы с картой. и у меня есть вопрос к Сергею ... а скажи в SD остался бут сектор ? его под начальный загрузчик пользовать можно ? чутку поясню , это к той теме что я озвучивал по поводу прогрузки из последовательной пзухи SPI в озу железом плисины , если мне неизменяет склероз то бут сектор всегда был самым первым на диске , в случае применения SD карты и взможности в ее 0 сектор заатать загрузчик то от пзу можно отказатся вообще ! тоесть плисина при старте может по SPI сливать содержимое этого сектора в срам и заставить проц выполнить то что было слито .
    Igor_t off
    SD с точки зрения структуры хранения информации соответствует схеме MBR-партиций (fdisk), так же как и CompactFlash. Единственно, обычно MBR-sector (сектор с LBA=0) в SD не содержит код бут-сектора (там только нули), а содержит только таблицу разделов (по дефолту - один раздел с FAT).
    --
    Готовое решение в железке для чтения байта с SD это хорошо с той точки зрения, что будет быстро работать. Но это решение получится только для Ориона в ПЛИС, а решение с программным SPI можно будет запустить и на обычном Орионе. Или нет? В-общем надо обдумать.



    ---------- Post added at 09:30 ---------- Previous post was at 09:24 ----------

    Цитата Сообщение от pvlad Посмотреть сообщение
    Конечно IORQ! Сколько же можно плодить наследие РК-86? В адресации можно ориентироваться на Орион-ПРО. Пространство 30Н-9FH - свободно.
    Отлично. Еще бы предусмотреть (ну чисто на всякий случай) такой номер порта, чтобы ПО Спектрума не лезло в этот же порт (и не попортило что-то на SD). Раньше ПО Спектрума портировали, и при этом менялся только код обращающийся к портам F8... и выше (или наоборот не менялся - для совместимого порта FE).

    Кто в курсе про порты Спектрумов?
    Последний раз редактировалось Error404; 15.10.2009 в 11:11.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #121
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #122

    Регистрация
    15.06.2006
    Адрес
    S.Pb
    Сообщений
    5,791
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Кто в курсе про порты Спектрумов?
    Путеводитель по портам ZX Spectrum

  4. #123

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати да, igor_t правильную идею подал. Если взять процедуры по ссылке выше, то на чтение/запись байта будет уходить примерно 400 тактов, т.е. даже при тактовой частоте 5МГц это будет 12-13 Кб/сек, а это как минимум в два раза медленнее флоппи-диска. А если мы сделаем "железный" сдвиговый регистр, который будет передавать сразу после OUT с минимальной тактовой частотой 400КГц (которую должны обеспечивать все карты), то это будет минимум 50 Кб/сек.

    ---------- Post added at 13:47 ---------- Previous post was at 13:42 ----------

    Я попробовал реализовать интерфейс SD-карты в своём эмуляторе (уже на сайте). С теми процедурами оно работает (я выкусил их из исходников). Только я не понял, почему там размер блока устанавливается в 128 байт, а позиционирование - кратно 512 байт. Получается, они используют только четверть доступной области, так как позиционировать по другому нельзя. Поленились сделать буфер сектора
    Последний раз редактировалось b2m; 15.10.2009 в 13:55.

  5. #124

    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Кстати да, igor_t правильную идею подал. Если взять процедуры по ссылке выше, то на чтение/запись байта будет уходить примерно 400 тактов, т.е. даже при тактовой частоте 5МГц это будет 12-13 Кб/сек, а это как минимум в два раза медленнее флоппи-диска. А если мы сделаем "железный" сдвиговый регистр, который будет передавать сразу после OUT с минимальной тактовой частотой 400КГц (которую должны обеспечивать все карты), то это будет минимум 50 Кб/сек.

    ---------- Post added at 13:47 ---------- Previous post was at 13:42 ----------

    Я попробовал реализовать интерфейс SD-карты в своём эмуляторе (уже на сайте). С теми процедурами оно работает (я выкусил их из исходников). Только я не понял, почему там размер блока устанавливается в 128 байт, а позиционирование - кратно 512 байт. Получается, они используют только четверть доступной области, так как позиционировать по другому нельзя. Поленились сделать буфер сектора
    А что мешает реализовать интерфейс SPI и I2C чисто аппаратно, как это сплошь и рядом делается в "однокристалках"?
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  6. #125

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ничто не мешает. Просто если кто-то захочет повторить нашу конструкцию не в Альтере, а по старинке, на рассыпухе, или захочет подключить SD-карту к имеющемуся Ориону, то схема подключения SD-карты значительно усложнится.

    ---------- Post added at 15:38 ---------- Previous post was at 15:32 ----------

    Я тут подумал, может как-то стандартизировать загрузочное ПЗУ? Ведь там есть все процедуры для работы с "носителем". А загруженная система могла бы работать с "носителем" через это ПЗУ, тогда она будет независима от типа носителя, будь то SD-карта, CF-карта или винчестер, или даже старый добрый флоппик, а может даже и ROM диск. Можно было бы сделать несколько драйверов и переключать их каким либо портом, а если процедура начальной загрузки будет во всех драйверах одинаковая и на одном и том-же месте ПЗУ, то она и сама могла бы переключаться на следующий драйвер при неудачной загрузке.

  7. #126

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Ничто не мешает. Просто если кто-то захочет повторить нашу конструкцию не в Альтере, а по старинке, на рассыпухе, или захочет подключить SD-карту к имеющемуся Ориону, то схема подключения SD-карты значительно усложнится.

    ---------- Post added at 15:38 ---------- Previous post was at 15:32 ----------

    Я тут подумал, может как-то стандартизировать загрузочное ПЗУ? Ведь там есть все процедуры для работы с "носителем". А загруженная система могла бы работать с "носителем" через это ПЗУ, тогда она будет независима от типа носителя, будь то SD-карта, CF-карта или винчестер, или даже старый добрый флоппик, а может даже и ROM диск. Можно было бы сделать несколько драйверов и переключать их каким либо портом, а если процедура начальной загрузки будет во всех драйверах одинаковая и на одном и том-же месте ПЗУ, то она и сама могла бы переключаться на следующий драйвер при неудачной загрузке.
    Была такая мысль, когда я делал в Мониторе п\п чтения с CF чтобы грузиться с CF из монитора (и есть дополнительный вход в таблице переходов - F834). Но в Монитор F800 стандартного Ориона без критичного "урезания" прочих п\п при всем желании влезает только чтение с CF. Поэтому код этих п/п я все же вынес и в БИОС CPM тоже (там и чтение, и запись). Если такая структура (п\п в отдельном ПЗУ) будет только в ОрионFPGA, то придется разрабатывать несколько "веток" BIOS-ов CP/M - расслаивая ее на несколько вариантов для одного и того же носителя, да и возможно подключенного одинаково. Т.е. вопрос в одном - что делать в этом случае со старым Орионом-128. Не думаю, что будет правильно окончательно его бросить (вместе со всеми у кого он есть и работает).
    Последний раз редактировалось Error404; 15.10.2009 в 15:11.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  8. #127

    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,454
    Спасибо Благодарностей отдано 
    195
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    99 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AlexBel off Igor_t on
    Цитата Сообщение от Error404 Посмотреть сообщение
    Готовое решение в железке для чтения байта с SD это хорошо с той точки зрения, что будет быстро работать. Но это решение получится только для Ориона в ПЛИС, а решение с программным SPI можно будет запустить и на обычном Орионе. Или нет? В-общем надо обдумать.
    как мне кажется , реализовать SPI для реала не так уж сложно как кажется на первый взгляд (это можно сделать на какой нибуть совсем уж мелкой плисине или например на 5вольтовом флексе коих мне подкинул свофски и которыми я готов поделится в случае надобности, к тому же мне видится что можно этот узел реализовать на рассыпухе типа пару тригеров , счетчик и сдвиговый регистр с паралельной загрузкой), тут как мне кажется сложность возникнет в другом , это прогрузка памяти реала из бут сектора , хотя этот вариант тоже решабелен компромисом .Например :
    1 делается апаратный SPI подобный фпгашному варианту и вешается на теже порты
    2 пзу ориона делается отключаемым , вернее подключаемым только на время сброса и отключаемое по установке/сбросу какогонибуть битика в порту. озу при подключенном ПЗУ работает только на запись , а при отключенном пзу по адресам F800 -FFFF отображается ОЗУ но блокируется запись в него .
    3 в пзу кладется рутина чтения блока с апаратного SPI , туда же как в варианте с фпга
    При этом имеем то что мы можем прогружать любой монитор и максимально совмещаемся с вариантом на фпга.

    Цитата Сообщение от Error404 Посмотреть сообщение
    Если такая структура (п\п в отдельном ПЗУ) будет только в ОрионFPGA, то придется разрабатывать несколько "веток" BIOS-ов CP/M - расслаивая ее на несколько вариантов для одного и того же носителя, да и возможно подключенного одинаково. Т.е. вопрос в одном - что делать в этом случае со старым Орионом-128. Не думаю, что будет правильно окончательно его бросить (вместе со всеми у кого он есть и работает).
    лично мне тоже дорог старый орион .... как сказанно в одном фильме "у меня очень глубокие чуства по отношению к нему" )))))
    Igor_t off

    ---------- Post added at 21:03 ---------- Previous post was at 20:59 ----------

    AlexBel off Igor_t on

    Цитата Сообщение от pvlad Посмотреть сообщение
    А что мешает реализовать интерфейс SPI и I2C чисто аппаратно, как это сплошь и рядом делается в "однокристалках"?
    я бы несоветовал забиватся а i2c потому как она вопервых тормоз нереальный , вовторых на порядок сложнее в реализации железно , да и програмно она сложнее .... SPI куда более правильный вариант

    Igor_t off

  9. #128

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AlexBel, ткни пжалуста носом в HDL-SPI какойнить попроще для фкуривания
    Я тут сидел свой код изобретал, теперь хочу на творения мастеров поглядеть.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  10. #129

    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,454
    Спасибо Благодарностей отдано 
    195
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    99 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AlexBel off Igor_t on
    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    AlexBel, ткни пжалуста носом в HDL-SPI какойнить попроще для фкуривания
    только это Игорь ))))
    нечто мудренное , если склероз неизменяет то это готовый модуль для работы с флешой типа 25хх
    Код:
    module spi
    (
    input				clk,
    
    input				start,
    input				wr,
    input				wr_en,
    output	reg			done,
    
    input		[7:0]	spi_command,
    input		[15:0]	spi_addres,
    output	reg	[7:0]	spi_data_out,
    input		[7:0]	spi_data_in,
    
    output	reg			spi_clk,
    output	reg			spi_cs,
    output	reg			spi_di,
    input				spi_do
    
    );
    
    initial	done			=	0;
    initial	spi_data_out	=	8'h00;
    initial	spi_clk			=	0;
    initial	spi_cs			=	0;
    initial	spi_di			=	0;
    
    reg			wr_en_reg;
    reg			wr_reg;
    reg	[7:0]	spi_command_reg;
    reg	[15:0]	spi_addres_reg;
    reg	[7:0]	spi_data_in_reg;
    
    reg	[3:0]	divider;
    reg [1:0]	mode;
    reg [3:0]	count_addr;
    reg [2:0]	count_data;
    reg	[1:0]	delay_done;
    
    always@ (posedge clk)
    begin
    if (start == 1'b1) 
    	begin
    		if (divider < 4'd12 ) 	
    			begin
    				divider <= divider + 1'b1;
    				if (divider == 4'd6) 	
    					begin 
    						if (spi_clk == 1'b1)
    							begin
    								if (mode == 2'd0)
    									begin
    										count_data <= count_data + 1'b1;
    										if(count_data == 3'd7)										
    											begin
    												if (wr_en_reg == 0)
    													begin
    														mode <= mode + 1'b1;
    													end
    												else
    													begin
    														mode <=  2'd3;
    													end
    											end
    									end
    								if (mode == 2'd1)	
    									begin
    										count_addr <= count_addr + 1'b1;
    										if(count_addr == 4'd15)
    											begin
    												mode <= mode + 1'b1;
    											end
    									end
    								if (mode == 2'd2)
    									begin
    										count_data <= count_data + 1'b1;
    										if(count_data == 3'd7)	
    											begin
    												mode <= mode + 1'b1;
    											end
    										if (wr_reg == 1'b0)
    											begin
    												if (spi_clk == 1'b1) 
    													begin
    														spi_data_out[~count_data] <= spi_do;
    													end
    											end
    									end
    							end	
    						else
    							begin
    								if (mode == 2'd3) 
    									begin
    										spi_cs <= 1'b1;
    										spi_di <= 1'b0;
    										delay_done <=  delay_done + 1'b1;
    									end
    								if(delay_done == 2'b11)	done	<= 1'b1;
    							end
    					end
    			end
    		else
    			begin
    				divider <= 4'd0;
    				if (spi_cs == 1'b0)
    					begin
    						spi_clk <= ~spi_clk;
    					end
    			end
    		if (mode == 2'd0)
    			begin
    				spi_di <= spi_command_reg[~count_data];
    				spi_cs <= 0;
    			end
    		if (mode == 2'd1)
    			begin
    				spi_di <= spi_addres_reg[~count_addr];
    			end	
    		if (mode == 2'd2)
    			begin
    				if (wr_reg == 1'b1)
    					begin
    						spi_di	<= spi_data_in_reg[~count_data];
    					end
    				else
    					begin
    						spi_di <= 1'b0;
    					end
    			end
    	end
    else
    	begin
    	wr_en_reg		<=	wr_en;
    	divider			<=	4'd0;	
    	count_addr		<=	4'd0;
    	count_data		<=	3'd0;
    	mode			<=	2'd0;
    	wr_reg			<=	wr;
    	delay_done		<=	2'b00;
    	done			<=	1'b0;	
    	spi_command_reg	<=	spi_command;
    	spi_addres_reg	<=	spi_addres;
    	spi_data_in_reg	<=	spi_data_in;
    	spi_cs			<=	1'b1;
    	spi_clk			<=	1'b0;
    	spi_di			<=	1'b0;
    	end
    end
    
    endmodule
    блин а тег code тут работает ?????

    Igor_t off

  11. #130

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    реализовать SPI для реала не так уж сложно как кажется на первый взгляд (это можно сделать на какой нибуть совсем уж мелкой плисине или например на 5вольтовом флексе коих мне подкинул свофски и которыми я готов поделится в случае надобности
    Это не проблема. У меня валяются мелкие EPM3032 - 7064, могу зашить их и разослать желающим в почтовом конвертике.

    ---------- Post added at 21:27 ---------- Previous post was at 21:22 ----------

    Цитата Сообщение от AlexBel Посмотреть сообщение
    только это Игорь ))))
    Да, я понял
    Блин, кнопочка "спасибо" опять пропала
    Я правильно понял, что SD работает на SPI 0?
    И в чем принципиальная разница между SPI и I2C? Кода на I2C у тебя рядом не валяется?
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

Страница 13 из 29 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 48
    Последнее: 03.01.2017, 14:10
  2. Перспективы игростроения.
    от moroz1999 в разделе Игры
    Ответов: 71
    Последнее: 21.09.2015, 14:36

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •