Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Algorithm Builder + SD card
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Alex_1811
Помогите организовать обмен данными ATMega8535 c SD Card.
Нужно сначала записать данные в SD с ПК через RS-232, а потом читать в порт с частотой 8000 Гц (на ЦАП) или читать обратно в ПК.
Читать и писать 512 байт получается, а больше облом.
Исходный код на AB 5.00 прилогаю.
(Есть робочий проєкт роботы ATMega8535 c LCD Siemens S65, могу выложить)
yarunt
(Есть робочий проєкт роботы ATMega8535 c LCD Siemens S65, могу выложить)
[/quote]
интересно посмотреть ,ну а ммс на билдере ....наверно вы первый.
Alex_1811
Цитата(yarunt @ May 16 2007, 10:11) *
(Есть робочий проєкт роботы ATMega8535 c LCD Siemens S65, могу выложить)

интересно посмотреть ,ну а ммс на билдере ....наверно вы первый.
yarunt
Молодца! Мне понравилось ,но 16 битные регистры можно записать так LPM[z++]:word->x.Можно конвертировать шрифт и картинки в ДБ обьекты и загружать load:***
hd44780
Если не секрет, вы питали схему от 3.3 вольта или вешали какие-то преобразователи между мегой и картой?

Я питал всю схему от 3.3 вольта, но контроллер был Mega32 без буквы L и оно глючило - то работает, то нет. Но это неудобно - хотел подцепить LCD HD44780, а он от 3.3 не пашет - изображения нет.
Хорошо хоть не сгорел smile.gif.
Alex_1811
Цитата(hd44780 @ May 16 2007, 11:19) *
Если не секрет, вы питали схему от 3.3 вольта или вешали какие-то преобразователи между мегой и картой?


Питаю Мегу и карту от 3.3 вольта без преобразователя.
hd44780
Цитата(Alex_1811 @ May 16 2007, 09:39) *
Питаю Мегу и карту от 3.3 вольта без преобразователя.


Понял. А этот ваш LCD графический?
Если можете, киньте доку на hd44780@yandex.ru.
Спасибо.
Alex_1811
Цитата(hd44780 @ May 16 2007, 14:06) *
Понял. А этот ваш LCD графический?
Если можете, киньте доку на hd44780@yandex.ru.
Спасибо.


Телефон Siemens M65,CX65,S65 видели, экран оттуда.
Нормальной доки нет. Кое что вот
hd44780
за доки спасибо.

Меня пробило по вашему первому вопросу.
Вы наверное работаете с картой по SPI?
Если да, то правильно, за раз читает/пишет 1 сектор.
Если хотите больше - как-то эмулируйте его родной интерфейс либо ищите контроллеры со свроенной поддежкой карт.
Alex_1811
Цитата(hd44780 @ May 16 2007, 16:24) *
за доки спасибо.

Вы наверное работаете с картой по SPI?
Если да, то правильно, за раз читает/пишет 1 сектор.
Если хотите больше - как-то эмулируйте его родной интерфейс либо ищите контроллеры со свроенной поддежкой карт.


SD подключил к SPI.
Читать и писать один сектор(512 байт) получается, но мне нужно ~44кБ.
Проблема в том что я не могу организовать запись данных в SD.
Для моих нужд хватает Меги8535, так что использовать контроллеры со свроенной поддежкой карт
не имеет смысла.
hd44780
Цитата(Alex_1811 @ May 16 2007, 14:39) *
SD подключил к SPI.
Читать и писать один сектор(512 байт) получается, но мне нужно ~44кБ.
Проблема в том что я не могу организовать запись данных в SD.
Для моих нужд хватает Меги8535, так что использовать контроллеры со свроенной поддежкой карт
не имеет смысла.


Да, на SPI только по 1 сектору. Ограничение интерфейса.
Увы ... Проверял, так и есть.
yarunt
Цитата(Alex_1811 @ May 16 2007, 15:39) *
SD подключил к SPI.
Читать и писать один сектор(512 байт) получается, но мне нужно ~44кБ.
Проблема в том что я не могу организовать запись данных в SD.
Для моих нужд хватает Меги8535, так что использовать контроллеры со свроенной поддежкой карт
не имеет смысла.

Да ..через СПИ 512 байт. Если подключать к СПИ дисплей и ммс, всеравно нужно будет использывать буфер а он в 8535 1кбайт.
SergeiCh
Цитата(yarunt @ May 16 2007, 20:40) *
Да ..через СПИ 512 байт.


В MMC по SPI можно писать/читать любое количество последовательно идущих блоков. Года три назад делал на ATmega162 запись данных в MMC под FAT16. Было 32кБ внешней RAM.
pitman
Цитата(hd44780 @ May 16 2007, 23:15) *
Да, на SPI только по 1 сектору. Ограничение интерфейса.
Увы ... Проверял, так и есть.


Таки нет. В файле Simplified Physical Layer Specification.PDF на стр.115 команды для чтения блока
(файлег берется на сайте ассоциации SD )

CMD17 - READ_SINGLE_BLOCK читает один блок.
CMD18 - READ_MULTIPLE_BLOCK читает последовательность блоков пока на карту не будет передана команда STOP_TRANSMISSION

Другое дело что в МК памяти очень мало и накладные расходы на организацию передачи двух блоков по 512 байт будут может и больше чем вызов двух команд на чтение одного блока.
Alex_1811
Цитата(pitman @ May 17 2007, 04:09) *
Таки нет. В файле Simplified Physical Layer Specification.PDF на стр.115 команды для чтения блока
(файлег берется на сайте ассоциации SD )

CMD17 - READ_SINGLE_BLOCK читает один блок.
CMD18 - READ_MULTIPLE_BLOCK читает последовательность блоков пока на карту не будет передана команда STOP_TRANSMISSION

Другое дело что в МК памяти очень мало и накладные расходы на организацию передачи двух блоков по 512 байт будут может и больше чем вызов двух команд на чтение одного блока.


Мне не нужно хранить в памяти данны, просто нужно каждый байт данных писать сразу
в порт (с частотой 8000 Гц)
pitman
Цитата(Alex_1811 @ May 17 2007, 12:17) *
Мне не нужно хранить в памяти данны, просто нужно каждый байт данных писать сразу
в порт (с частотой 8000 Гц)


Ну тогда еще проще, убавить тактовую для карты, подать команду чтения блока и скидывать принятые байты сразу в порт. Помучится придется, но думаю не долго. (я про подгонку частот).

Да, еще нужно учесть, что на каждый блок идет два байта CRC, чтобы их не послать куда не надо и успеть послать первый байт от следующего блока. Помучится придется чуть больше wink.gif .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.