nedoPC.org

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



Reply to topic  [ 188 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13  Next
PC-совместимый компьютер на К1810 
Author Message
Writer
User avatar

Joined: 15 Nov 2013 05:34
Posts: 21
Location: Москва
Reply with quote
Пришлось конечно повозиться с этой ВТ3, но в итоге заработало ОЗУ :rotate:

Vic3Dexe wrote:
А вы попробуйте его на штатной частоте пустить, и пусть часик поработает. У меня на шлейфах первые инструкции тоже вроде выбирались нормально - а дальше срыв в рандомный момент от пары секунд до 15-20 минут

newold86 wrote:
Ну да, я то тоже изрядно помучился со случайными сбоями в конструкции со шлейфами


На штатной частоте действительно улетает "в космос" через какое-то время. Но у меня теперь есть
дебагер, который умеет понижать частоту CPU :) Сейчас я посылаю сигнал RDY 1000 раз
в секунду, т.о. проц работает на частоте 1KHz, последний час пока без сбоев. Наверняка может
и быстрее, но мне этого достаточно. Вообще вся эта модульная конструкция со шлейфами
была задумана как отладочная, чтобы отработать идеи, прежде чем воплотить их в
одноплатовом решении. По частям всё же проще отлаживать, коммутировать и переделывать )

newold86 wrote:
Только мне кажется, что подход какой-то сложный выбран :) (контроллер памяти и т.д.).


На самом деле я просто не увидел альтернативы КДП. Статическое ОЗУ потребовало бы очень
много микросхем (я хочу 640К в итоге). Возможно когда прикручу ПДП, буду регенерировать ОЗУ
как в XT, через прямой доступ в память.
Хотя может быть щас есть уже всякая Flash память или DRAM со встроенной регенерацией.
Какой бы Вы подход выбрали? )

