Вход

Просмотр полной версии : Читабельный ФАПЧ



ZEK
16.08.2011, 18:57
На углепати подымали вопрос про читаемость и легкость для понимания ФАПЧ по сыркам.
Ясен пень что табличные или перенесеным с схем на сумматорах с перетусоваными битами фапчи малопонятны.

Решил восполнить пробел и написать простенький фапч (коментов гораздо больше чем кода) на более менее читаемом языке



// синтезируемый
module phase_sync(
input wire clk, // 8mhz
input wire rddat,
output reg rclk,
output reg rawr
);

// ************************************************** *****
// формирование RAWR
// ************************************************** *****

// защелка где храним предыдущее состояние сигнала rddat с дисковода
// нужно для определния момента отрицательного фронта
reg oldrd;

// формируем rawr 125нс
always @ (posedge clk)
begin
// запоминаем текущее значение
oldrd <= rddat;
// формируем rawr если на предыдущем такте rddat =1 а на текущем =0
rawr <= !(oldrd == 1'b1 && rddat == 1'b0); // тут oldrd еще содержит старое значение
end


// ************************************************** *****
// формирование RCLK
// ************************************************** *****

// счетчик для формирования меандра RCLK, один оборот счетчика это полуволна RCLK
reg [3:0] counter = 0;
// дельта в тактах от оптимальной точки расположения RAWR относительно RCLK
// RAWR в идельном случае долен находиться в середине полуволны RCLK
wire[3:0] delta = (8 - counter) +1;
// 8 середина полуволны,
// +1 для того что бы при совпадении фаз счетик инкреметировался а не стоял на месте
// можно полюдски написать 9-counter что то же самое

// знаково делим смещение пополам, будем приближаться к оптимальной точке на полшага перекоса фаз.
wire[3:0] shift = { delta[3], delta[3], delta[2:1] };

always @ (posedge clk)
begin
// RAWR = 0, значит сравниваем его положение с оптимальным
// и если надо (delta >= 2 или delta =< 2) корректируем фазу RCLK
if (rawr == 0)
counter[3:0] <= counter + shift;
else
counter <= counter + 1; // иначе просто инкрементируем счетчик

// закончилась полуволна генерируем меандр
if (counter == 15) rclk = ~rclk;
end

initial
begin
rclk = 1'b0;
end

endmodule


Можно колво кода как уменьшить понизив читабельность, так и увеличив, выбрал нечто среднее

Где то так...

fifan
16.08.2011, 20:02
Где будем испытывать? На Скорпионе?

lisica
16.08.2011, 20:13
А кто это переведёт в VHDL?

Дмитрий
16.08.2011, 20:38
fifan, где-где... там где ее ну ооооочень не хватает - на Пентэве :)

ZEK
17.08.2011, 10:47
пересчитал и пофиксил под 28мгц



// синтезируемый
module phase_sync28(
input wire clk, // 28mhz
input wire rddat,
output reg rclk,
output reg rawr
);

// ************************************************** *****
// формирование RAWR
// ************************************************** *****

// защелка где храним предыдущее состояние сигнала rddat с дисковода
// нужно для определния момента отрицательного фронта
reg oldrd;
// сдвиговый регистр для формирования raclk 150нс
reg [3:0] rawr0;

// формируем rawr 150нс
always @ (posedge clk)
begin
// запоминаем текущее значение
oldrd <= rddat;
// формируем rawr если на предыдущем такте rddat =1 а на текущем =0
// пишем в сдвиговый регистр, заодно сдвигаем его
rawr0 <= { rawr0[2:0], !(oldrd == 1'b1 && rddat == 1'b0) };

// если хоть один бит в сдвиговом регистре 0 тогда rawr =0, что при клоке свдига 28мгц, примерно 150нс
rawr = !(rawr0 != 4'hF);
end


// ************************************************** *****
// формирование RCLK
// ************************************************** *****

// счетчик для формирования меандра RCLK, один оборот счетчика это полуволна RCLK
reg [5:0] counter = 0;
// дельта в тактах от оптимальной точки расположения RAWR относительно RCLK
// RAWR в идельном случае долен находиться в середине полуволны RCLK
wire[5:0] delta = (24 - counter) +1;
// 24 середина полуволны -4 (на столкьо тактов удлинили RAWR)
// +1 для того что бы при совпадении фаз счетик инкреметировался а не стоял на месте
// можно полюдски написать 25-counter что то же самое

// знаково делим смещение пополам, будем приближаться к оптимальной точке на полшага перекоса фаз.
wire[5:0] shift = { delta[5], delta[5], delta[4:1] };

always @ (posedge clk)
begin
// RAWR = 0, значит сравниваем его положение с оптимальным
// и если надо (delta > 2 или delta < 2) корректируем фазу RCLK
if (rawr0[0] == 0)
counter <= counter + shift;
else
// проверяем дошли ли мы до длины полуволны примерно в 2мкс
// rclk тут что бы компенсировть хоть немного отклонение от 2мкс
if (counter < (54+rclk))
counter <= counter + 1; // есил
else
begin
counter <= 0;
rclk = ~rclk;
end

end

initial
begin
rclk = 1'b0;
end

endmodule


И диаграмка сравнивающая 2 фапча на одних входных данных

fifan
17.08.2011, 11:16
В какую ПЛИС предполагается запихнуть данное творение?

Дмитрий
17.08.2011, 11:25
fifan, я вкорячиваю это в EP1K50, а вообще, как Дима говорит - творение занимает 8 макроячеек, так что влезет в любую, даже EPM3032.

solegstar
17.08.2011, 11:31
fifan, где-где... там где ее ну ооооочень не хватает - на Пентэве :)

Если ФАПЧ заработает на Эве, мож я таки её себе и прикуплю! :)

Ewgeny7
17.08.2011, 11:34
А что, на Эве дисковод плохо работает? Я просто не в курсе, использовал там дисковод всего пару раз, год назад :)

Дмитрий
17.08.2011, 12:16
А что, на Эве дисковод плохо работает?
есть пачка дискет, которые Эва не хавает, хотя тот же Кай даже не поперхнулся (с одним и тем же дисководом).

---------- Post added at 11:16 ---------- Previous post was at 10:44 ----------

Собрал прошиву, если седни не нажрусь, то попробую :)

