Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.03.2013, 10:52
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Вопросы по SD-Card in CodeVisionAVR
Товарищи! Возникла необходимость записи/чтения информации на SD-карту побайтно. Но в компиляторе CodeVisionAVR существуют следующие две функции чтения/записи:
1) DRESULT disk_read (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count)
2) DRESULT disk_write (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count)
Но, дело в том, что в хелпе на эти функции сказано, что чтение/запись идет секторами. Мне же нужно побайтно. Может кто сталкивался с этой проблемой?
|
|
|
|
26.03.2013, 12:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
Товарищи! Возникла необходимость записи/чтения информации на SD-карту побайтно. Но в компиляторе CodeVisionAVR существуют следующие две функции чтения/записи:
1) DRESULT disk_read (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count)
2) DRESULT disk_write (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count)
Но, дело в том, что в хелпе на эти функции сказано, что чтение/запись идет секторами. Мне же нужно побайтно. Может кто сталкивался с этой проблемой?
|
Какая же это проблема?
Читайте в буфер памяти сектор, извлекайте нужный байт.
Побайтного чтения в карте нет.
Только не забудьте перед этим пройти довольно непростую фазу инициализации карты. Может, в CV она и есть, не знаю.
PS Только сейчас заметил название функции. У вас еще веселее. disk-read наводит на мысль о наличии FS. Тогда вам еще надо несколько операций произвести перед чтением диска. Такие как mount и open с анализом результатов действий.
Загляните на страничку Чана.
Если вы хотите работать в простом режиме SPI без дисковой организации - в любом случае вам придется на фазе инициализации карты узнавать ее параметры. И самому проводить все нужные вычисления номера сектора по адресу байта.
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 26.03.2013 в 12:51.
|
|
|
|
26.03.2013, 16:31
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Что за файл такой Multimedia Card Image File, который надо прописать в свойствах карты памяти? Из-за этого не запускается симуляция.
|
|
|
|
26.03.2013, 17:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
Что за файл такой Multimedia Card Image File, который надо прописать в свойствах карты памяти? Из-за этого не запускается симуляция.
|
Содержимое карты, скорее всего.
А вы про карты и работу с ними литературку читали? Надо бы...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
26.03.2013, 18:18
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Если вопрос про симуляцию в Протеусе, то читать тут: http://nagits.wordpress.com/2010/10/18/avr_sd/
|
|
|
|
26.03.2013, 19:07
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от ut1wpr
|
А вы про карты и работу с ними литературку читали? Надо бы...
|
Читал, тов. ut1wpr, читал, аж...устал. В частности, в даташите SD- карты SANDISK указано, что в режиме SPI возможен побайтовый обмен данных, но подробности не уточняются.
Спасибо за ссылку. Статья, действительно, очень полезная. Но... понимаете в чем дело, тов.oleg110592, запись/чтение и др. операции производятся через призму файловой системы FAT. Я же рассматриваю возможность данных операций, но в другом режиме, без форматирования SD карты.
|
|
|
|
26.03.2013, 19:27
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
По сылке написано как сделать Multimedia Card Image File. Побайтное чтение я делал с SD карты, но форматированой. Тут обсуждалось: http://radiokot.ru/forum/viewtopic.php?f=20&t=84445
|
|
|
|
26.03.2013, 20:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от Frensis777
|
Я же рассматриваю возможность данных операций, но в другом режиме, без форматирования SD карты.
|
Пару лет назад именно так я и делал. Никакого FAT и никакого форматирования. Но весь расчет номера сектора, подлежащего считыванию, ляжет на вас.
Пожалуйста, покажите мне текст, где сказано, что на нижнем уровне карта допускает побитный обмен? Вы же читали про карты, и читали много.
Внутри карты есть буфер обмена. Вся работа "с улицы" ведется через него. Предварительно вам нужно задать номер сектора, а потом уже читать-писать. Для этого есть отдельные команды. И режимы чтения-записи тоже есть разные. Посекторные и многосекторные. Организация побайтной записи весьма нерациональна. Необходимо адрес байта перевести в номер сектора и смещение по сектору, сосчитать в буфер весь сектор целиком, записать по нужному смещению байт и модифицированный байт снова записать в карту. Для чтения отдельного байта нужно все равно вычислить по адресу байта сектор и смещение по нему. И сосчитав сектор в буфер вытащить из него нужный байт. Если вы продолжаете утверждать, что возможен побитный обмен, значит мы говорим на разных языках. Ну, и вы не совсем честно говорите, что читали про карту.
Кстати, для общего развития, размер сектора карты тоже не есть величина постоянная для всех типов карт и всех режимов. Наиболее употребителен размер в 512 байт.
Продолжайте внимательно читать. Я через это проходил, повторяю, пару лет назад. Ну нельзя без понимания самому что-то написать. Только слизать чужие листинги..
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 26.03.2013 в 20:06.
|
|
|
|
26.03.2013, 21:18
|
|
Прописка
Регистрация: 15.03.2009
Сообщений: 162
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Сообщение от oleg110592
|
По сылке написано как сделать Multimedia Card Image File.
|
Я понял, тов.oleg110592
Спасибо, тов.oleg110592
Сообщение от ut1wpr
|
Я через это проходил, повторяю, пару лет назад.
|
Спасибо, тов. ut1wpr
Сообщение от ut1wpr
|
Пожалуйста, покажите мне текст, где сказано, что на нижнем уровне карта допускает побитный обмен? Вы же читали про карты, и читали много.Если вы продолжаете утверждать, что возможен побитный обмен, значит мы говорим на разных языках.
|
Я такого не говорил. Я говорил побайтный:
Сообщение от ДАТАШИТ
|
1.5.10.4. Memory Array Partitioning SPI mode.
Memory partitioning in SPI mode is equivalent to SD Bus mode.
1.5.9.5. Memory Array Partitioning SD Bus mode
The basic unit of data transfer to/from the SD Card is one byte. All data transfer operations which require a block
size always define block lengths as integer multiples of bytes.
5.1.3. SPI mode. Data Read
SPI mode supports single block and multiple block read operations (SD Card CMD17 or CMD1. Upon reception
of a valid read command the card will respond with a response token followed by a data token in the length defined
in a previous SET_BLOCK_LENGTH (CMD16) command (see Figure 5-1).
The maximum block length is 512 bytes as defined by READ_BL_LEN (CSD parameter). Block lengths can be any number between 1 and READ_BL_LEN.
|
Сообщение от ut1wpr
|
Организация побайтной записи весьма нерациональна....записать по нужному смещению байт и модифицированный байт(?-прим.ред.) снова записать в карту.
|
сектор?
Сообщение от ut1wpr
|
Кстати, для общего развития, размер сектора карты тоже не есть величина постоянная для всех типов карт и всех режимов. Наиболее употребителен размер в 512 байт.
|
Разве это не блок?
Сообщение от ut1wpr
|
Пару лет назад именно так я и делал. Никакого FAT и никакого форматирования. Но весь расчет номера сектора, подлежащего считыванию, ляжет на вас....
Продолжайте внимательно читать...
|
Где, в каких источниках можно ознакомиться с описанием и применением низкоуровневых операций(не FAT) для выполнения действий с вычисления адресации и т.п?
Странно, что в хелпе CVAVR описаны лишь посекторные операции. Но разве это будет рационально, когда стоит задача записи информации побайтно? Т.е. правильно ли я понял, что используя данные функции, приведенные мною в 1 посте, для записи/чтения 1 байта будет тратиться весь сектор. При записи/чтении очередного байта будет использоваться уже следующий сектор. В итоге, большие части секторов останутся незанятыми информацией.
Последний раз редактировалось Frensis777; 26.03.2013 в 21:21.
|
|
|
|
26.03.2013, 21:56
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Вопросы по SD-Card in CodeVisionAVR
Я давно брал идеи отсюда: http://toxygen.net/tmp/
Может чем поможет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
LPC2468+SD card
|
Segriv |
Микроконтроллеры, АЦП, память и т.д |
9 |
07.11.2011 12:47 |
Ассемблерная вставка в CodeVisionAVR вопросы
|
E_C_C |
Микроконтроллеры, АЦП, память и т.д |
4 |
29.06.2011 17:14 |
SD-card
|
-Dreamer- |
Микроконтроллеры, АЦП, память и т.д |
10 |
15.05.2010 20:21 |
IDE card reader
|
ILLLYA |
Микроконтроллеры, АЦП, память и т.д |
1 |
14.04.2007 16:52 |
Разъем по MultiMedia Card
|
Дима |
Микроконтроллеры, АЦП, память и т.д |
1 |
16.07.2003 18:06 |
Часовой пояс GMT +4, время: 02:38.
|
|