Всё, решил проблему первой дорожки хитрым костылем))) Проблема была в запаздывании изменения переменной стороны по сравнению с сигналом с контроллера дисковода, при генерации заголовка сектора, если сторона не равна текущей, то подставляю значение 2, CRC перестает совпадать контроллер переходит на второй круг, где данные уже нормальные.
А какая arduino используется в вашем проекте?
такая подойдет?
http://www.ebay.com/itm/New-Pro-Mini...cAAOSw3ydVmiUn
А в чем трудность "не костылем"?
Да, но лучше тут http://ru.aliexpress.com/item/1Pc-Ne...a-d0c76608e90d
В том, что нельзя в эмуляторе сменить сторону пока не отправлена вся дорожка, а в реале смена стороны может произойти в середине дорожки.
UPD: Теоретически, код эмулятора можно уместить в 168p, если использовать размер кластера на карточке 32/64k
Последний раз редактировалось EvgenRU; 04.04.2016 в 14:47.
Я думаю что 328р- самый раз: в Китае платки с ними почти ничего не стоят.
Если там Atmega328p, то никаких проблем, заливайте скетч и подключайте вместо дисковода, заодно и проверите, а то пока что никто не подтвердил работу, хотя у меня работает, значит должно работать
PS: с текущим скетчем нужно кинуть в корень флешки файл default.trd
PS2: файлы с гитхаба нужно кинуть в папку FDD_Emulator
PS3:
к шлейфу подключаем к контактам напротив выемок, т.е. та сторона что полностью плоская на шлейфе, если смотреть на неё сверху дырками к себе, то INDEX будет 4-ым справа
Ардуино Сигнал FDD
pin A0, SIDE SELECT (FDD pin 32)
pin A1, DRIVE SELECT (FDD pin 14/A, 12/B)
pin 8, DIRECTION SELECT (FDD pin 18)
pin 1, READ_DATA (FDD pin 30)
pin 2, STEP (FDD pin 20)
pin 4, MOTOR ON (FDD pin 10/A, 16/B)
pin 5, INDEX (FDD pin 8)
pin 6, TRACK 00 (FDD pin 26)
pin 7, WRITE PROTECT (FDD pin 28)
Последний раз редактировалось EvgenRU; 04.04.2016 в 16:25.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)