реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Коллектор данных на картах памяти малого размера, Применение карт памяти в качестве накопителя данных без применения FAT
ut1wpr
сообщение Mar 1 2009, 06:29
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 98
Регистрация: 20-06-05
Пользователь №: 6 150



Подскажите, пожалуйста, можно ли использовать карту памяти небольшого размера (скажем MMC 16 МБайт) для устройства, следящего за напряжением в сети и накапливающего данные во времени. Поясню точнее, т.к. ясно, что можно smile.gif Хочется использоваит карту просто как внешнюю память без применения FAT. Т.е. прямо адресоваться к заранее вычисляемому адресу, записывать в него блок данных (скажем, байт 20) фиксированной длины.
О блочном чтении/записи знаю, реализовывал в Атмеловской последовательной. Вот теперь вопрошаю, а можно ли ММС так использовать?
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Mar 1 2009, 07:42
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



можно.
Go to the top of the page
 
+Quote Post
Клим
сообщение Mar 1 2009, 08:15
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(ut1wpr @ Mar 1 2009, 10:29) *
Подскажите, пожалуйста, можно ли использовать карту памяти небольшого размера (скажем MMC 16 МБайт) для устройства, следящего за напряжением в сети и накапливающего данные во времени. Поясню точнее, т.к. ясно, что можно smile.gif Хочется использоваит карту просто как внешнюю память без применения FAT. Т.е. прямо адресоваться к заранее вычисляемому адресу, записывать в него блок данных (скажем, байт 20) фиксированной длины.
О блочном чтении/записи знаю, реализовывал в Атмеловской последовательной. Вот теперь вопрошаю, а можно ли ММС так использовать?

Читать можно, а писать только целым сектором 512 байт.
Go to the top of the page
 
+Quote Post
ut1wpr
сообщение Mar 1 2009, 10:07
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 98
Регистрация: 20-06-05
Пользователь №: 6 150



Цитата(Клим @ Mar 1 2009, 11:15) *
Читать можно, а писать только целым сектором 512 байт.

Т.е. запись как обычно: вычисляем адрес сектора, читаем сектор, по вычисленному смещению модифицируем сектор, потом пишем сектор на его же место?
Правильно?
Go to the top of the page
 
+Quote Post
VaaG
сообщение Mar 1 2009, 10:57
Сообщение #5





Группа: Новичок
Сообщений: 13
Регистрация: 21-02-09
Из: Москва
Пользователь №: 45 189



Здравствуйте.

Присоединяюсь к вопросу!
Тоже организовал последовательно через AVR
Использовал библиотеку avrlib
Пишет\читает\инициализирует без ошибок

В библиотеке сектор и буфер определены так:
u32 sector=300; //здесь понятно, номер сектора
u08 buffer[0x200];
//размер буфера 512 б. Но что представляет из себя буфер??? строку? или что?

Что такое 0x200 ???

процедуры записи\чтения соответственно
mmcWrite(sector, buffer);
mmcRead(sector, buffer);

Спасибо!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 1 2009, 11:02
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ut1wpr @ Mar 1 2009, 13:07) *
Т.е. запись как обычно: вычисляем адрес сектора, читаем сектор, по вычисленному смещению модифицируем сектор, потом пишем сектор на его же место?
Правильно?

Правильно.

Цитата(VaaG @ Mar 1 2009, 13:57) *
u08 buffer[0x200];[/b] //размер буфера 512 б. Но что представляет из себя буфер??? строку? или что?

Массив u08 размерностью 512 элементов, т.е. массив из 512 байт.

Цитата(VaaG @ Mar 1 2009, 13:57) *
Что такое 0x200 ???

Число... шестнадцатеричное.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 1 2009, 11:02
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(VaaG @ Mar 1 2009, 13:57) *
Что такое 0x200 ???

0x200 == 512


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
VaaG
сообщение Mar 1 2009, 11:32
Сообщение #8





Группа: Новичок
Сообщений: 13
Регистрация: 21-02-09
Из: Москва
Пользователь №: 45 189



Спасибо aaarrr и MrYuran
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 1 2009, 11:33
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
можно ли использовать карту памяти небольшого размера


Если размер небольшой, лучше использовать AT45DBxxx - надежнее, и можно организовать последовательную запись данных размером меньше одного блока, т.е. не насиловать каждый блок размер_блока/размер_записи раз. Считывать тоже можно с произвольного адреса - т.е. экономия на буфере блока.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 1 2009, 11:44
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Rst7 @ Mar 1 2009, 14:33) *
Если размер небольшой...

...и денег не жалко. А так - да, хороший вариант. Есть еще numonyx'овские M25PE/M45PE - у них ресурс повыше, но объемы маленькие.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 1 2009, 13:19
Сообщение #11


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
...и денег не жалко.


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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Mar 1 2009, 14:57
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
лучше использовать AT45DBxxx - надежнее, и можно организовать последовательную запись данных размером меньше одного блока
все равно сектора затираются последовательно, так что по барабану. преимущество только при непрерывном потоке данных, когда используются 2 внутр.буфера.
вот цена на АТ45 слишком завышена, факт...
Цитата
Мелкого размера ММС можно купить только на барахолке (т.е. вариант для нормальной разработки отпадает), большие - сплошная китайчатина, часто маловменяемая.
зачем искать разное старье ? Kingston MicroSD на 1Г стоит 4$, разъем - еще 3-4$. Все равно дешевле чем AT45DB642, объем в 125 раз больше. Плюс возможность в любой момент прочитать/записать в картридере на компе.

Сообщение отредактировал ukpyr - Mar 1 2009, 15:05
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 1 2009, 15:04
Сообщение #13


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
все равно сектора затираются последовательно, так что по барабану.


Стирание - одно на сектор. А не одно на каждую запись. Так что выигрыш есть и он немал. При размере записи 20 байт, грубо говоря, ресурс увеличивается в 25 раз (это если 45ка с блоком в 512 байт).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
galjoen
сообщение Mar 1 2009, 15:05
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Rst7 @ Mar 1 2009, 14:33) *
Если размер небольшой, лучше использовать AT45DBxxx - надежнее, и можно организовать последовательную запись данных размером меньше одного блока, т.е. не насиловать каждый блок размер_блока/размер_записи раз. Считывать тоже можно с произвольного адреса - т.е. экономия на буфере блока.

Насчёт использования AT45DBxxx согласен. До 8 мбайт они бывают. У меня год на запись в цикле AT45DB642D стояла и не сдохла. Но они вообще-то тоже блоками пишутся. Тут преимущество только в том, что можно данные накапливать, ихний буфер используя. А в случае MMC в ОЗУ такой буфер выделять придётся.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 1 2009, 15:12
Сообщение #15


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Но они вообще-то тоже блоками пишутся.


Повторюсь. Стирание - одно на блок. Запись используется без стирания. Те данные, которые не надо трогать заполняются 0xFF. В результате по AND'у они накладываются.

Цитата
вот цена на АТ45 слишком завышена, факт...


Завышена. Хотя, на том же дигикее 100 штук 45DB642 по $4.

Цитата
Kingston MicroSD на 1Г


А какой, кстати, температурный диапазон у нее? И хотелось бы вменяемый даташит smile.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 13:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016