Дмитрий
17.08.2011, 23:03
Ура товарищи!
Сегодняшний день ознаменован не только моим ДР, но и тем фактом, что сегодня контроллер дисководов PentEvo был наделен выделителем данных на основе цифрового фазового синхронизатора, построенного по схеме с отрицательной обратной связью через кольцо ФАПЧ, в народе - просто ФАПЧ!
Да, чуда не случилось, и не все диски стали одинаково хорошо читаться, но результат-таки есть и очевидный! Где ранее Эва читала со второго-третьего раза, елозив по диску, а то и вовсе отказывалась читать - сейчас считывает без затыков, либо со второй-третьей попытки. Из трех дисков, в которых в среднем по 10 сбойных секторов, которые я не смог прочитать на базовой конфигурации от 11.06.11, эва с ФАПЧ считала два успешно (на первом - на 2х секторах спотыкалась, но после первого Retry считывала нормально, на втором 4 сектора, со второй-третьей попытки считались), третий - чуть хуже (5 битых секторов, которые не прочлись). Теперь нужно сверить работу этого узла со скорпионовским, каевским и профинским. Но уже есть результат и это радует.


Демки будут? Как тут.

Или все это просто пьянка замаскированая под пати?
Так что, newart, ты не прав, это была не просто пьянка, а полезная для Speccy-сообщества конференция и плоды ее уже есть! :)

doorsfan
17.08.2011, 23:28
имя, сестра, тьфу, ссылка!

Eugen
17.08.2011, 23:35
имя, сестра, тьфу, ссылка!
на пати, замаскированное под пьянку? ;)

doorsfan
18.08.2011, 00:03
нееее, ссылка на паршивку!

Дмитрий
18.08.2011, 08:11
doorsfan, в личке. Давайте потестим прежде чем в народ отпускать.

lisica
18.08.2011, 08:42
Ну, а на более? для меня, понятный язык (VHDL) кто нить переведёт?

Ewgeny7
18.08.2011, 08:46
Ну, а на более? для меня, понятный язык (VHDL) кто нить переведёт?

lisica, ну ёлы-палы :) Там разницы-то между языками на гулькин... клюв.

Дмитрий
18.08.2011, 08:56
lisica, исходник подробно комментирован, по идее не должно вызвать затруднений перевести его на другой язык.

ZEK
18.08.2011, 09:21
Там 28Мгц фапч можно еще процентов на 10% увеличить окно детектирования, и сделать более аккуратный генератор менандра для RCLK (что улучшит параметры)
В идеале можно совсем круто сделать, что бы он не текущий бит обрабатывал, а пару битов (потому что реакция на текущий бит как правило уже запаздалая, и фапч правит RCLK для следующего бита), всякие профи каи итд, будут нервно курить в стороне
но по ресурсам будет существенно больше.

Дмитрий
18.08.2011, 09:25
но по ресурсам будет существенно больше.
не страшно, там ресурсов еще много.

fifan
18.08.2011, 11:22
Всё ж как бы всё оформить в виде проекта, а то отдельные тексты...

doorsfan
18.08.2011, 11:44
Спасибо Донетчанам за отлично проделанную работу! Начали читаться последние треки на дисках.
Теперь нужно дружно попросить Дмитрия реализовать второй алгоритм выделения синхры и передать в недопц, чтобы те добавили в гуглокод.

Ewgeny7
18.08.2011, 12:49
и передать в недопц, чтобы те добавили в гуглокод.
Угу. Они добавят, потом догонят и еще добавят. Доработки извне они не принимают.

Дмитрий
18.08.2011, 12:57
Ewgeny7, это ужо их проблема. Вот ответ на просьбу Юры сделать фапч:

Напиши. Я фапчи писать неумею.
Понимай как хошь, но уже написали :)

ZEK
18.08.2011, 13:06
Надо обозвать *****фапч тогда включат в репозитарий :D

balu_dark
18.08.2011, 14:25
А можно в личку бинарник? есть на чем тестить.


Улучшения не понятно - есть или нету - вроде глючит так же - переодически надо ретрай делать. счас сделаю образ с установленными на нем дцу и еще чемто аналогичным и 2 карты - со стандартным фирмварем и с фапчевым. и попробую сравнить на том же диске.

Кстати вопрос - а мегу обязательно перешивать( имеется ввиду вероятнее всего бутлодырь)? а то пишет что там прошивка от марта 2010.

ZEK
19.08.2011, 11:18
Сделал более красивый генерератор RCLK
Теперь резкие скачки переваривает на порядок лучше.



module apll(
input wire clk, // 28MHz
input wire rddat,
input wire wfde,
output reg rclk,
output reg rawr
);

// логика выделения фронтов сингналов для синхронной логики
reg oldrd;
reg oldde;
reg oldrclk;

always @ (posedge clk)
begin
oldrd <= rddat;
oldde <= wfde;
oldrclk <= rclk;
end

// вычисление смещения отрицательного импулься RDDAT отностительно RCLK
wire[6:0] calc = (27 - rcnt);
wire[6:0] delta = { calc[6], calc[6], calc[5:1] } ; // знаковое деление пополам

// расчет длительнести полуволн RCLK
reg [6:0] nxtime;
reg [1:0] inrawr;

always @ (posedge clk)
if (oldde && !wfde)
// при начале операции чтения ставим длительность полуволн RCLK 2мкс
nxtime <= 55;
else
begin
if (oldrd && !rddat)
begin
inrawr[0] <= 1'b0;
nxtime <= 55 + delta;
end
else if (oldrclk != rclk)
inrawr <= { inrawr[0], 1'b1 };
end

// генератор RCLK
reg [6:0] rcnt;
reg [6:0] rcenter;

always @ (posedge clk)
begin
if (rcnt > 0)
rcnt <= rcnt - 1;
else
begin
if (!wfde) rclk <= ~rclk;
rcnt <= nxtime;
rcenter <= nxtime/2;
end
end

// генератор RAWR
always @ (posedge clk)
begin
if (wfde)
rawr <= 1'b1;
else
begin
// делаем rawr в середине rclk
if (rcnt == (rcenter +3)) rawr <= inrawr[1];
if (rcnt == (rcenter -1)) rawr <= 1'b1;
end
end

// для симулятора
initial
begin
rcnt = 33;
rclk = 1;
nxtime = 8;
end

endmodule


На изображении пример того как ведет себя стандартный фапч (красное), и новый с пред обработкой
Тестим...

balu_dark
19.08.2011, 14:02
Ждем новый бин. Со старым таки улучшения есть. Хотя часть дисков таки не читается.

Дмитрий
19.08.2011, 14:18
Со старым таки улучшения есть. Хотя часть дисков таки не читается.
Даже с самым навороченным фапчем будут диски, которые не возможно прочесть :( БлИН в личке.

ZEK
19.08.2011, 15:05
Последний фапч можно еще улучшить, двигать rawr в противоположную сторону перекосу, при этом сохраняя rawr в идеальном положении окна детектирования, по идее будут лучше соблюдены требования к данным от ВГшки. Сейчас rawr ставлю тупо в середину rclk, в теории может вызвать проблемы (нигде не нашел хоть намека как WD179x или ВГ93 декодирует mfm)

balu_dark
19.08.2011, 15:15
:) готов проверить еще и улучшенную версию. :)

