Перейти к содержанию

Подключение Microcd К Atmega В Качестве Flash Памяти.


Arthur

Рекомендуемые сообщения

Я тут подумал, что без массивов мне не обойтись, и логично подумать забивать массивами внутреннюю память микроконтроллера не рентабельно, но что если взять microCD и хранить всё там? Но что для этого надо?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Такое? Еще отдельно дисковод городить, не проще взять микросхему flash-памяти или SD-карту?

логично подумать забивать массивами внутреннюю память микроконтроллера не рентабельно
Смотря какие массивы. В большинстве случаев - лучшее решение, позволяет обойтись минимумом корпусов. К тому же это гораздо быстрее: доступ к внутренней флеш занимает пару тактов, тогда как к внешней один адрес передавать по последовательому интерфейсу не меньше десятка тактов, потом еще столько же читать свой байт. С MMC/SD-карточками еще хуже: у них протокол хоть и основан на SPI, но требует передавать за раз по 5 байт, а чтение/запись идут только блоками по 512 байт (по умолчанию, и не все позволяют это изменить). К тому же у съемных носителей (к впаянным в плату микросхемам flash-памяти тоже относится, но гораздо меньше) есть существенный недостаток - возможность удаления или замены. Что будет с программой, если у нее из-под носа выдернут важный массив? Поэтому обычно их используют для хранения посторонних объемных данных, не относящихся к логике программы - аудиофайлы, настройки, входные/выходные данные.

И еще раз: использовать CD, пусть и маленького размера, неоправдано: уж больно много прикручивать придется.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Скорее всего, но написано было именно про оптику, да еще в замену флеш. Либо опечатка, либо бред. Но часть особенностей внешней флеш я вроде расписал.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

-Объёмы массивов (хотя бы ориентировочно)?

-Запись/чтение или что-то одно? Как часто?

-Насколько быстрым должен быть доступ? Доступ произвольный или последовательный?

От ответов на эти и ещё кучу вопросов (которые неизбежно возникнут при проработке ТЗ) и зависит, рентабельно или нет.

К сведению: некоторые МК поддерживают работу с внешней памятью (например, Atmega64/128)

...если взять microCD и хранить всё там? Но что для этого надо?

Разъём для подключения MicroSD (он же TransFlash), желательно МК с аппаратным SPI и желание разобраться в этом вопросе.

...доступ к внутренней флеш занимает пару тактов, тогда как к внешней один адрес передавать по последовательому интерфейсу не меньше десятка тактов, потом еще столько же читать свой байт. С MMC/SD-карточками еще хуже: у них протокол хоть и основан на SPI, но требует передавать за раз по 5 байт, а чтение/запись идут только блоками по 512 байт...

На эти фантазии внимания можете не обращать:

- Массивы можно размещать не только во флэш, но и в RAM, и в EEPROM (всё зависит от задачи)

- Например, упомянутые Atmega 64/128 поддерживают параллельную внешнюю память.

- "передавать за раз по 5 байт" никто не требует. Читать по 512 байт тоже совсем не обязательно.

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

я имел ввиду вот это.

"Вот это" называется microSD-карта, а не microCD, так что не путайте SD-карты (Secure digital, если расшифровать) и CD (Compact disk). Разумеется, приставки мини, микро, надо, пико и так далее на суть устройства не влияют. А то бывают личности и с LSD-дисплеем.

