Важная информация

User Tag List

Страница 4 из 18 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 173

Тема: Компьютер "Агат-7": Реализация на ПЛИС (DE1)

  1. #31
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    За прошедшую неделю пришлось пересобрать схему на макетке (первая фотка).
    Изначально планировалось запускать всю схему на 3.3V. Но потом я понял, что 12Мгц может не хватить, а чтобы запустить контроллер на 20Мгц надо 5V. Тогда в качестве временного решения я начал использовать ПЛИС на DE1 в качестве преобразователя уровней. Изначальное размещение на макетке не предусматривало этого и кончилось все пучками проводов. Во время прошивки контроллера где-то что-то отошло и он прошился криво и перестал отзываться на любые попытки, включая внешний генератор.
    Был заказан новый контроллер (2 на всякий случай ) и кое-что еще, чтобы сделать все по уму. В итоге на макетке поставил регуляторы напряжения LV7805 для 5V и LD1117V33 для 3.3V, сделав таким образом независимое от De1 питание.
    Кроме того, пришлось сделать согласование уровней 3.3V <-> 5V. Для LCD требуется 6 однонаправленных сигналов 5V -> 3.3V и один двунапрвленный 5V <-> 3.3V. Для SD карты требуется 3 сигнала 5V -> 3.3V и один 5V <- 3.3V (последний можно подключить и без преобразования). Таким образом надо 9 однонаправленных 5V -> 3.3V, один двунапрвленный 5V <-> 3.3V и один необязательный 5V <- 3.3V.
    В качестве решения использовал преобразователь SN74LVC4245 (тот что побольше на второй фотке), который позволяет передавать 8 сигналов из 5V в 3.3V или наоборот в зависимости от состояния одной из ножек. Чип достаточно дешев ($1.86 в розницу с бесплатной доставкой) и позволяет решить проблему для 8 из требуемых 9 однонаправленных преобразований.
    Для остальных сигналов был использован двунаправленный преобразователь TXB0104 (тот что поменьше на второй фотке). Он позволяет передавать только 4 сигнала, но зато каждый из сигналов автоматически и независимо передается в любую сторону. Учитывая, что этот чип может передавать вдвое меньше сигналов, чем предыдущий, его цена достаточно высока ($2.49 в розницу), поэтому его нецелесообразно было использовать для однонаправленной передачи. К этому чипу был подключен оставшийся девятый однонаправленный сигнал, двунаправленный сигнал для LCD и, так как все равно оставались две свободные ноги, то и сигнал с 3.3 на 5V для SD карты.
    Оба чипа я не нашел в DIP, поэтому пришлось изготовить платку для макетки (вторая фотка).
    Теперь, когда все надежно собрано и работает автономно от DE1, наконец-то приступаю к соединению моего "дисковода" с DE1. Продолжение следует
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	05082011001_2.jpg 
Просмотров:	313 
Размер:	94.5 Кб 
ID:	28558   Нажмите на изображение для увеличения. 

Название:	05082011002_2.jpg 
Просмотров:	316 
Размер:	94.5 Кб 
ID:	28559  
    Все детали проектов ЮТ-88 на ПЛИС, АГАТ-7 на ПЛИС и прочее в моем блоге на http://electronicsfun.net

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

  3. #32
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так как на последние мои апдейты никаких комментариев не последовало, то можно сделать вывод, что читателем это очень интересно, но нечего добавить, или всем наплевать Видимо я по натуре оптимист, потому предполагаю первое , следовательно очередной апдейт
    Сейчас у меня не очень много свободного времени для проекта, но он все же двигается, хоть и медленно. За это время был доделан "дисковод". На данный момент он может работать только в режиме чтения и только с дисками 140к. Кроме того имеются некоторые шероховатости в его ПО и требуется его интенсивное тестирование с разными программами. Очередное спасибо Voldemar за консультации, связанные с работой дисковода и его отладкой.
    Кроме того, были доделаны модули ДопОЗУ (32 кб) и ЭмПЗУ (32 Кб). Таким образом, на данный момент компьютер имеет свои полные 96 кб памяти. Работа всех модулей памяти была успешно протестирована с помощью штатного теста памяти, который, в свою очередь, был загружен из образа при помощи моего "дисковода". На прилагаемых фотках работа "ТЕСТА ПАМЯТИ" и дисплей "дисковода" во время работы (прошу прощения за качество фото).
    Следующие шаги - тестирование и отладка "дисковода" с различными образами и добавление остальных графических режимов (если помните, сейчас работает только режим АЦР-32).
    Пока все
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	27082011002_2.jpg 
Просмотров:	300 
Размер:	79.0 Кб 
ID:	28970   Нажмите на изображение для увеличения. 