Дмитрий
19.08.2011, 15:18
balu_dark, текущую бы проверить :)

balu_dark
19.08.2011, 15:41
Счас проверю :) как раз ресторю диски свои , чтобы перегнать в TRD . Нашел некоторые версии Севастопольских товарищей.

---------- Post added at 14:38 ---------- Previous post was at 14:25 ----------

Не - что-то совсем не работает. даже на заведомо нормальных и только отресторенных дисках.

---------- Post added at 14:41 ---------- Previous post was at 14:38 ----------

Откатился обратно на версию от 17го - с ней все нормально.

ZEK
19.08.2011, 16:14
или намудрил с wfde или все таки rawr надо обязательно двигать

balu_dark
19.08.2011, 16:46
Двигай :) мое дело - проверить :)

---------- Post added at 15:46 ---------- Previous post was at 15:44 ----------

Мне можно просто заслать несколько прошивок с разными вариантами - я их прогоню на одном и том же полу рабочем диске и скажу - какая лучше читает.

ZEK
19.08.2011, 16:52
Если есть квартус можно ускорить процедуру, у меня 11 а он не умеет ACEX

solegstar
19.08.2011, 17:36
Вопрос - возможно вставить кусок схемы ФАПЧ Профи 5 и 32 байта прошивки РТ4 в прошиву Эвы?

0000: 08 08 04 ОC ОС 02 OA 06 . OD OB 03 07 OF OF 00 08
0010: 08 04 ОС 02 OA 06 OE 01 . 09 05 OD 03 OB 07 OF 00

Q1(12) -- D3 Соответствие
Q2(11) -- D2 выводов
Q3(10) -- D1 микросхемы
Q4( 9) -- D0

есть вариант этой прошивы для ATF22V10. Написано в ATMEL WinCUPL. Написаны номера ячеек по соответствию адресных линий, и потом идет обычное сложение этих ячеек по "ИЛИ" для каждого бита из четырех. Т.е. если ячейка меняет только один выход (допустим 00-я), то ячейка по адресу 00 со значением 08 записана только в 3 бите, если ячейка меняет все четыре выхода, допустим 1Е со значением 0F, то она записана во всех четырех битах. Проверил в симуляторе WinCUPL по входам/выходам всё соответствует прошиве. Мне показался это самый простой вариант "в лоб" как говориться :)

Ниже текст этого безобразия:

Name fapch;
Partno 1;
Revision 01;
Date 04/04/2011;
Designer solegstar;
Company solegstar;
Location Profi3+;
Assembly DD17;
Device g22v10;

/*
* Inputs...
*/

Pin 1 = a0;
Pin 2 = a1;
Pin 3 = a2;
Pin 4 = a3;
Pin 5 = a4;

/*
* Outputs...
*
*/

Pin 17 = bit0;
Pin 18 = bit1;
Pin 15 = bit2;
Pin 16 = bit3;

/*
* Logic...
*/

c00 = !a4 & !a3 & !a2 & !a1 & !a0;
c01 = !a4 & !a3 & !a2 & !a1 & a0;
c02 = !a4 & !a3 & !a2 & a1 & !a0;
c03 = !a4 & !a3 & !a2 & a1 & a0;
c04 = !a4 & !a3 & a2 & !a1 & !a0;
c05 = !a4 & !a3 & a2 & !a1 & a0;
c06 = !a4 & !a3 & a2 & a1 & !a0;
c07 = !a4 & !a3 & a2 & a1 & a0;
c08 = !a4 & a3 & !a2 & !a1 & !a0;
c09 = !a4 & a3 & !a2 & !a1 & a0;
c0a = !a4 & a3 & !a2 & a1 & !a0;
c0b = !a4 & a3 & !a2 & a1 & a0;
c0c = !a4 & a3 & a2 & !a1 & !a0;
c0d = !a4 & a3 & a2 & !a1 & a0;
c0f = !a4 & a3 & a2 & a1 & a0;
c10 = a4 & !a3 & !a2 & !a1 & !a0;
c11 = a4 & !a3 & !a2 & !a1 & a0;
c12 = a4 & !a3 & !a2 & a1 & !a0;
c13 = a4 & !a3 & !a2 & a1 & a0;
c14 = a4 & !a3 & a2 & !a1 & !a0;
c15 = a4 & !a3 & a2 & !a1 & a0;
c16 = a4 & !a3 & a2 & a1 & !a0;
c17 = a4 & !a3 & a2 & a1 & a0;
c18 = a4 & a3 & !a2 & !a1 & !a0;
c19 = a4 & a3 & !a2 & !a1 & a0;
c1a = a4 & a3 & !a2 & a1 & !a0;
c1b = a4 & a3 & !a2 & a1 & a0;
c1c = a4 & a3 & a2 & !a1 & !a0;
c1d = a4 & a3 & a2 & !a1 & a0;
c1e = a4 & a3 & a2 & a1 & !a0;
c1f = a4 & a3 & a2 & a1 & a0;
bit0 = c08 # c09 # c0a # c0b # c0c # c0d # c17 # c18 # c19 # c1a # c1b # c1c # c1d # c1e;
bit1 = c05 # c06 # c07 # c09 # c0a # c0b # c0c # c0d # c13 # c14 # c15 # c16 # c1b # c1d # c1e;
bit2 = c02 # c03 # c04 # c07 # c08 # c0b # c0c # c0d # c11 # c12 # c15 # c16 # c19 # c1a # c1c # c1d # c1e;
bit3 = c00 # c01 # c03 # c04 # c06 # c08 # c09 # c0c # c0d # c0f # c10 # c12 # c14 # c16 # c18 # c1a # c1c # c1e;

ZEK
19.08.2011, 17:41
Вопрос - возможно вставить кусок схемы ФАПЧ Профи 5 и 32 байта прошивки РТ4 в прошиву Эвы?
Вставить то можно, но смысл? у него же такие бока как и у фапч которые работают с текущим тактом, осталось только понять значения в табличке и пересчитать их под 28мгц

solegstar
19.08.2011, 17:50
Вставить то можно, но смысл? у него же такие бока как и у фапч которые работают с текущим тактом, осталось только понять значения в табличке и пересчитать их под 28мгц

ну это я предложил один из вариантов, который прорабатывал на замену РТ4, пока не запустил программатор РТ4...

lisica
19.08.2011, 18:22
Дык табличная версия по ВМГ есть и по моему должна работать.

lisica
19.08.2011, 18:29
Я, вот, домучал версию ZEKa в VHDLе , только, чёт не врублюсь деление на 2 и 4 надо вписать, но квактус ругает - простые числа делит, а переменную не хотит, читаю книгу по синтаксису... Пока сделал деление простым сдвигом. Судя по диаграммам всё ок, самый большой сдвиг не уменьшает полуволну RAWR менее 1.5 мс.