К сведению: некоторые МК поддерживают работу с внешней памятью (например, Atmega64/128)
Они поддерживают работу с RAM/ROM с параллельным входом/выходом. Там да, довольно быстро, хоть и медленнее, чем с внутренней. Но флешки (как микросхема, так и карты) большого объема гораздо чаще идут с последовательным интерфейсом. Вроде еще AT90S8515 поддерживал, он послабее m64 будет. И то два порта уходит и, если мне не изменяет память, если хочется использовать 256-65535 байт внешней памяти - придется добавлять триггеры.
Разъём для подключения MicroSD (он же TransFlash), желательно МК с аппаратным SPI и желание разобраться в этом вопросе.
Что за "TransFlash"? Не слышал такого обозначения, хорошо бы поподробнее. Аппаратный SPI может и не помочь: на высоких скоростях слишком часто будет прерывать программу. Хотя в программировании и попроще, согласен. Ну а желание оно всегда необходимо :-)
На эти фантазии внимания можете не обращать:
Ну-ка, ну-ка, и в чем же фантазии? Что все команды MMC/SD-карт состоят из 6 байт (ошибся, написал 5, надо было проверить сперва, но на суть дела это не влияет)? Или что до передачи всей команды считывать что-то с карточки бесполезно? Или что не прочитав всего, что выдает карточка в своем блоке, перейти к другому адресу трудно?
От ответов на эти и ещё кучу вопросов (которые неизбежно возникнут при проработке ТЗ) и зависит, рентабельно или нет.
Вот это ключевой вопрос: какова цель, какие объемы надо хранить в памяти и как к ним обращаться.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

...Они поддерживают работу с RAM/ROM с параллельным входом/выходом...

Я не это же самое написал?

...Что за "TransFlash"? Не слышал такого обозначения, хорошо бы поподробнее...

Тогда посмотрите на первое фото в посте #5 в этой теме.

...Аппаратный SPI может и не помочь: на высоких скоростях слишком часто будет прерывать программу...

Ногодрыганьем Вы даже приблизиться к скорости аппаратного SPI не сможете, не то, что достичь.

А если учесть, что во время работы аппаратного SPI контроллер ещё чем-то заниматься может...

...Ну-ка, ну-ка, и в чем же фантазии? Что все команды MMC/SD-карт состоят из 6 байт (ошибся, написал 5, надо было проверить сперва, но на суть дела это не влияет)?...

В последнем абзаце моего предыдущего поста всё написано.

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

Только чтение, желательно монохромных BMP расширением 128х64, мк будет скорее всего Atmega128 так как на нем я остановился пораскинув мозгами (о количестве портов), запись на флешку не нужна, но думаю на сколько быстро будет чтение битмапа из флешки?

Ссылка на комментарий
Поделиться на другие сайты

Я не это же самое написал?
Не совсем: существуют микросхемы с последовательным доступом, с ними тот способ подключения не подойдет.
Тогда посмотрите на первое фото в посте #5 в этой теме.
В смысле Transcend Flash? Так это всего лишь фирма-изготовитель, а я-то уж подумал, название технологии или еще чего.
Ногодрыганьем Вы даже приблизиться к скорости аппаратного SPI не сможете, не то, что достичь.

А если учесть, что во время работы аппаратного SPI контроллер ещё чем-то заниматься может...

Ну скорость всего раз в 5 меньше наверное, а насчет посторонних задач - это полезно когда интерфейс медленный, а на максимальной частоте придется каждые 16 тактов новый байт подсовывать/считывать. Тут расходы на многозадачность перевесят выгоды, проще уж в цикле дожидаться окончания.
В последнем абзаце моего предыдущего поста всё написано.
И ничего, относящегося к "фантазиям". Возможность использования памяти с параллельным доступом тоже не по теме, учитывая желание SD-карты. Про то, чтобы хранить огромные массивы в ОЗУ контроллера даже говорить смешно: откуда их туда загружать, если не из какого-нибудь ПЗУ? В EEPROM теоретически можно было бы, но по тексту выходило, что массивы там просто гигантские, а EEPROM намного меньше флеша.
Только чтение, желательно монохромных BMP расширением 128х64
А что, жалко килобайт выделить, один из 128 и конвертировать изображение из bmp в побитовый набор? Или оно должно часто меняться? SD-карты не самая простая штука для новичка, если задача в выводе одной статической картинке на дисплей - проще во внутренней памяти. К тому же BMP-формат немного избыточен для конкретной задачи: там хранятся размеры изображения, разрядность цвета, еще что-то. Вообще говоря SD-карточка, а тем более микросхемы flash-памяти, а уж килобайт почти в любую влезет, довольно быстрые. Навскидку, многие плееры позволяют с них играть музыку, а это ~40кГц*2байта*2канала~156кБайт/сек. На самом деле оно еще быстрее.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Ну 128кБайт внутреннего флеша ATmega128 это порядочно, если по 1 кБайт на картинку.

