|
ARM7 (LPC17xx)+HDD |
|
|
|
Aug 28 2010, 11:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Если такое уже было - плиз тките ссылку.
Волею судьбы и непосредственного начальства, перешел ко мне проект ушедшего коллеги. Есть уже в общем, готовый девайс, даталоггер, на LPC1764, который в одном случае вводит сигнал с АЦП и пишет его на SD, в другом наоборот - воспроизводит ее с SD через свой ЦАП. 10 бит пока достаточно. В новое версии, коей мне придется заниматься, но (в смысле начальство) как обычно "желаю чтобы всё". Ну а конктерно пока 3 вещи: 1) замену SD на USB-флешку 2) Ethernet (оно где-то услышало слова "вебсервер и SNMP) 3) замену SD на HDD.
Проц, если надо (100% надо), будет заменен на другой, но из того же семейства 17хх.
И если первые два пункта я хотя бы в общих чертах представляю как делать (а в конкретных - буду задалбливать уважаемое общество своими дурацкими вопросами, но позже), то третий - я с полной непонятке. Переход на другой проц, за пределами этого семейства (LPC17xx) оно не разрешает. (Причины мне неизвестны.) Винты на сегоднешний день существуют (по интерфейсам) - SATA, PATA, (IDE) и USB.
USB-винт пока не рассматриваются, поскольку как я понимаю, это частный случай п.1 Собственно, тема с HDD возникла в первую очередь из-за возросших требований с обьему данных, пока хватало накопителя до 4гб, использовали SD, теперь речь идет как минимум от нескольких сотнях гигабайт. Плюс - несколько возрастают требования к скорости потока данных, предыдущий разработочик на SD не достиг новых требований. USB получается очень "на грани", но скорее всего тоже не успеет.
Реализовать SATA на LPC17xx мне возможным не представляется (если неправ - переубедите). PATA (IDE) - обычная параллельная шина, но поскольку в LPC17xx нет ни одного порта, в котором можно использовать биты 0-15 непрерывно, как шину данных, то придется работать через 8-битную шину, добавит пару внешних регистров.
Теперь собственно, вопросы:
1) буду раз услышать другой вариант, кроме как мултиплексированная 8/16 параллельная шина и эмуляция IDE. SATA-винт предполагается подключать через переходник IDE-SATA.
2) какой реальной скорости записи и чтения потока даных, можно ожидать в этом варианте? На сегоднешний день, задача в получении не более 2-3 мбайт/сек. Возможно ли это?
3) по программированию - может кто знает похожие реализации подключения IDE к микроконтроллеру? Интересуют команды т подпрограммы самого нижнего уровня.
4) NTFS нахалаву нет, так что FAT32, но как отформатировать 300-500 гю винт ? Винда не дает.
5) буду рад любой помощи.
|
|
|
|
|
Aug 28 2010, 21:24
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Allregia @ Aug 28 2010, 15:52)  1) буду раз услышать другой вариант, кроме как мултиплексированная 8/16 параллельная шина и эмуляция IDE. SATA-винт предполагается подключать через переходник IDE-SATA. High Speed USB и соответствующий переходник. ИМХО, это лучше софтовой эмуляции PATA. Цитата(Allregia @ Aug 28 2010, 15:52)  2) какой реальной скорости записи и чтения потока даных, можно ожидать в этом варианте? На сегоднешний день, задача в получении не более 2-3 мбайт/сек. Возможно ли это? Возможно. Цитата(Allregia @ Aug 28 2010, 15:52)  4) NTFS нахалаву нет, так что FAT32, но как отформатировать 300-500 гю винт ? Винда не дает. Отформатировать не виндой. Хоть бы и самим устройством можно.
|
|
|
|
|
Aug 29 2010, 10:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(aaarrr @ Aug 29 2010, 00:24)  High Speed USB и соответствующий переходник. ИМХО, это лучше софтовой эмуляции PATA. Лучше, но в LPC176х нет High Speed USB, есть только Full Speed, потому собственно, и возникла вся эта тема... Цитата LPC17 это совсем не ARM7, если что Cortex M3, но в данном случае это неважно.
|
|
|
|
|
Aug 30 2010, 15:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(dimka76 @ Aug 30 2010, 11:57)  http://elm-chan.org/fsw/ff/00index_e.htmlТам были примеры для работы с винчестером Спасибо, эту ссылку я знаю. Может есть еще какие? P.S. Напомните плиз про ограничения, я помню что ФАТ32 ограничено размером файла (4гб), а что с размером диска? Там, если мне память не изменяет, по LBA были какие-то ограничения. Я кое-что нашел в инете, но там рассматривают в основном ограничения. связанные с Int13 биоса и с виндой.
|
|
|
|
|
Aug 30 2010, 17:27
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(Allregia @ Aug 30 2010, 18:06)  P.S. Напомните плиз про ограничения, я помню что ФАТ32 ограничено размером файла (4гб), а что с размером диска? Там, если мне память не изменяет, по LBA были какие-то ограничения. Я кое-что нашел в инете, но там рассматривают в основном ограничения. связанные с Int13 Если ограничения собственно по самому ATA, то LBA48 поддержать обязательно, если хотите с современными винтами работать. Там несложно - описание в стандарте один небольшой подраздел занимает. Грубо говоря, в регистры номера сектора и дорожки теперь следует записывать не один байт, а два последовательно - и все значения стали 16-рарядными, таким образом расширяя адресацию секторов.
|
|
|
|
|
Aug 30 2010, 19:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(VslavX @ Aug 30 2010, 20:27)  Там несложно - описание в стандарте один небольшой подраздел занимает. Грубо говоря, в регистры номера сектора и дорожки теперь следует записывать не один байт, а два последовательно - и все значения стали 16-рарядными, таким образом расширяя адресацию секторов. Более-менее понятно, попробую еще погуглить, но на всякий случай -в ссылочку не ткнете? Пока я натыкаюсь на описание борьбы в этим в вин9х. Поправьте если я ошибаюсь: В старом варианте, LBA -28 bit, поэтому макс. размер диска при 512б секторе = 137438952960 =~127Gb (если считать что "гб"=1024*1024*1024) или 136гб если по 1000. При LBA48 - предел уже 131071 терабайт. В FatFS написано что Volume size: Depends on FAT specs. (upto 2T bytes on 512 bytes/sector) LBA там DWORD, получается 2^32*512=2047Gb, в самом деле. Для данной аппликации 2Т мне с головой хватит.
|
|
|
|
|
Sep 1 2010, 05:54
|
Профессионал
    
Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347

|
Цитата 1) замену SD на USB-флешку для этого нужен USB host, нет ? где он у LPC17xx ? наверно лучшее решение - переход на какой-нибудь ARM9/AVR32, установка Linux-a, там будет и USB host, и ф.с.на любой вкус.
|
|
|
|
|
Sep 1 2010, 06:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Цитата(ukpyr @ Sep 1 2010, 08:54)  для этого нужен USB host, нет ? где он у LPC17xx ? LPC1765,66,68,69 Цитата наверно лучшее решение - переход на какой-нибудь ARM9/AVR32 Да, но как я говорил выше - этого сделать нельзя.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|