doorsfan
20.08.2011, 00:15
прикладываю psw boot, jemmini commander которые у меня стабильно вешаются при заливке в эву прошивки от 17.08
jemmini вешается при нажатии, например c (copy). В норме после нажатия на enter предлагается выбрать диск назначения.
psw boot вешается через долю секунды после запуска.

doorsfan
20.08.2011, 00:47
забыл уточнить: обе программы вешаются при выключенной турбе (при включенной jemmini на всех прошивках кричит о смене диска, psw бут вроде работает).

Дмитрий
20.08.2011, 01:20
прикладываю psw boot, jemmini commander
А глюк кстати, не мой :) Прошил релиз от 11.06.11, скачанный вместе с сырками из гуглокода - те же яйца. ща попробую прошить с оффсайта.

lisica
20.08.2011, 01:44
Димка, просьба попробовать мою разработку фапча, дай ка своё мыло, иди в аське покажись.

Дмитрий
20.08.2011, 01:48
lisica, нееее... я спать уже, только найду квактус 9 с поддержкой ацексов, а то их уже альтера позабыла в новых версиях :)

lisica
20.08.2011, 18:14
Прикольно понаблюдать как работает фапч на разных импульсах rawr...

Вот, диаграммы работы на импульсах 1т, 1.5т,2т, соответственно 4, 6, 8 мс.

lisica
20.08.2011, 18:17
Дмитрий, кстати, в почту глянь.

doorsfan
20.08.2011, 19:00
А глюк кстати, не мой :) Прошил релиз от 11.06.11, скачанный вместе с сырками из гуглокода - те же яйца. ща попробую прошить с оффсайта.
а прошивка, скачанная с nedopc.com такого глюка не имеет, верно?

Дмитрий
20.08.2011, 22:48
doorsfan, не внимательно посмотрел, за 11.06 на гуглокоде 2 релиза, как раз бинарник от второго соответствует бинарнику на оффсайте. Ща квартус поставлю и скомпилю.

lisica
20.08.2011, 23:36
только найду квактус 9
Кстате в 9м нету Ацекса, у меня стоит 9.1 переискал все девайсы - нету

Дмитрий
21.08.2011, 00:28
lisica, именно в 9.0 есть ;) А в 9.1 нету :-P

---------- Post added at 23:28 ---------- Previous post was at 22:57 ----------

doorsfan, balu_dark, ребята, пересобрал прошивку на якобы стабильном релизе прошивки эвы, адреса закинул в ЛС. Сам только что проверил - работает Jemmini.

doorsfan
21.08.2011, 00:42
СПАСИБО! psw boot тоже заработал. теперь, можно выслать (если ZEK не против) lvd оформленный (колбаской) патч, чтобы он включил его в current.

Дмитрий
21.08.2011, 00:48
doorsfan, ZEK говорит, что в этой версии фапча есть глючок, он обещал его пофиксить.

solegstar
09.09.2011, 11:54
doorsfan, ZEK говорит, что в этой версии фапча есть глючок, он обещал его пофиксить.

апну темку! Чем дело закончилось или пока перерыв?

ZEK
09.09.2011, 12:11
Времени нет...

lisica
09.09.2011, 14:00
Даже мой фапч некому проверить...

balu_dark
10.09.2011, 03:59
ну я проверял последний Димын - а твой где? ты не присылал! Да и пока - завал на работе. Времени тестить ничего не будет в ближайшее время :(

lisica
10.09.2011, 07:43
а твой где?
Мои де версии у Дмитрия, так как я в верилоге не шарю - он обещал прикрутить и проверить, или тебе с Юрой отослать на проверку, видать совсем некогда...

doorsfan
10.09.2011, 10:33
готов как пионер

ZEK
10.09.2011, 22:25
он обещал прикрутить и проверить
да я не проверяю а на диаграммы смотрю, полноценной проверки нет так как не допишу mfm декодер тогда была бы проверка, проверять чушой не зная узких мест сложно, не знаеш куда смотреть.

или тебе с Юрой отослать на проверку
Для пентевы обычный фапч не подходит, надо фапч работающий на 28МГц (не кратной 4МГц)

lisica
10.09.2011, 22:28
да я не проверяю а на диаграммы смотрю
Я о Дмитие говорил.



Для пентевы обычный фапч не подходит, надо фапч работающий на 28МГц
он как раз у меня на 28мц

ZEK
10.09.2011, 23:28
Пробило перед сном
фапч 28мгц, классика без левых обработок, с нормальным меандром rclk



module pll28(
input wire clk, // 28mhz
input wire rddat,
output reg rclk,
output reg rawr
);

reg [5:0] counter = 0;
wire[5:0] delta = 27 - counter;
wire[5:0] shift = { delta[5], delta[5], delta[4:1] }; // sign div
wire[5:0] inc = rawr_sr[1:0] == 2'b10 ? shift : 1;

reg [3:0] rawr_sr;

always @ (posedge clk)
begin
rawr_sr <= { rawr_sr[2:0], rddat };
rawr <= !(rawr_sr[3] && !rawr_sr[0] ); // rawr 100ns
end

always @ (posedge clk)
begin
if (counter < 55)
counter <= counter + inc;
else
begin
counter <= 0;
rclk = ~rclk;
end

end

endmodule

Ewgeny7
11.09.2011, 20:35
Флудерам вот сюда (http://www.zx-pk.ru/showthread.php?t=16780). Я уже пошел.

ZEK
12.09.2011, 08:01
При чистке срача под нож ушло слегка не срач. Переспостю



Сообщение от CHRV
Но надеюсь ZEK всетаки ответит в мыло и я тогда тестовую сборку сделаю.


Мыл никаких не получал, если там запрос на использование, копирайтов никаких не ставил, достояние общественности

Ewgeny7
12.09.2011, 10:36
ZEK, ты не против, если я в новую сборку СкорпЭвы прикошачу твой ФАПЧ?
Если да, то кинься пожалуйста последней проверенной версией в ewgeny7(гаф-гаф)speccy.su

ZEK
12.09.2011, 10:51
СкорпЭвы прикошачу твой ФАПЧ?
юзайте кто хочет, я же написал некопирсатил, хотите переименовывайте хотите свои копирайты ставьте, хотите меняйте, все равно. Какой последний проверенный незнаю у Дмитрия спроси, или можешь последний проверить, он либо будет работать либо вообще ничего читаться не будет

Ewgeny7
12.09.2011, 11:04
можешь последний проверить, он либо будет работать либо вообще ничего читаться не будет
Угу, спасибо. Уже привинтил к проекту, буду дома посмотреть. Если дискеты найду...

Ewgeny7
12.09.2011, 17:08
буду дома посмотреть. Если дискеты найду...
Проверил. Это просто чудо, какая разница. Запоротый диск (Эва его не могла ни прочитать, ни форматировать) отформатировался на ура, записался и читается :)

Дмитрий
12.09.2011, 17:18
Ewgeny7, чудо в другом, что с фапчем эва может 20летней давности диски и без ЕпсонСД700 читать успешно :)