Если же 120 картинок мало (я не знаю, что контроллер будет делать кроме этого, поэтому пусть 8 кБайт на код), то можно использовать как микросхемы ПЗУ с последовательным/параллельным доступом, так и SD-карточку. Примеры по всему этому есть что в интернете, что на форуме. На счет скорости передачи этого килобайта не волнуйся, уж 10 кБайт/сек все внешние флешки потянут, а больше может не потянуть дисплей, да и смысл вряд ли есть - не кино показывать.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Собственно вот пара ссылок на работу с картой. Микросхемы флеш-памяти проще, особенно параллельные, как тут пропагандирует forever_student. Сколько же там надо этих картинок, если флеша контроллера не хватает?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

...Если бы была одна картинка. Но к сожалению их много (картинок) и они частенько меняться должны

Опять же вопрос: что за картинки, насколько часто меняться будут. Вполне возможно, что проще будет создать точки, линии, окружности (круги) и т.д. Хранить в памяти как их, так и их наборы

(т.е. картинки). В этом случае на одну картинку потребуется памяти сильно меньше, чем килобайт.

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

Где-то читал, не знаю так это или нет, но не все SD карты изначально можно запустить на SPI, старые вродь-бы запускаются.

Себе делал накопитель на AT45DBxxxx, работает нормально, на Attiny2313 на кварце 8МГц скорость обмена с флешкой 4Мбит в секунду (500кбайт в секунду), картинки дольше выводить на экран будешь чем считывать с памяти.

Ссылка на комментарий
Поделиться на другие сайты

Для более подробных советов все же хотелось бы уточнить у ТС пару моментов:

Сколько картинок будет выводиться (не точное число, разумеется, а просто порядок - десятки, сотни, тысячи)?

Насколько велик остальной код контроллера(сотни байт, десятки килобайт, может, мегабайты)?

Насколько он загружен (большую часть времени ждет реакции пользователя, неторопливо что-то считает, или, может, он работает на пределе возможностей)?

Сколько цветов в картинке (черный/белый или есть оттенки, а то я так оптимистично предложил кодировать 1 бит на пиксель)?

И главное - опыт в работе с контроллерами и переферией ("умею мигать диодом", "запустил эмулятор ARM с линуксом", "эльф 80 уровня", "какой-то опыт есть, но с MMC/SD, и прочими внешними флешками сталкиваться не приходилось").

Насколько я знаю, у MMC/SD карт лучшее соотношение емкость-цена. Собственно, отдельные микросхемы флеш-памяти в продаже найти не так-то просто, особенно большой емкости, тогда как карты памяти на каждом углу продаются. Но и работать с ними сложнее. Лучше всего, если удастся запихнуть картинки во внутреннюю флеш. Возможно, как предлагал forever_student, использовать векторную графику, возможно, какой-то другой алгоритм сжатия. Тут сильно зависит от самой картинки.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Извиняюсь за долгое отсутствие - работа, делает черное дело

1) Смотря какая скорость, если будет скорость вывода картинок хотябы 5-10 в секунду, то тогда очень много картинок, больше сотни, если скорость маленькая, только наружная графика, а например стрелки там уже будут расчитываться векторно.

2) Этого пока не знаю, узнаю напишу, опять же всё будет ясно после эксперемента с подключенной флешкой

3) Загружен всегда, т.е. на порт F постоянно приходит параллельный код, с разных устройств, Часы, Компас. Акселерометр. и мк, он постоянно принимает эти данные и обрабатывая выводит на экран (это как бы "графический процессор", подобие видеокарты для дисплея. И он еще сохраняет эти данные во внутреннюю память МК, что опять же думаю, хватит ли её, может флешку придется не только на чтение.

4) Только два Черный и Белый, ибо я не знаю помоему контроллер дисплея KS0108 не поддерживает больше

