Prometheus

May. 11th, 2015 10:59 am
tnt23: (amiga)
Приехал набор для сборки платы Prometheus (плата, 4 разъема PCI и две CPLD).

IMG_20150511_102938

http://krashan.ppa.pl/articles/prometheus/
tnt23: (amiga)
Так вот про регенерацию. Засада с ней вот в чем: корка контроллера считает положенное количество тактов REFRESH_COUNT до следующего цикла регенерации, после чего взводит флаг и ждет, что регенерация волшебным образом случится, после чего снова начнет считать REFRESH_COUNT.
Еще больше букв и картинка )
tnt23: (amiga)
(чисто для себя)
Ошибки с большими объемами данных (от полумегабайта и выше, lha, md5sum). Тщательная возня с sdc, уточнение длин дорожек, съезжание вниз до 100МГц, игры с терминацией и выбором LVTTL/LVCMOS не помогали.
Волшебным образом исчезли, стоило только уменьшить в контроллере sdram количество тактов между auto refresh с 700 (для 10нс такта требуется 741) до 300. Привет от регенерации :)

FTP

Dec. 10th, 2013 12:20 pm
tnt23: (amiga)
Заработал FTP. А до того не работал - открывал второй сокет и мычал. Дело было в четырех байтах мусора, которые драйвер щедро добавлял в конец каждого принятого пакета.



Чиста для справки, скорость Tx/Rx сейчас около 140/120 килобайт в секунду.
tnt23: (amiga)
Добился некоторого прогресса:

- заюзал линию /CINH шины Zorro для запрета кеширования I/O адресов сетевой платы
- разнес адреса регистров для чтения/записи по рецепту Michael Sinz (http://amigadev.elowar.com/read/ADCD_2. ... e0161.html)
- выкинул из драйверного таска перезапускающийся таймер в пользу собственного обработчика прерываний
- каковой обработчик успешно садится на INT2 в конец цепочки (около 12мкс от возникновения прерывания до завершения обработчика)

Теперь нужно разобраться с переполнением RX FIFO в адаптере и можно переключиться на TX.
tnt23: (amiga)
Вообще думал, свихнусь.

IMAG2786

Чего только не пробовал. И сброс мучил, и strap сигналы, и полярности, и цикл по-всякому. И кварц перепаивал, и емкости на нем.
Пришлось включить голову и снова читать даташит, в особенности пункт 6.33 Processor Bus Control Register (38H). А там про биты 6:5, товарищи, чёрным по белому написано:

Data Bus Current Driving/Sinking Capability
00: 2mA (default)
01: 4mA
10: 6mA
11: 8mA


То есть у чипа просто не хватало сил раскачать взрослую шину на дефолтном токе. При этом запись в него, естественно, проходила, и можно было бы даже при известной настойчивости (светодиодики!) это проверить.
tnt23: (amiga)


А если серьезно, то не знаю, правильно ли обвешал емкостями SDRAM чип. По 1мкф керамике на каждый VDD (итого 3 штуки), по 0.1мкф керамике на VDDQ (итого 4 штуки), один тантал 22мкф.

Короткометражное видео опытного запуска )
tnt23: (amiga)


То же, вид в профиль. Первый опыт разводки в 4 слоях, по возможности с соблюдением рекомендаций производителей чипов, и прочая, и прочая, и прочая. Теперь и Ethernet :)
tnt23: (amiga)
Удалось наладить считывание регистров при помощи какого-то инопланетного вуду.
Отгребаем пакетики:

tnt23: (amiga)
Нарыл на aminet.net замечательные тулзы peek и poke, самое то для отладки. Во второй "логической" плате пока нет ничего, кроме однобитового регистра, выход которого подключен к красному светодиоду. Плате при старте системы присваивается базовый адрес 0x44000000.

Зажигаем и гасим красный светодиод:



tnt23: (amiga)
Научился делать так называемые logical boards - это такая забавная амижная шизофрения, когда на одной физической плате расширения уживаются несколько разных по смыслу логических. Например, основное назначение моей платы - контроллер SDRAM. Но в FPGA остается свободными дофига ячеек, и есть желание и возможность добавить туда порты ввода-вывода для контроллера Ethernet (скорее всего, CS8900A) и какую-нибудь самодельную звуковую плату.

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

z3sdram

Jul. 1st, 2013 01:39 pm
tnt23: (amiga)
Пишу здесь, чтобы не забыть.

После нормализации времянок /SLAVE и творческого подхода к формированию /DTACK система стала работать заметно стабильнее. Три периода тестирования - 9 часов, 15 часов и 45 часов до первого сбоя.
tnt23: (amiga)
С подачи [livejournal.com profile] dz заменил OPENDRN на ALT_OUTBUF_TRI с "оттяжкой" возврата в Z-состояние на пару тактов. Результат мне нравится значительно больше.

Горизонтальный пунктир - примерный порог 0/1 для TTL на уровне 2.5в. С тристабильным выходом в момент начала очередного цикла задний фронт подтверждения теперь проходит сильно выше порога. Не факт, что это как-то сильно сказывается, так как подтверждение анализируется не ранее чем через 80-100 наносекунд после начала цикла, но всё же так спокойней.

OPNDRN

Jun. 20th, 2013 11:15 am
tnt23: (amiga)
Провел небольшой рисёч.

Короче, есть в шине Zorro III сигнальчик /DTACK. За этот сигнальчик держатся все устройства, сидящие на шине, и дергают его в подтверждение приема или выдачи данных, чем цикл обмена и завершается. Поскольку устройств много, то это такой мультидроп, подтянутый к 5V резистором в 1K. Строгая классическая красота.
Read more... )
tnt23: (amiga)
Желтый канал (1) - nFCS, голубой (2) - nDTACK.


крупнее )

Profile

tnt23: (Default)
tnt23

April 2016

S M T W T F S
     12
3456789
1011 1213141516
17181920212223
24252627282930

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 27th, 2017 04:41 am
Powered by Dreamwidth Studios