ZEK
12.09.2011, 17:30
Запоротый диск (Эва его не могла ни прочитать, ни форматировать) отформатировался на ура
это поверхность помята и/или потянута, и из за фазовых искажений родной диск может не читаться

Ewgeny7
12.09.2011, 17:31
уже три дискеты "оживил". Модуль принят на вооружение :)

balu_dark
12.09.2011, 20:42
А можно бинарник на ЭВУ ????

Ewgeny7
12.09.2011, 20:47
А можно бинарник на ЭВУ ????
(гнусаво) "Эво - это плата с микросхемами, именуемая также девбордой"

breeze
12.09.2011, 21:36
А можно бинарник на ЭВУ ????

Почаще читайте форум разработчиков Евы ;)

http://forum.nedopc.com/viewtopic.php?f=30&t=826

lisica
12.09.2011, 22:41
А кто же мой проверит? А то я мучаюсь - заработает аль нет...

balu_dark
13.09.2011, 01:16
(гнусаво) "Эво - это плата с микросхемами, именуемая также девбордой"

Хто хател тот понял правильно! ;) :v2_dizzy_vodka2:

---------- Post added at 00:16 ---------- Previous post was at 00:15 ----------


Почаще читайте форум разработчиков Евы ;)

http://forum.nedopc.com/viewtopic.php?f=30&t=826

Гы Гы а хтож от них такого подвига ожидает то? я поэтому захожу туда не чаще раза в месяц. Но спасибо за ссылочку :)

breeze
13.09.2011, 01:59
Рискну передать месседж :)



2ZEK: объявись в forum.nedopc.com, будешь свой код фиксить :)

balu_dark
13.09.2011, 06:41
Потестил бин лежащий на недофоруме. Глюк - читает только первый сектор с дорожки - далее сплошной сбой.

---------- Post added at 05:41 ---------- Previous post was at 05:38 ----------


(гнусаво) "Эво - это плата с микросхемами, именуемая также девбордой"

Жень - а дай плиз на свою плату с микросхемами называемую девбордой. бины для скорпового конфига с фапчем. А то есть куча дисков на тестирование :)

ZEK
13.09.2011, 07:50
Глюк - читает только первый сектор с дорожки - далее сплошной сбой
Есть возможность померить длину импульсов rddat с дисковода? А то второй фапч и не работает... есть подозрение что импульсы короткие с дисковода (или наоборот иголки проскакивают), если из за этого плющит, можно улучшить чувствительность к rddat и слегка фильтровать иглы.

balu_dark
13.09.2011, 13:27
Да - сегодня гляну осциллографом - напомни на какой ноге разъема смотреть? (Лень в схему лезть)

balu_dark
14.09.2011, 02:57
Короче так как никто не отвечал - глянул в схему - если правильно понимаю и данные приходят на 27ю ноги - то в аттаче осцилограмы работающего фапча и безработного - из бинарника на недопц.
Развертку не менял чтобы было виднее - поэтому на одном скрине нет параметров.

ZEK
14.09.2011, 10:17
аттаче осцилограмы работающего фапча и безработного
что значит работающего и безработного? читает / не читает?
Из скринов не ясно длительность импульсов

данные приходят на 27ю ноги
27 ноги кого?

balu_dark
14.09.2011, 12:08
27я нога ВГ93 :) об этом ясно даже из названия файла :)
сейчас буду сказать по картинке длительность. Но помоему исходя из картинки и значения развертки это 1 мили секунда. Суть в том что при прочих равных - в работающем фапче - за период проходит только один импульс а в неработающем - 2!!!

ZEK
14.09.2011, 12:53
27я нога ВГ93 об этом ясно даже из названия файла
аа....
но это не то, я имел ввиду от дисковода сигнал а не от плис

длительность импульса на скриншоте 107нс примерно


период проходит только один импульс а в неработающем - 2!!
там на законных основаниях может быть период 2/4/6мкс

balu_dark
14.09.2011, 13:39
Кстати вопрос - а зависит ли этот клок от частоты тактирования вг? а то помнится с какойто целью делалось переключение тактовой частоты ВГ шки. по идее и фапч это как то должон учитывать?

В аттаче 2 скрина двух измерений - на последнем есть параметры сигналов.

ZEK
14.09.2011, 13:45
по идее и фапч это как то должон учитывать?

Не должен, клок может переключаться только в одном случае, при операциях step
Я сырки пентевы особо не рассматривал, если там турбированый bdi клок переключается, но на чтение никак не влияет

Дмитрий
14.09.2011, 13:46
balu_dark, частота переключается в момент позиционирования МГ, при чтении/записи на стандартном TR-DOS контроллере частота 1МГц.

balu_dark
14.09.2011, 13:50
у меня оно 2 Мгц даже в режиме ожидания! и при работе помоему тоже - всегда 2 мгц( переключения не видно никакого).
Гляньте я там положил скрины сигнала с дискогрыза.

balu_dark
14.09.2011, 13:58
Гхм - счас еще раз посмотрел - она сейчас постоянно 1мгц. ниче не понимаю :(

---------- Post added at 12:56 ---------- Previous post was at 12:55 ----------

Конфиг счас вроде недопцшный - ибо ниче не читает

---------- Post added at 12:58 ---------- Previous post was at 12:56 ----------


Не должен, клок может переключаться только в одном случае, при операциях step
Я сырки пентевы особо не рассматривал, если там турбированый bdi клок переключается, но на чтение никак не влияет

Почитал счас ваше общение на их форуме - может дело в инверсии клока?

ZEK
14.09.2011, 14:57
может дело в инверсии клока?
может если rddat с дисковода длинный

balu_dark
14.09.2011, 15:06
ну rddat - глянь в одном из предыдущих сообщений в аттаче - я его на разьеме мерял.

ZEK
14.09.2011, 15:18
вроде нормально, логического анализатора в духе usbee нет?

balu_dark
14.09.2011, 16:04
есть с этим осцилографом.
Тока че им сканить если вроде этот рдат не синхронный?

ZEK
14.09.2011, 16:16
синхронность не причем

для диагностики хорошо бы было увидеть сет из
rddat от дисковода
rawr от вг93
rclk от Вг93
index
irq от вг93
ну и clk от вг93

и попробовать почитать дорожку, записать хотя бы пару секунд
выложить сюда запись и ссылку на программу смотрелку записи

balu_dark
14.09.2011, 16:19
Ты напиши какие сигналы интересуют и те которые на ВГ93 - дай номера пинов. Я вечерком сделаю сканы. только надо придумать в чем их сохранять и чем потом смотреть. Rigol вроде имеет свой формат но позволяет и конвертить во что-то.

---------- Post added at 15:19 ---------- Previous post was at 15:17 ----------

Опередил меня :) Сигналы смотреть по схеме эвы? а то на разных схемах все по разному зовется.