5) Опыт есть в ШИМ, т.е. делал DMX контроллер, металлоискатель (правда там прошивка не особо моя), ну и также подрубал дисплеи простейшие (но с флешками ни разу не работал, честно)

6) Выбор флешки обусловлен еще тем, что если скорость будет достаточная, для приёма и обмена картинками, то можно будет смело взять эту флешку и уже не прошивая контроллера загрузить другие картинки, с тем же названием, что очень будет удобно для обновления (графического интерфейса)

Вообще по задумке это должен быть "велокомпьютер"

Ссылка на комментарий
Поделиться на другие сайты

1) Смотря какая скорость, если будет скорость вывода картинок хотябы 5-10 в секунду, то тогда очень много картинок, больше сотни, если скорость маленькая, только наружная графика, а например стрелки там уже будут расчитываться векторно...

Если картинки в виде различных индикаторов, цифири, иконок и т.д., то см. пост #14. Памяти Atmega128 точно хватит.

...

3) Загружен всегда, т.е. на порт F постоянно приходит параллельный код, с разных устройств, Часы, Компас. Акселерометр. и мк, он постоянно принимает эти данные и обрабатывая выводит на экран (это как бы "графический процессор", подобие видеокарты для дисплея. И он еще сохраняет эти данные во внутреннюю память МК, что опять же думаю, хватит ли её, может флешку придется не только на чтение.

...

Десять-двадцать раз в секунду принять по 1-2 байта - это не загрузка для меги, особенно если она работает на 16МГц.

Только почему параллельный код? Насколько я знаю - обычно UART, I2C, SPI.

P.S. Часы можно сделать на самом МК (и весьма точные).

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

И он еще сохраняет эти данные во внутреннюю память МК
Вы в курсе, что количество циклов перезаписи ПЗУ контроллера ограничено (если не ошибаюсь, для flash - 10000, EEPROM - 100000 циклов)? С картами памяти та же проблема, но их заменить проще.
P.S. Часы можно сделать на самом МК (и весьма точные).
Зато микросхема RTC аппаратно умеет считать дни, недели, високосный год и много чего еще. И переходить на экономное питание при отключении основного. Для велокомпьютера может быть актуально. ATmega, даже с режимом сна, потребляет больше.
можно но я думаю, делая операции параллельно, точность у часов не будет хромать разве?
Повесить на аппаратный таймер - он и не заметит что там что-то другое выполняется.
постоянно принимает эти данные и обрабатывая выводит на экран
Они же все быстрые, а экран (если это такой о котором я думаю) больше 5 кадров в секунду выдать не может при всем желании. Впрочем, усреднение и другую программную обработку никто не отменял.
если скорость будет достаточная, для приёма и обмена картинками, то можно будет смело взять эту флешку и уже не прошивая контроллера загрузить другие картинки, с тем же названием, что очень будет удобно для обновления (графического интерфейса)
Скорости флешки хватит точно. Хватит ли скорости у загруженного работой контроллера - другой вопрос. Обновление картинок без перепрошивки контроллера - конечно, заманчиво, но стоит ли оно того?
а например стрелки там уже будут расчитываться векторно
Ну это в любом случае стоит сделать: красивое оформление при таком разрешении все равно сделать трудно, а хранить сотню нарисованных стрелок, которые рассчитываются без каких-то проблем ИМХО глупо. Да и рисовать их - то еще удовольствие.

Если и правда куча независимых, возможно, анимированных, иконок, лучше их в память контроллера запихать. Туда же образцы цифр и букв (если захочется выводить тексты). Постоянно подгружать все это с карты памяти может оказаться накладно. А вот снимаемые данные туда записывать - в самый раз. Отдельный вопрос - есть ли желание разбираться с файловой системой карты? Fat12, fat16, fat32, может, ntfs или ext2. Так-то проще записывать тупо побайтно (ну или текстом) - а потом уже на компьютере, в спокойной обстановке, анализировать, чего там наснималось. Правда, это не позволит использовать штатную манипуляцию файлами (извратнуться, конечно, можно, но тогда уж проще тот же fat освоить)

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...