Название:	test_ozu.jpg 
Просмотров:	321 
Размер:	81.0 Кб 
ID:	28972  
    Все детали проектов ЮТ-88 на ПЛИС, АГАТ-7 на ПЛИС и прочее в моем блоге на http://electronicsfun.net

  4. #33
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,847
    Спасибо Благодарностей отдано 
    84
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    167 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Santechnik Посмотреть сообщение
    читателем это очень интересно, но нечего добавить
    Именно так. Сам я для своей DE1 вряд-ли чего-то паять буду. Вот если бы это всё было внутри DE1, тогда я бы подключился

  5. #34
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    657
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Очень интересно. Просто правда же, сказать особенно нечего. Всякий раз смотрю и молча восхищаюсь, думаю, -- "ух ты!".
    Больше игр нет

  6. #35
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я очень рад, что проект интересен. Спасибо! Небольшой апдейт: проект движется, но, к сожалению, все еще не могу уделять ему достаточно времени. И по всей видимости в октябре и вовсе такой возможности не будет: в начале месяца переезд, а в конце - экзамен. Но зато в ноябре развернусь!
    Уперся в проблему, что "дисковод" не хотел читать правильно дорожки после примерно 3 или 4-ой. Сегодня догадался в чем дело - необходим специфический тип переменной для функции сдвига по файлу библиотеки FatFS, которую я использую для доступа к карте памяти. После исправления все заработало. Вот ШКОЛЬНИЦА и загруженная РАПИРА с этого диска. Штатный Бейсик загружается, но почему-то после этого начинает печатать Ъ на экране, как будто залипла клавиша. Похоже Бейсик по другому опрашивает клаву. Буду разбираться с ним, а также тестировать другие образы.
    И еще, при включении питания дисковода в 9-ти случаях из 10-ти микроконтроллером не определяется SD карта. После нажатия Reset, карта определяется и дальше работает без проблем. В принципе мешает не сильно, но как-то это неправильно. Интересно, от чего это может быть?
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	21092011001_2.jpg 
Просмотров:	221 
Размер:	93.8 Кб 
ID:	29393   Нажмите на изображение для увеличения. 