ZEK
14.09.2011, 16:21
вообще перед извращениями хорошо бы посмотреть на поведение без лишней инверсии rddat

balu_dark
14.09.2011, 16:23
нене - я про то что они нашли левую инверсию в своих сырках - мне пока собирать нечем - посему могу только готовое тестить.

balu_dark
14.09.2011, 21:20
Так - я сорри но аналайзера не будет до воскресенья! :( блок анализатора со шлейфом и щупами завален счас коробками и влезть до вечера субботы туда нереально :( .

ZEK
14.09.2011, 22:38
но аналайзера не будет до воскресенья!
попробуй бинарник с форума недопц, CHRV пофиксил rdat

balu_dark
14.09.2011, 23:42
я уже там отписалсо - к сожалению вопреки ожиданиям - не заработало :( Потруси Дмитрия - какой бинарник он мне последним присылал который работает? кто его создавал?

lisica
15.09.2011, 06:02
Если осцил двухлучевой - сними rdat и rawr с вг93, чтоб одновременно. А то так вы ничё не поймёте.

Дмитрий
15.09.2011, 08:10
Потруси Дмитрия
Не надо меня трусить, после командировки и так трусит :) Во вложении архив с файлами из проекта под ревизию r439, сборку которой я тебе присылал.

ZEK
15.09.2011, 10:20
такое ощущение что дисковод быстрее чем надо крутит, в этой версии сделан rclk чисто тестовый, бага в том что он короче чем нужен...
balu_dark, а ты на одном дисководе проверял? можно померить частоты сигнала index c дисковода

---------- Post added at 09:20 ---------- Previous post was at 08:46 ----------

Есть еще одно отличие, может даже более существенное, в новой pll длительность rawr 107нс (минимальная по даташиту), в той что работала у balu_dark 140нс, может из за разброса характеристик ВГ такой прикол.

Стяну квартус старый соберу бин

Дмитрий
15.09.2011, 10:55
По просьбе Димы собрал 2 версии с фапчем на релизе 439, у кого есть возможность - протестируйте, сам смогу тока вечером.

lisica
15.09.2011, 11:48
По просьбе Димы собрал 2 версии с фапчем
А по моей просьбе слабо собрать мою вторую версию? (для проверки)

Дмитрий
15.09.2011, 11:56
lisica, не слабо, но времени мало, да и на работе твоих модулей нет.

Дмитрий
15.09.2011, 12:23
lisica, держи

lisica
15.09.2011, 12:27
lisica, держи
Людиииии!!!!! Проверьте, плиз, а то месяц уже не проверен...

balu_dark
15.09.2011, 15:42
"Тащите все - магарычи на мой порог" (с) Сектор Газа
:)
Сейчас проверю все - без паники :)

---------- Post added at 14:42 ---------- Previous post was at 14:36 ----------


такое ощущение что дисковод быстрее чем надо крутит, в этой версии сделан rclk чисто тестовый, бага в том что он короче чем нужен...
balu_dark, а ты на одном дисководе проверял? можно померить частоты сигнала index c дисковода

---------- Post added at 09:20 ---------- Previous post was at 08:46 ----------

Есть еще одно отличие, может даже более существенное, в новой pll длительность rawr 107нс (минимальная по даташиту), в той что работала у balu_dark 140нс, может из за разброса характеристик ВГ такой прикол.

Стяну квартус старый соберу бин
Ну дисковод вряд ли гонит со скоростью - это TEAC 720k снятый со "Скорпион"а тоесть заведомо не замедленный 1.2М.
частоту индекса померюю но вечером - счас подготовка к сабантую тут. Прошивки я втихаря смогу потестить, а если включу осциллограф - получу по голове что не помагаю :)

Кстати а если сделать rawr не минимальным а чуть длиннее - ведь пограничные параметры это всегда не хорошо - на них всегда будут глюки. Сместить бы в средину диапазона.

Дмитрий
15.09.2011, 15:50
Прошивки я втихаря смогу потестить, а если включу осциллограф - получу по голове что не помагаю
Эх.. знакомая ситуёвина :)

balu_dark
15.09.2011, 15:58
Первый результат : сразу говорю что тестил на том диске который отбраковал последний недо пцшный бин с фапчем - ошибки чтения с первых треков.
Lisica бин не заработал - теже глюки что и у недопц.
версия 3 заработала.
Остальное продолжим.

ZEK
15.09.2011, 16:14
Сместить бы в средину диапазона.
я увеличил до 140нс, в середину плохо, шем шире rawr тем меньше места для маневра, потести v4 тогда будет ясно из за чего не работало
Потом я сделаю v5 проверим и я выложу сырки

balu_dark
15.09.2011, 16:25
или показалось или версия 4 стабильнее 3й - диск который не переводился на 3й - на 4й прошел нормально. Сейчас форматирую тестовый диск - тоже норма.

ZEK
15.09.2011, 16:30
тогда получается трабла 100% была в длительности rawr

balu_dark
15.09.2011, 16:41
Осталось добавить триггер и фильтр доделать. :)

lisica
15.09.2011, 16:51
Lisica бин не заработал - теже глюки что и у недопц.
А можно осциграммы, желательно двумя лучами.(чтоб глянуть как и когда RCLK относительно RAWR)

balu_dark
15.09.2011, 16:52
Да. Только вечером.

ZEK
15.09.2011, 18:01
триггер и фильтр доделать
фильтр это цепочка триггеров, так что только фильтр, я его нарисовал, гоняю на тестбенче загаженым помехами

balu_dark
15.09.2011, 18:14
Засрать помехами - лучше чем реальная дискета ничто не сможет :)
Фантазии может не хватить придумать помеху которая может образоваться на диске пролежавшем 15-20 лет :)

ZEK
15.09.2011, 18:38
Засрать помехами - лучше чем реальная дискета ничто не сможет
если тестбенч не пройдет то дисковод темболее
а по поводу помех :) на скрин глян.

То что за*****е это типа поток от дисковода

ZEK
15.09.2011, 18:59
Ewgeny7 погоняй на скорпэве, Дмитрий завтра появиться попробуем попросить его собрать бин для пентевы



