Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR+HDD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
wowka
Вопрос тем, кто реализовывал подключение HDD к AVR. Какой МС необходим для достижения PIO4 при обмене данными между МС и винтом? 8535 удовлетворяет данным требованиям?
DeXteR
На AVRFREAKS.NET видел проэкт МП3 плеера на атмеге 8515 + HDD + MP3 микросхемка

В протеусе версии 6.7 есть моделька HDD

Можно поиграться wink.gif
beer_warrior
PIO-4 минимальное время цикла 120 нс, скорость передачи 16,6 МБ/сек
Какая говоришь частота у 8535 ?
wowka
Частота 16MHz
Polaris
Мне кажется, что возиться с винтом смысла нет, так как в обиход широко вошли карточки MMC-SD, функциональность нисколько не меньше (не верю, что есть смысл в обработке микроконтроллером гигабайтных объемов информации), а работать с ними не в пример проще. А для винта нужны сложные источники питания (все таки два напряжения, причем не с маленькими токами), габариты опять же... Лучше начать с флэшек.
Но если брать сам вопрос, то 16 МГц хватает, плюс нужно не менее 1 кб памяти в контроллере, меньшим не обойдешься. А для нормальной функциональности (считай, что 512 байт сразу ушло, так что на стэк, переменные компилятора и твои собственные останется только 512 байт, иногда этого не хватает). Ну и по портам смотри, работать нужно будет все-таки параллельно, так что 3 полных порта вынь да положь. Итого есть смысл подумать даже о меге32, если проект не просто работает с винтом.
wowka
Спасибо за столь развёрнутый ответ. Работать надо именно с винтом. Про память понял. Посмотрел в сети примеры работы с винтами и AVR: даже при использовании mega128 часто применяют внешнюю память на 1к. Чем вызвано? Скоростью последней?
m16
вот проект на меге128 с исходниками http://www.frankvh.com/mp3player/
и еще один http://www.zinetz.info/article.php?id=avr_ata_6
defunct
Цитата(Polaris @ Dec 23 2005, 20:57) *
Но если брать сам вопрос, то 16 МГц хватает, плюс нужно не менее 1 кб памяти в контроллере, меньшим не обойдешься. А для нормальной функциональности (считай, что 512 байт сразу ушло, так что на стэк, переменные компилятора и твои собственные останется только 512 байт, иногда этого не хватает). Ну и по портам смотри, работать нужно будет все-таки параллельно, так что 3 полных порта вынь да положь. Итого есть смысл подумать даже о меге32, если проект не просто работает с винтом.


А как вы считаете, если взять m162 или m8515 и добавить винт в адресное пространство контроллера, плюс еще памяти прикрутить 32kb SRAM.
beer_warrior
Цитата
то 16 МГц хватает, плюс нужно не менее 1 кб памяти в контроллере, меньшим не обойдешься.

Нет работать, конечно будет, только вот для заяленного PIO-4 или мега будет заниматься только прокачкой данных, или скорость придеться снижать.
Как стоит вопрос? Нужно ли обеспечивать 16Мб/с?

Цитата
даже при использовании mega128 часто применяют внешнюю память на 1к. Чем вызвано? Скоростью последней?

Винт устройство блочное, т.е. нельзя адресоваться к байту по произвольному адресу, как в электронной памяти. Минимальная единица адресации - блок 512 байт. Т.е если нужен всего один байт придеться
все равно читать 512 (ну и где-то их хранить). т.е. чем больше в системе ОЗУ, тем легче работать.
Как верно заметил Polaris, как минимум 512 байт придеться в любом случае отрезать под буфер винта.
По поводу теории советую обратиться к творчеству М.Гука написавшего кучу справочников по железу РС.
Цитата
добавить винт в адресное пространство контроллера

Может я чего-то забыл, но у винтов ИМХО 16-разрядная шина данных. smile.gif
defunct
Цитата(beer_warrior @ Dec 27 2005, 10:18) *
Может я чего-то забыл, но у винтов ИМХО 16-разрядная шина данных. smile.gif


http://www.interfacebus.com/IDE_HardDrive_...escription.html

старые стандарты ATA1 и ATA2 (более быстрые и не нужны для связи с AVR), поддерживают 8-ми битные данные.
Rst7
Цитата(defunct @ Dec 27 2005, 11:09) *
Цитата(beer_warrior @ Dec 27 2005, 10:18) *