Название:	21092011002_2.jpg 
Просмотров:	275 
Размер:	94.4 Кб 
ID:	29394  
    Все детали проектов ЮТ-88 на ПЛИС, АГАТ-7 на ПЛИС и прочее в моем блоге на http://electronicsfun.net

  7. #36
    Veteran Аватар для AlexBel
    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,325
    Спасибо Благодарностей отдано 
    156
    Спасибо Благодарностей получено 
    126
    Поблагодарили
    76 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если используешь либу от Чена, то как у тебя инициализируется файловая система и подключается карточка? Пришли этот участок кода.

  8. #37
    Activist Аватар для Кирлиан
    Регистрация
    20.05.2009
    Адрес
    Москва
    Сообщений
    479
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Слежу. Интересно. Нечего добавить.

  9. #38
    Veteran
    Регистрация
    30.08.2005
    Адрес
    Питер
    Сообщений
    1,213
    Спасибо Благодарностей отдано 
    85
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тоже. Очень интересно.
    Собираю в коллекцию советские калькуляторы и компьютеры.
    Мой сайт: http://www.leningrad.su/museum/

  10. #39
    Guru Аватар для breeze
    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,692
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    30 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Аналогично Одна из первых и любимых игр на Агат была — Bolo
    (๑•̀ㅂ•́)و✧ Doors UI → https://t.me/doorsui | https://t.me/atari_xl_xe ← Atari XL/XE (●´ω`●)ゞ

  11. #40
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да код простой:

    Код:
    driveStatus = disk_initialize(0);
    Функция сама тоже от Чена:

    Код:
    /*-----------------------------------------------------------------------*/
    /* Initialize Disk Drive                                                 */
    /*-----------------------------------------------------------------------*/
    
    DSTATUS disk_initialize (
    	BYTE drv		/* Physical drive nmuber (0) */
    )
    {
    	BYTE n, cmd, ty, ocr[4];
    	
    	if (drv) return STA_NOINIT;			/* Supports only single drive */
    
    	if (Stat & STA_NODISK) return Stat;	/* No card in the socket */
    	
    	power_on();							/* Force socket power on */
    
    	FCLK_SLOW();
    	for (n = 10; n; n--) rcvr_spi();	/* 80 dummy clocks */
    	 //for(int i=0;i<10;i++)
         // SPI_transmit(0xff);   //80 clock pulses spent before sending the first command
    
    	ty = 0;
    
    
    	int retry=0;
    	int reset_complete = 1;
    	BYTE response = 0x00;
    	do
    	{
    		response = send_cmd(CMD0, 0); //send 'reset & go idle' command
    		retry++;
    		if(retry>0x20) 
    		{
    			reset_complete = 0;   //time out, card not detected
    			break;
    		}
    	} while(response != 0x01);
    
    
    	if (reset_complete == 1/*send_cmd(CMD0, 0) == 1*/) /* Enter Idle state */
    	{			
    		//sendStr0("Enter Idle state complite");
    		//Timer1 = 100;						/* Initialization timeout of 1000 msec */
    		//_delay_ms(100);
    		if (send_cmd(CMD8, 0x1AA) == 1) {	/* SDv2? */
    			for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();		/* Get trailing return value of R7 resp */
    			if (ocr[2] == 0x01 && ocr[3] == 0xAA)
    			   {				/* The card can work at vdd range of 2.7-3.6V */
    				//while (Timer1 && send_cmd(ACMD41, 1UL << 30));	/* Wait for leaving idle state (ACMD41 with HCS bit) */
    				int counter1 = 0;
    				char buff[100];
    				for (int i = 0; i < 10 && send_cmd(ACMD41, 1UL << 30); i++)
    				{
      					_delay_ms(10);
    					counter1+=10;
    				}
    
    				if (/*Timer1 && */send_cmd(CMD58, 0) == 0)
    				{		/* Check CCS bit in the OCR */
    					for (n = 0; n < 4; n++) ocr[n] = rcvr_spi();
    					ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2;	/* SDv2 */
    				}
    			}
    		} else {							/* SDv1 or MMCv3 */
    			if (send_cmd(ACMD41, 0) <= 1) 	{
    				ty = CT_SD1; cmd = ACMD41;	/* SDv1 */
    			} else {
    				ty = CT_MMC; cmd = CMD1;	/* MMCv3 */
    			}
    			//while (Timer1 && send_cmd(cmd, 0));			/* Wait for leaving idle state */
    			for (int i = 0; i < 10 && send_cmd(cmd, 0); i++)
      				_delay_ms(10);
    
    			_delay_ms(10);
    			if (/*!Timer1 || */send_cmd(CMD16, 512) != 0)	/* Set R/W block length to 512 */
    				ty = 0;
    		}
    	}
    	else
    	{
    	}
    
    	CardType = ty;
    	deselect();
    
    	if (ty) {			/* Initialization succeded */
    		Stat &= ~STA_NOINIT;		/* Clear STA_NOINIT */
    		FCLK_FAST();
    	} else {			/* Initialization failed */
    		power_off();
    	}
    
    	return Stat;
    }
    Если результат не равен 0, то вывести на дисплей ошибку инициализации. Программа эту ошибку и выдает при первом включении. Пробовал вызывать эту функцию в цикле три раза подряд - результат тот же. Я еще не пробовал байпасом поиграть и подтягивающими резисторами.

    Цитата Сообщение от breeze Посмотреть сообщение
    Аналогично Одна из первых и любимых игр на Агат была — Bolo
    Супер игрушка! Только ради нее стоит этот комп построить!

    Всем спасибо за поддержку!
    Все детали проектов ЮТ-88 на ПЛИС, АГАТ-7 на ПЛИС и прочее в моем блоге на http://electronicsfun.net

Страница 4 из 18 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Компьютер "Агат-7"
    от Exany_Babay в разделе Агат
    Ответов: 19
    Последнее: 08.06.2016, 22:37
  2. Компьютер "Агат-9"
    от AlexBel в разделе Агат
    Ответов: 10
    Последнее: 20.04.2016, 10:38
  3. Ответов: 71
    Последнее: 31.07.2014, 19:42
  4. Продам компьютер "Агат-7"
    от riogen в разделе Барахолка (архив)
    Ответов: 12
    Последнее: 05.07.2011, 22:04
  5. Куплю компьютер "Агат"
    от ed4mk в разделе Барахолка (архив)
    Ответов: 30
    Последнее: 10.05.2009, 18:18

Ваши права

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