`timescale 1ns/10ps

module pll28(
input wire clk, // 28mhz
input wire rddat_n,
output reg rclk,
output reg rawr_n
);

// filter
reg [3:0] sr;
reg rawr_sync;

always @ (posedge clk)
begin
sr <= { sr[2:0], rddat_n };
if (sr == 4'hF || sr == 4'h0)
rawr_sync <= sr[3];
end

// rawr
reg [4:0] rawr_sr;

always @ (posedge clk)
begin
rawr_sr <= { rawr_sr[3:0], rawr_sync };
rawr_n <= !(rawr_sr[4] && !rawr_sr[0] ); // rawr 140ns
end

// rclk
reg [5:0] counter = 0;
wire[5:0] delta = 27 - counter;
wire[5:0] shift = { delta[5], delta[5], delta[4:1] }; // sign div
wire[5:0] inc = rawr_sr[1:0] == 2'b10 ? shift : 1;

always @ (posedge clk)
begin
if (counter < 55)
counter <= counter + inc;
else
begin
counter <= 0;
rclk = ~rclk;
end

end

initial
rclk = 0;

endmodule

balu_dark
15.09.2011, 19:16
Оки - ждем до завтра. Лисице осцилограмки дам часов после 9 вечера.

Дмитрий
15.09.2011, 21:11
Дмитрий завтра появиться попробуем попросить его собрать бин для пентевы
Завтра можете и попросить, а я сегодня сделаю :-P

ZEK, ты как всегда все переменные попереименовывал :)

balu_dark
15.09.2011, 21:21
Счас попозжа проверю - заканчиваю переводить диски в трд

Дмитрий
15.09.2011, 22:50
v5 тоже работает, а вот сравнить разные версии пока не могу - дите требует внимания.

ZEK
15.09.2011, 23:28
а вот сравнить разные версии пока не могу
Вы сравните, найдите диск который туго читается со второго, третьего раза, понадобятся для теста конвеерного pll

Дмитрий
15.09.2011, 23:48
ZEK, есть диск, который туго читается вовсе :) сейчас доделываю свой плагин для RealCommander-а, который форматит и проверяет дискеты, причем он будет выдавать репорт с количеством попыток чтения каждого сектора (понадобился для проведения анализа качества работы ФАПЧей на разных клонах :) ).

balu_dark
16.09.2011, 01:25
Особых изменений на 5й версии не заметил если честно.
я просто делаю так - прошиваю конфиг и начинаю сливать фаталом с диска в трд.
диски которые читаются с ошибками откладываю в одну кучку - без ошибок - в другую.
с новой версией - беру пачку ошибочных и пробую опять. как правило ошибок становится либо меньше либо уходят совсем. в отвал опять уходят ошибочные диски -ждут новую версию ФАПЧ. И так по кольцу.

Лисица - я конечно сорри ( может уже упареный) но визуально - особой разницы не вижу между твоим фапчем и ZEKa .
Картинки в аттаче.
Вернее вижу 2 разницы - е него работает и клок есть всегда, а твой не работает и клок только во время чтения появляется.

P.P.S я конечно сорри за такой монолог одного актера (решил добавлять к старой месаге и не плодить кучу).
говорю же - был запарен - развернул чуть картинку и увидел что часть данных у тебя идет мимо кассы - смотри архив с названием глюк. Видно что часть импульсов проходит не в нужное время - когда клок в еденице. сейчас еще раз загрузу конфиг 5 и гляну что у него.

Да - у него все четко попадает при нуле на клоке. а у тебя часть импульсов идет в другое время.

ZEK
16.09.2011, 09:16
не в нужное время - когда клок в еденице
они могут при любом состоянии клока приходить, там главное что бы rawr был как можно ближе к середине rclk, rclk задает битовый темп, 1 смена лог уровня клока на 1 бит

lisica
16.09.2011, 09:33
клок есть всегда,
WFDE, когда в 1 то блокирует его.


Видно что часть импульсов проходит не в нужное время - когда клок в еденице.
Так и должно быть

У меня RCLK на грамульку меньше (как в описаниях - 125мс). Может из за этого и не работает? Попробую увеличить его.

PS А самое лучшее проверять осцилом, записав на трек все 11111111, после все 000000000, потом 10101010. Есть утилитка такая что это умеет, у меня она обзывается ustir1.0, Я её немного переделал на ustir1.1, а то надоело за головкой гоняться по диску из за ошибок.

PPS
там главное что бы rawr был как можно ближе к середине
В диаграмме описано, что ближе к концу.:confused:

ZEK
16.09.2011, 10:24
В диаграмме описано, что ближе к концу.
это пример, на этой диаграмме нарисовано 2 ситуации

В даташите на wd1793 написано что rclk должен отступать от rawr минимум на 40нс
если думать логически и отодвинуть максимально фронты rawr от rclk то получается что rawr должен находиться в середине rclk, думаем дальше - нам надо устойчивый фапч то есть что бы он мог реагировать на как можно большее отклонение rawr от положенного места, для этого rawr опять же надо поставить в середину что бы было как можно больше запаса для фазовых бросков как вперед так и назад.

lisica
16.09.2011, 16:34
блин, застопорился на времени rawr, никак не могу его чюточки увеличить...

balu_dark
16.09.2011, 18:10
так покажи свой код - попытаемся сравнить его с последним от ZEK. бо он тоже воевал с этим.

lisica
16.09.2011, 18:44
так покажи свой код - попытаемся сравнить его с последним от ZEK.
Попробуй сравнить vhdl и verilog...
Я, например, в ZEKовом коде ничё не понял...

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
use IEEE.numeric_std.ALL;
entity fapch is
port(
f28 : in std_logic;
rdat : in std_logic;
wf_de : in std_logic;


del1: buffer std_logic_vector(2 downto 0);

rclk : buffer std_logic;
rawr : buffer std_logic



);
end fapch;

architecture fapch_arch of fapch is
signal rd1: std_logic;
signal rd2: std_logic;
signal fa: std_logic_vector(4 downto 0);
signal del: std_logic_vector(1 downto 0);
signal f8: std_logic;
signal ff: std_logic;
--signal del1: std_logic_vector(2 downto 0);


begin

ff <= f28 xor fa(0);
f8 <= del(1);

process(ff)
begin
if (ff'event and ff='0') then
del <= del + 1;
end if;
end process;

process(f8,rdat,rd1)
begin
if (f8'event and f8='0') then
if rdat = '0' then
rd1 <= '1';
else
rd1 <= '0';
end if;
end if;
end process;

process(f8,rd1,rd2)
begin
if (f8'event and f8='0') then
if rd1 = '1' then
rd2 <= '0';
else
rd2 <= '1';
end if;
end if;
end process;




rawr <= '0' when wf_de = '0' and (rd1 = '1' and rd2 = '1') else '1';

process(f8,rawr)
begin
if (f8'event and f8='0') then
if rawr = '0' then
if fa(3 downto 0) < 3 then
fa(3 downto 0) <= fa(3 downto 0) + 4;
elsif fa(3 downto 0) < 5 then
fa(3 downto 0) <= fa(3 downto 0) + 3;
elsif fa(3 downto 0) < 7 then
fa(3 downto 0) <= fa(3 downto 0) + 2;
elsif fa(3 downto 0) = 7 then
fa(3 downto 0) <= fa(3 downto 0) + 1;
elsif fa(3 downto 0) > 12 then
fa(3 downto 0) <= fa(3 downto 0) - 3;
elsif fa(3 downto 0) > 9 then
fa(3 downto 0) <= fa(3 downto 0) - 2;
elsif fa(3 downto 0) > 8 then
fa(3 downto 0) <= fa(3 downto 0) - 1;
end if;
else
fa <= fa +1;
end if;
end if;
end process;

process(rclk)
begin
if wf_de = '0' then
rclk <= not fa(4);
else rclk <= '1';
end if;
end process;

end fapch_arch;

Вот, смотрите, жирным собсно формирование 125 мс как на схеме...

balu_dark
16.09.2011, 20:12
Ага - ок. распечатаю и сравню попозже - счас пока загружен работой.
Частота клока в этой машине как и у эвы - 28 Мгц?

lisica
16.09.2011, 21:42
Частота клока в этой машине как и у эвы - 28 Мгц?
Ага, вход 28мц

ZEK
16.09.2011, 22:22
Сравнил последний свой фапч и твой
ну из того что бросается в глаза, у меня чуть шустрее выравнивает фазы, и при резких броска у тебя прилипает rawr к rclk, у меня делает отступ (по даташиту он обязателен).

Ну и длительность rawr

lisica
16.09.2011, 23:40
у меня чуть шустрее выравнивает фазы,
Ну, это поправимо.


при резких броска у тебя прилипает rawr к rclk, у меня делает отступ
А здесь как? Запоминать RDAT и выставлять его позже?
А вдруг это предыдущий опоздал, или следующий слишком рано прошёл в какую сторону двигать?
Или вы хотите окончательно нечитаемые дискеты чтоб заработали?

Лучше подскажите как импульс RAWR увеличить...

ZEK
17.09.2011, 00:01
Лучше подскажите как импульс RAWR увеличить...
у меня просто, он формируется на сдвиговом регистре, чем длинней регистр тем длиннее rawr, сделай себе так же

lisica
17.09.2011, 02:08
Прошу Дмитрия сделать сборку для проверки.

Увеличил RAWR до 142нс и немного ускорил смещение к середине.

Исправил очепятку длины :)

lisica
12.10.2011, 22:25
Чёт совсем затихло. Дим, как там, собрал\проверил, или как?

WingLion
13.10.2011, 20:32
эх, давно не брал я в руки шашку...

Идея такая...

Счетчик/делитель на частоту считывания с дисковода, с фазовым корректором.

На VHDL это выглядит примерно так:


--- заголовки для ясности пропущены

constant phase_level : integer := 128; -- уровень привязки фазы - надо подбирать
constant NN : integer := 4; -- чувствительность -
-- число равное степени двойки, чтобы не усложнять схему.
-- 1 - жесткая привязка
-- 2 - средняя привязка
-- 4 - мягкая привязка
-- подбирать опытным путем или делать настраиваемо
constant frq : integer := 14; -- число считается как frq = Fread*256/Fclk

signal ct : integer range 0 to 255;
signal outCLK : integer range 0 to 1;
begin

process (clk) begin

IF clk'event and clk = vcc THEN
-- приходит импульс (его надо сузить до длины в один период clk)
IF impuls = vcc THEN
ct <= ct + frq + (Phase_Level - ct)/NN;
ELSE
ct <= ct + frq;
END IF;
outCLK <= ct / 128;
END IF;

end process;

end;

newart
23.11.2011, 00:08
Прошил сегодня zxevo_fw_apll_v5.rar и перегнал около сотни дискет.

Субьективно ничего не изменилось, по прежнему спасает только правая рука и смена дисковода... (и то увы не всегда) .

ZEK
23.11.2011, 09:42
Зависит от того с чем сравнивать

Ewgeny7
23.11.2011, 13:08
спасает только правая рука
гм... а что ты ей делаешь, простите за вопрос? ;)

SoftFelix
23.11.2011, 14:10
Сообщение от newart Посмотреть сообщение
спасает только правая рука
гм... а что ты ей делаешь, простите за вопрос?
Можно я отвечу? Спасибо. Я думаю, newart использует правую руку в этом процессе, так же, как и я (очень надеюсь, что и многие другие Спектрумисты). Нежно и ласково тереблю дискетку в дисководе, как бы чуть вынул, а потом чуть вставил.... И так многократно. Простые движения. Очень помогает скрасить досуг при чтении плохочитаемых дисков.

doorsfan
23.11.2011, 18:13
ещё практикуется кручение защёлки дисковода правой рукой

Ewgeny7
23.11.2011, 22:41
ещё практикуется кручение защёлки дисковода правой рукой
как я отстал от жизни... Или наоборот??? Я с 1997 года не крутил ручку дисковода... Только иногда нажимал кнопу на трёхдюймовике. Да и то последние года два забыл как дисковод выглядит :)

newart
24.11.2011, 11:01
Зависит от того с чем сравнивать
По прежнему очень много бэдов, которых получается избежать дерганьем ручки дисковода.

Возможно ли это как то автоматизировать? Скажем взять вибратор от телефона и посадить сверху на головку?..

ZEK
24.11.2011, 11:31
получается избежать дерганьем ручки дисковода
ты когда ручку дергаешь, диск на шпинделе в другом месте фиксируется, 0.5мм перекоса с головой достаточно что бы попасть на/мимо дорожки. Это косяк юстировки и фапч никакой не поможет

newart
24.11.2011, 15:04
Это косяк юстировки
Ну вот я и размышляю, как бы его автоматизировать, что бы не сидеть пол дня с протянутой к дисководу рукой.

ZEK
24.11.2011, 16:04
Ну вот я и размышляю, как бы его автоматизировать
а ни как
правильно надо юстировку крутить

CodeMaster
24.11.2011, 16:24
правильно надо юстировку крутить

А если диск уже с непрвильной записан?

ZEK
24.11.2011, 17:45
А если диск уже с непрвильной записан?
вот для этого и надо крутить, пока не прочитает, и крутить лучше подключившись осцилом к усилку головки, и крутить пока максимальная амплитуда импульсов не вылезет

newart
25.11.2011, 07:27
вот для этого и надо крутить, пока не прочитает, и крутить лучше подключившись осцилом к усилку головки, и крутить пока максимальная амплитуда импульсов не вылезет
Что бы потом нормальные диски перестали читаться? :)