Может я чего-то забыл, но у винтов ИМХО 16-разрядная шина данных. smile.gif


http://www.interfacebus.com/IDE_HardDrive_...escription.html

старые стандарты ATA1 и ATA2 (более быстрые и не нужны для связи с AVR), поддерживают 8-ми битные данные.


НЕ ВЕРЬТЕ! 8 бит можно в регистры комманд просунуть. Буфер данных - только по 16 бит. Этим наелись, когда к спектруму цепляли. Приходилось доп. буфер старшего байта ставить, иначе - никак.
defunct
Цитата(Rst7 @ Dec 27 2005, 11:39) *
НЕ ВЕРЬТЕ! 8 бит можно в регистры комманд просунуть. Буфер данных - только по 16 бит. Этим наелись, когда к спектруму цепляли. Приходилось доп. буфер старшего байта ставить, иначе - никак.


Видимо не сполна наелись, либо винт не поддерживал ATA1/2 smile.gif
http://www.t13.org/docs2004/e04153r0_Annex...l_cmd_usage.pdf - 80kb
на странице 8, table 2 можно найти ATA команду - ENABLE 8-bit TRANSFERS.
Rst7
Цитата(defunct @ Dec 27 2005, 12:27) *
Цитата(Rst7 @ Dec 27 2005, 11:39) *


НЕ ВЕРЬТЕ! 8 бит можно в регистры комманд просунуть. Буфер данных - только по 16 бит. Этим наелись, когда к спектруму цепляли. Приходилось доп. буфер старшего байта ставить, иначе - никак.


Видимо не сполна наелись, либо винт не поддерживал ATA1/2 smile.gif
http://www.t13.org/docs2004/e04153r0_Annex...l_cmd_usage.pdf - 80kb
на странице 8, table 2 можно найти ATA команду - ENABLE 8-bit TRANSFERS.


Ага, было дело... Только не работало почему-то. Не вспомню щас, такая же комманда/код была или нет, но факт - 16 бит и все.
wowka
Вопрос стоит именно - PIO-4. Шина данных винта однозначно 16 бит.
То, что необходим МС с большим кол-ом портов, нежели 8535 - понятно (ещё нужен LCD и клава ...).
За ссылки отдельное спасибо.
beer_warrior
Цитата
Вопрос стоит именно - PIO-4. Шина данных винта однозначно 16 бит.
То, что необходим МС с большим кол-ом портов, нежели 8535 - понятно (ещё нужен LCD и клава ...).


Я бы например, в таком случае про AVR забыл бы, явно проситься, что-то
ARMовское.
AndyBig
Цитата
Я бы например, в таком случае про AVR забыл бы, явно проситься, что-то ARMовское.

Почему? Человек же не сказал, что ему необходимо выжимать из диска доступный в PIO-4 максимум скорости. Взять многоножечную атмегу, желательно с интерфейсом внешней памяти (ATmega64), хотя можно и без него (ATmega169) и прицепить к ней SRAM и HDD. Это вполне реально сделать.
wowka
ARM конечно здорово, но стоимость проекта и монтаж BGA .....
Спасибо всем - буду эксперементировать
beer_warrior
Цитата
Почему? Человек же не сказал, что ему необходимо выжимать из диска доступный в PIO-4 максимум скорости.


Цитата
Вопрос стоит именно - PIO-4.


Я собст-но специально уточнил.

Ясен пень, что если скорость не принципиальна, можно и на 8951 делать.

Цитата
ARM конечно здорово, но стоимость проекта и монтаж BGA .....
Спасибо всем - буду эксперементировать


Поинтересуйтесь ценой и корпусом, например для AT91SAM7S128, будете приятно удивлены.

И напоследок, рассудите нас с AndyBig, почему именно PIO-4?
AndyBig
Я видел, что он настаивает на PIO-4, но не видел что бы он говорил о требовании достичь максимальной скорости этого режима smile.gif. Этот режим ограничивает максимальную скорость трансфера... По минимальной скорости справится и 51-й smile.gif
Но и правда интересно - почему именно PIO-4? smile.gif
wowka
Пропишите по всей поверхности винт объёмом гигов так хотябы 80, время - основной критерий. Проект очень специфичный и узко специализированный.
kanzler
Мой совет будет такой. Вот здесь www.yampp.com реализован mp3 плеер с применением HDD и USB на mega161. Всё прекрасно работает. Есть исходники, так что с написанием программы проблем не должно быть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.