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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> MMC по 1 байту, Работа с MMC на слабом MCU
Пришелец
сообщение Sep 24 2008, 09:19
Сообщение #1


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



Добрый день! smile.gif

Может кто в курсе?

Можно ли читать MMC по одному байту с любого адреса.

Можно установить длину блока - есть такая команда.
Вопрос в том адрес блока в этом случае считается с учётом установленной длины или он всё равно всегда кратен 512 байт?



А то уж больно геморно с ней работать буфферы по 512 байт отводить.
Go to the top of the page
 
+Quote Post
bloodden
сообщение Sep 24 2008, 09:30
Сообщение #2


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



А зачем всё хранить? Считывайте весь блок, а нужные данные сохраняйте.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Sep 24 2008, 09:46
Сообщение #3


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



Ха в том то и вопрос.

Пример:
Вывод звука
Вывод графики на дисплей
Ну и работа с каким то файлом

одновременно.

т.е. требуется 512 *3 полтора килобайта.

Это много для микроконтроллера.

Работать с линейной памятью удобнее в моём случае.

А скорость очень уж высокая и не требуется - готов пойти на потери скорости при побайтном считывании.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 24 2008, 09:53
Сообщение #4


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

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



Цитата
А скорость очень уж высокая и не требуется - готов пойти на потери скорости при побайтном считывании.


Так может просто прочитать без записи в ОЗУ нужное количество байт в секторе да и все? А потом уже читать куда надо? Кривовато, но как вариант...


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


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



Была такая мысль.

Но это уже больно накладно.

При выводе звука 16 кгц каждые 64 мс по spi читать 512 байт не получится


интересно всё таки. при длине блока 1 байт как вычисляется адрес блока?

приёдтся экспепримент наверное ставить wacko.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 24 2008, 10:06
Сообщение #6


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

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



Цитата
приёдтся экспепримент наверное ставить


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


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


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



мысль дельная a14.gif
Go to the top of the page
 
+Quote Post
etoja
сообщение Sep 24 2008, 10:58
Сообщение #8


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

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Длина блока зашита в карточку и работать с другой длиной блока не будет.
Читать карточку можно только блоками. С произвольного адреса - нельзя.
Для карточек более 2Гбайт размер блока может быть 1024 байта.
Не старайтесь решить задачу вывода изображения и звука на AVR.
Возьмите дешёвый ARM, например LPC2103. Сделаете гораздо быстрее.
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Sep 24 2008, 11:03
Сообщение #9


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



тогда смысл команды
установка длины блока

???
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 24 2008, 11:15
Сообщение #10


Гуру
******

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



Ну, теоретически карточка может ее поддерживать. Но на практике полагаться на это нельзя.
Go to the top of the page
 
+Quote Post
Ivan A-R
сообщение Sep 24 2008, 11:28
Сообщение #11


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

Группа: Участник
Сообщений: 92
Регистрация: 21-06-07
Из: Saint-Petersburg
Пользователь №: 28 607



По два байта я читал. Но учтите, что это будет очень-очень медленно.

Сообщение отредактировал Ivan A-R - Sep 24 2008, 11:29
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Sep 24 2008, 11:29
Сообщение #12


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Читать карточку можно только блоками.

Неправильно. См. описание параметра READ_BL_PARTIAL в регистре CSD
Цитата
Не старайтесь решить задачу вывода изображения и звука на AVR.
Возьмите дешёвый ARM, например LPC2103. Сделаете гораздо быстрее.

Я бы не был столь категоричен.
http://pol-sem.narod.ru/polymuson/polymuson.htm
Хотя сам бы делал на ARM:)


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 24 2008, 11:30
Сообщение #13


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(etoja @ Sep 24 2008, 14:58) *
Длина блока зашита в карточку и работать с другой длиной блока не будет.
Читать карточку можно только блоками. С произвольного адреса - нельзя.
Для карточек более 2Гбайт размер блока может быть 1024 байта.
Не старайтесь решить задачу вывода изображения и звука на AVR.
Возьмите дешёвый ARM, например LPC2103. Сделаете гораздо быстрее.

Это все не так! Вам надо внимательней читать спецификацию
Если брать CSD версии 1.0 ( standart capacity)
то там есть параметр READ_BL_LEN он обычно 512 ( но для карт больше 1 гб т.е. в районе 2 GB это максимум для standart capacity READ_BL_LEN = 1024.
Но этот параметр не влияет на чтение, при чтении по умолчанию BLOCK_LEN = 512.
И больше 512 его устанавливать нельзя! (Block Length set by CMD16 can be set up to 512 bytes regardless of READ_BL_LEN.)
к тому же! ВЫ МОЖЕТЕ читать хоть по байту! Главное не пересекать границу 512 байтового сектора!
( у standart capacity для чтения выставляется абсолютный адрес байта! )
Block read is block oriented data transfer. The basic unit of data transfer is a block whose maximum
size is always 512 bytes. Smaller blocks whose starting and ending address are entirely contained
within 512 bytes boundary may be transmitted.
Go to the top of the page
 
+Quote Post
KolyanV
сообщение Sep 24 2008, 19:13
Сообщение #14


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

Группа: Свой
Сообщений: 91
Регистрация: 1-06-05
Пользователь №: 5 621



Цитата(sensor_ua @ Sep 24 2008, 14:29) *
Неправильно. См. описание параметра READ_BL_PARTIAL в регистре CSD

Я бы не был столь категоричен.
http://pol-sem.narod.ru/polymuson/polymuson.htm
Хотя сам бы делал на ARM:)

Есть еще такое: http://electronix.ru/forum/index.php?showtopic=43180&hl=
Go to the top of the page
 
+Quote Post
Пришелец
сообщение Sep 25 2008, 05:10
Сообщение #15


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

Группа: Участник
Сообщений: 183
Регистрация: 28-01-05
Пользователь №: 2 272



Спасибо!!!!!!!

т.е. можно для карт меньше 2 Гб


по времени конечно да немного накладно получится

1. Установка длины блока (т.к. в других ф-циях длина нужна512)
2. CMD17 чтение одного ну или двух байт

в среднем если на команду допустить передачу 10ти SPI байт

то опять с запасом передать для доступа к байту нужно 30 байт
при spi clock = CLC/2 при 16 МГЦ общее время получится примерно 15 мкс

при прерываниях порядка 64 мкс вполне приемлимо!!!

Может можно обойтись и без установки длины блока просто останавливать приём байт по SPI ???
- нужно будет почитать smile.gif


Ещё раз спасибо!

Сообщение отредактировал Пришелец - Sep 25 2008, 05:16
Go to the top of the page
 
+Quote Post

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

 


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


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