Теперь надо написать первую функцию будущего BIOS - тест ОЗУ. Пока не понятно куда выводить
результат. Наверное через порты I/O на LED индикаторы.
И вопрос - имеет значение, какой ассемблер использовать? Masm вроде умеет делать только exe,
но у него есть утилита ExeToBin. Сейчас я пишу инструкции в ПЗУ прям в шестнадцатеричных
кодах, но это совсем хардкор )
Как то пытался скомпилировать исходники биоса XT, перепробовал все версии Masm`а,
с первой по шестую, но ни одна не захотела компилировать.

_________________
Нет процессора кроме x86, и Фон Нейман пророк его.


27 Nov 2016 14:42
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
renych wrote:
Vic3Dexe wrote:
У меня на шлейфах первые инструкции тоже вроде выбирались нормально - а дальше срыв в рандомный момент от пары секунд до 15-20 минут
newold86 wrote:
Ну да, я то тоже изрядно помучился со случайными сбоями в конструкции со шлейфами
На штатной частоте действительно улетает "в космос" через какое-то время.
Интересно... а если паять шлейф "земля"-"сигнал"-"земля"-"сигнал"-... тоже всё улетать будет? :o
Что-то я не помню, чтобы контроллеры IDE и HDD "жаловались" на такие шлейфы... :-?

_________________
iLavr


27 Nov 2016 15:04
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Quote:
Сейчас я посылаю сигнал RDY 1000 раз
в секунду, т.о. проц работает на частоте 1KHz

Нннууу... если совсем в общем... то да, килогерц. А тактовая какая? Т.е. что заходит на ногу CLK?
Quote:
По частям всё же проще отлаживать, коммутировать и переделывать

Поверьте, я тоже так думал. Пока не загруз по оси в шлейфах. Такая "модульность" привносит кучу своих багов, помимо схемных. Так что непонятно с чем боремся.
Нужно соединить несколько плат? Меззонин (платы друг над другом) или любой другой вид КОРОТКИХ соединений. Дабы снизить наводки.
Quote:
Статическое ОЗУ потребовало бы очень много микросхем (я хочу 640К в итоге).

Простите, что?
Статика на 512к, 1М, 2М, 4М - вполне доступны. Тайминги - 10/12/15/45/55/70 нс. Производителей несколько - Cypress, Alliance, возможно, гнусмас (у нас их просто нет). Выбирай что хочешь, как грицца. И к черту регенерацию, городить DRAM для таких объемов смысла нет при нынешних технологиях.
Нет, если стоит вопрос аутентичности... :)
Quote:
Какой бы Вы подход выбрали?

Мы, царь Николай Второй :), выбрали Cypress 1Mx16 (итого 2 метра) 10 нс. Корпус TSOP какой-то, вполне паябельный (0.8 шаг вроде). Управления - минимум, т.к. на потребление плевать, чип выбран постоянно. Можно подавать /WE, не снимая /OE (она сама понимает, что в нее пишут, и переключается на вход). Короче - сказка, по сравнению со штабелями DRAM и пачками CAS/RAS.
Минус один - сравнительно недешево, но я брал 10 нс (надо было), 70 нан будет дешевле.
Quote:
Пока не понятно куда выводить результат

ISA-8 + VGA? Для видяхи вроде все есть, DMA ей не надо, IRQ тоже.
Quote:
И вопрос - имеет значение, какой ассемблер использовать?

Для чего?
Перекомпиляция чего-либо - лучше брать то, чем оно предположительно должно собираться.
Писать свое с нуля или переписывать под себя - fasm. Без вариантов.
Quote:
Что-то я не помню, чтобы контроллеры IDE и HDD "жаловались" на такие шлейфы...

Чес гря, я сам в растерянности.
Учитывая, что схема с кучей земель в шлейфе появилась с введением UDMA-66+, и что именно в этой версии ATA появилась коррекция (!) и отлов (!!) ошибок, то я вообще не понимаю, как оно работало до того.


27 Nov 2016 17:18
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Vic3Dexe wrote:
Чес гря, я сам в растерянности.
Учитывая, что схема с кучей земель в шлейфе появилась с введением UDMA-66+, и что именно в этой версии ATA появилась коррекция (!) и отлов (!!) ошибок, то я вообще не понимаю, как оно работало до того.
А оно и не молотило в шлейф перманентно. Там самый жуткий обмен был, когда задействован DMA, но пачки передачи были довольно короткими. И не забываем, что HDD мог просто выдать BUSY, если он чего-то не успевает, или ERROR, если чего-то не "понял".


27 Nov 2016 20:30
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
renych wrote:
Пока не понятно куда выводить результат. Наверное через порты I/O на LED индикаторы.

Порт 80h вроде как для этих целей предназначен - "диагностический регистр".


28 Nov 2016 05:51
Profile
Writer
User avatar

Joined: 15 Nov 2013 05:34
Posts: 21
Location: Москва
Reply with quote
Vic3Dexe wrote:
Quote:
Сейчас я посылаю сигнал RDY 1000 раз
в секунду, т.о. проц работает на частоте 1KHz

Нннууу... если совсем в общем... то да, килогерц. А тактовая какая? Т.е. что заходит на ногу CLK?

На CLK приходит тактовый сигнал с ГФ84. А сигналом RDY я "придерживаю" процессор. Получается 1KHz - это не тактовая частота, а частота циклов шины :)

Vic3Dexe wrote:
Поверьте, я тоже так думал. Пока не загруз по оси в шлейфах. Такая "модульность" привносит кучу своих багов, помимо схемных.

Суть в том, что это моё первое цифровое устройство, после мигания светодиодом на ATmega. Понимания, как работает компьютер на аппаратном
уровне не было никакого и продумать схему целиком, не говоря уже о том, чтобы собрать всё на одной плате и с первого раза - было чем то фантастическим :)
А так, я собрал сначала процессорный модуль с генератором и формирователями шин (что уже было непросто), потом на макетке прицепил к нему ПЗУ,
поигрался, понял, как это должно работать и только после этого пришло понимание, каким должен быть модуль памяти.
И всё равно было столько косяков, что пришлось перерезать дорожки и паять перемычки.
Кстати, когда я её включил первый раз - по классике жанра что-то щёлкнуло, заискрилось и пошёл дым :ebiggrin: На одной из фоток видно в панельке
под ВТ3 вскипевшую дорожку )
В общем на тот момент идея со шлейфами мне казалась наиболее очевидной. Да и теперь я считаю, что для обучения - это оптимальный вариант,
тем более что на пониженной частоте шлейфы совсем не мешают.
Меня больше волнует вопрос - как проверить ОЗУ, потому что есть подозрения, что оно работает нестабильно.

Vic3Dexe wrote:
Статика на 512к, 1М, 2М, 4М - вполне доступны. Тайминги - 10/12/15/45/55/70 нс. Производителей несколько - Cypress, Alliance, возможно, гнусмас (у нас их просто нет). Выбирай что хочешь, как грицца. И к черту регенерацию, городить DRAM для таких объемов смысла нет при нынешних технологиях.
...
Можно подавать /WE, не снимая /OE (она сама понимает, что в нее пишут, и переключается на вход). Короче - сказка, по сравнению со штабелями DRAM и пачками CAS/RAS.


Эх, где Вы раньше были, две страницы назад! Меньше всего хотелось возиться с КДП, а под статикой мне мерещились 537РУ8, объёмом 2Кб.
Теперь как грится - поздняк метаться ) Наверное в итоговой версии своего суперкомпьютера я поставлю современный чип памяти. Что ж, по кр. мере
я приобрёл опыт :eugeek:

Vic3Dexe wrote:
ISA-8 + VGA? Для видяхи вроде все есть

Видео у меня следующий этап, после отладки памяти. Раз такое дело сразу спрошу, чтоб не получилось как с КДП - у меня есть два чипа:
КР580ВГ75 и км1809вг6 (аналог Motorola 6845)
Что будет проще на первом этапе - реализовать видео на одной из этих микросхем или использовать ISA видеокарту?
Но тогда нужно реализовывать ISA шину (или достаточно отдельных сигналов)?

_________________
Нет процессора кроме x86, и Фон Нейман пророк его.


28 Nov 2016 06:08
Profile WWW
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Quote:
Меня больше волнует вопрос - как проверить ОЗУ, потому что есть подозрения, что оно работает нестабильно.

Ну у вас же есть отладчик с кучей индикации. Зажигайте светодиод при ошибке, программу вешайте в вечный цикл. Адрес забирайте... откуда вы его обычно забираете. В чем проблема-то?
Quote:
Эх, где Вы раньше были, две страницы назад!

А в гугле вас забанили? :)
Quote:
использовать ISA видеокарту

Это я и имел ввиду. Посмотрите схему той же CGA и сколько там корпусов. Лучше готовое взять.
Quote:
И не забываем, что HDD мог просто выдать BUSY, если он чего-то не успевает, или ERROR, если чего-то не "понял".

Это понятно, я о контроле потока данных (например, при чтении сектора). У АТА-33 и ниже вроде нет никаких механизмов типа контроля четности и т.п.


28 Nov 2016 07:24
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Vic3Dexe wrote:
Это понятно, я о контроле потока данных (например, при чтении сектора). У АТА-33 и ниже вроде нет никаких механизмов типа контроля четности и т.п.
Точно не подскажу, литература прибрана далеко, но, по моей дырявой памяти, контроль четности был. А иначе, кой смысл гонять туда-сюда данные, если они не верифицируемы на приёмной стороне силы?

renych wrote:
Эх, где Вы раньше были, две страницы назад! Меньше всего хотелось возиться с КДП, а под статикой мне мерещились 537РУ8, объёмом 2Кб.
62256 не попадались? ;) 32Кб в одном корпусе. На 16 бит = 2 м/с (DIP28) = 64 Кб. А это уже есть где по-экспериментировать! ;)


28 Nov 2016 07:49
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
jdigreze wrote:
Точно не подскажу, литература прибрана далеко

jdigreze wrote:
А иначе, кой смысл гонять туда-сюда данные, если они не верифицируемы

Увы, я последний раз стандарт АТА тоже вдумчиво читал весьма давно. Даже не помню версию, то ли 5, то ли 6. Восьмую пролистывал на предмет нововведений. А потом t13.org превратилась в t13.com. Повбывав бы...
Однако в памяти отложилось утверждение господина Гука о том, что контроль и коррекция ошибок появились только при введении UDMA. Не верить ему оснований лично у меня нет - в остальном его выкладки адекватны большей частью, насколько могу судить.
Если совсем честно, то Lavr открыл мне глаза. Если оно работает на 33 Mbps, и умудряется гонять по шлейфу гигабайты без потерь, то есть какой-то секрет...


29 Nov 2016 06:54
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Порыл немного интернет.
Vic3Dexe wrote:
Однако в памяти отложилось утверждение господина Гука о том, что контроль и коррекция ошибок появились только при введении UDMA
CRC действительно появился только в ATA-4 (33).

Но:
http://novorosiysk.lastdiplom.ru/referats/registry-ustrojstv-ata/ wrote:
Блок управляющих регистров используется для управления устройством и получения байта его состояния. На действительность содержимого регистров командного блока и альтернативного регистра состояния указывает нулевое значение бита BSY регистра состояния. Если устройство под- держивает управление энергопотреблением, в спящем режиме Sleep mode со­держимое этих регистров недействительно.
Регистр состояния отражает текущее состояние устройства в процессе вы­полнения команд. Чтение регистра состояния разрешает дальнейшее изменение его бит и сбрасывает запрос аппаратного прерывания.

Бит 7 — BSY (Busy) указывает на занятость устройства. При его единичном значении устройство игнорирует попытки записи в командный блок регистров, а чтение этих регистров дает неопределенный результат (их значение устрой­ством может быть изменено в любой момент). При нулевом значении этого бита регистры командного блока доступны, а устройство может изменять только значение бит IDX, DRDY, DF, DSC и CORR. Бит устанавливается под действием ап­паратного и программного сброса устройства, а также по получении команды. Бит может устанавливаться и на кратковременный интервал, так что хост может и не заметить этого факта.

Бит 6 — DRDY (Device Ready) указывает на готовность устройства к восприятию любых кодов команд. Если состояние бита изменилось, оно не может изменить­ся обратно до чтения регистра состояния. При нулевом значении бита устрой­ство воспринимает только команды EXECUTE DEVICE DIAGNOSTIC и INITIALIZE DEVICE PARAMETERS, прекращая выполнение текущей команды и сообщая об этом фла­гом ABRT в регистре ошибок и ERR в регистре состояния. Прием других команд при нулевом бите DRDY приводит к непредсказуемым результатам.

Бит 5 — DF (Device Fault) — индикатор отказа устройства.

Бит 4 — DSC (Device Seek Complete) — индикатор завершения поиска трека.

Бит 3 — DRQ (Data Request) — индикатор готовности к обмену словом или байтом данных.

Бит 2 — CORR (Corrected Data) — индикатор исправленной ошибки данных.

Бит 1 — IDX (Index) — индекс, трактуется специфично для каждого произ­водителя.

Бит 0 — ERR (Error) — индикатор ошибки выполнения предыдущей операции. Дополнительная информация содержится в регистре ошибок. Если установился бит ERR, до приема следующей команды, программного или аппаратного сброса устройство не изменит состояние этого бита, а также регистра ошибок, регистра количества секторов и регистров цилиндра, головки и номера сектора.


Вот в этих вот курсивных тонкостях и кроется высокая стабильность обмена данными с HDD, и чего очень сложно добиться, отделяя процессор от памяти и прочих on-board устройств.


29 Nov 2016 08:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Vic3Dexe wrote:
Если совсем честно, то Lavr открыл мне глаза. Если оно работает на 33 Mbps, и умудряется гонять по шлейфу гигабайты без потерь, то есть какой-то секрет...

Да какой там секрет - когда чередуются "земля"-"сигнал" это получается волноведущая линия.
Типа полосковой - некоторый аналог коаксиала.
И если линия согласована на концах нагрузкой, равной её волновому сопротивлению, то через
неё всё замечательно прёт без отражений... - такой смысл примерно...

_________________
iLavr


29 Nov 2016 10:25
Profile
Devil

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

Так вот - основная проблема не в наводках, а в отражениях. Похоже, при минимально правильном терминировании (а оно во всех этих контроллерах/дисках есть) проблема убирается практически полностью.


29 Nov 2016 16:50
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
jdigreze wrote:
Порыл немного интернет.
Vic3Dexe wrote:
Однако в памяти отложилось утверждение господина Гука о том, что контроль и коррекция ошибок появились только при введении UDMA
CRC действительно появился только в ATA-4 (33).

Скорость или версия протокола тут ни при чем. CRC существует только для UDMA-режимов:
ATA/ATAPI-5 Revision 2 13 December 1999 wrote:
3.1.21 CRC: Cyclical Redundancy Check used for the Ultra DMA protocol to check the validity of each Ultra DMA burst transfered.

Что касается регистра, о котором вы говорите (биты BSY и пр.), он говорит только о состоянии выполнения команды устройством АТА, но не о том, были ли ошибки в фазе передачи данных (которой у команды может и не быть). А так как электрически в шлейфе бита четности нет, у хоста или устройства НЕТ механизмов контроля достоверности передаваемых данных.
Lavr wrote:
Да какой там секрет - когда чередуются "земля"-"сигнал" это получается волноведущая линия.

Только в 40-проводном шлейфе нету этого чередования.
newold86 wrote:
Так вот - основная проблема не в наводках, а в отражениях. Похоже, при минимально правильном терминировании

А вот это очень может быть.


30 Nov 2016 00:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Vic3Dexe wrote:
Lavr wrote:
Да какой там секрет - когда чередуются "земля"-"сигнал" это получается волноведущая линия.

Только в 40-проводном шлейфе нету этого чередования.

Так поэтому его и не используют там, где он уже не годится... :mrgreen:

_________________
iLavr


30 Nov 2016 18:10
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Vic3Dexe wrote:
А так как электрически в шлейфе бита четности нет, у хоста или устройства НЕТ механизмов контроля достоверности передаваемых данных.
Поразмыслив на досуге, пришёл к тому же выводу.
Vic3Dexe wrote:
А вот это очень может быть.
Пожалуй, да.


30 Nov 2016 19:36
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 188 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13  Next

Who is online

Users browsing this forum: No registered users and 11 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.