Внешняя память

Использование внешней и внутренней EEPROM, а так-же SD card
Аватара пользователя
slavas
Лейтенант
Сообщения: 573
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Внешняя память

#1

Сообщение slavas » 28.04.2016{, 22:26}

Здравствуйте господа, я тут нарисовал аквариумный контроллер но память на UNO кончилась в самом разгаре,  проект повис. Конечно можно оптимизировать код, порезать чего не нужного. Только памяти там всё равно мало. Где память взять? Как реализовать? На RTC ds1307 есть микрушка памяти её использовать можно?

Аватара пользователя
Chaynik
Рядовой
Сообщения: 92
Зарегистрирован: 15.11.2015{, 18:26}
Репутация: 0

Внешняя память

#2

Сообщение Chaynik » 28.04.2016{, 22:31}

Самый простой вариант взять Arduino Mega 2560.
Без лишних выкрутасов.

Аватара пользователя
slavas
Лейтенант
Сообщения: 573
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Внешняя память

#3

Сообщение slavas » 28.04.2016{, 22:47}

Так и хотел сказать чтоб не предлагали 2560, она слишком наварочена и цена!

Добавлено (28.04.2016, 22:47)
---------------------------------------------
Так и хотел сказать чтоб не предлагали 2560, она слишком наварочена и цена!

Аватара пользователя
support
Супермодератор
Сообщения: 1785
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 638
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Внешняя память

#4

Сообщение support » 28.04.2016{, 23:25}

Использовать внешнюю память для исполняемого кода в Arduino насколько я знаю в принципе невозможно. Как вариант можно попробовать наример разбить требуемый функционал на несколько плат Arduino и организовать обмен необходимыми данными между ними. Я в одном проекте использовал три ProMini. По цене вышло дешевле чем мега. До и габариты приемлемые.
Автор программы FLProg.

Аватара пользователя
Chaynik
Рядовой
Сообщения: 92
Зарегистрирован: 15.11.2015{, 18:26}
Репутация: 0

Внешняя память

#5

Сообщение Chaynik » 28.04.2016{, 23:39}

Ну хорошо. В модуле часов есть микрушка АТ24С32 - энергонезависимая память.
Прикрутить её конечно можно, но ведь и в уно, тоже есть энергонезависимая память,
которая используется для хранения данных.
В вашем проекте eeprom в уно полностью закончилась?

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

Внешняя память

#6

Сообщение Skull » 29.04.2016{, 05:28}

Ребят, внешняя память нужна однозначно.

Flash atmega - 1000 циклов записи
EEPROM atmega -10000  циклов записи
EEPROM 24схх- 1000000  циклов записи

Отсюда имеем увеличенную в 100 раз наработку на отказ по издыханию какого-нить подленького бита в ЕЕпроме проца.
Также имеем ввиду где-то на задворках сознания, что имеем дело с производителем из Поднебесной  Изображение
Последний раз редактировалось Skull 29.04.2016{, 05:30}, всего редактировалось 1 раз.

Аватара пользователя
Chaynik
Рядовой
Сообщения: 92
Зарегистрирован: 15.11.2015{, 18:26}
Репутация: 0

Внешняя память

#7

Сообщение Chaynik » 29.04.2016{, 19:51}

Skull, не спорю. Но slavasу, это всё равно не поможет. Либо придётся оптимизировать проект, либо как написал автор, разбить на 2-3 ардуины, ну или всё-таки покупать мегу Изображение

Аватара пользователя
Skull
Лейтенант
Сообщения: 424
Зарегистрирован: 08.09.2015{, 16:18}
Репутация: 4
Откуда: Мариуполь

Внешняя память

#8

Сообщение Skull » 29.04.2016{, 23:52}

А... вон оно чего Михалыч.... У него Flash закончилась  Изображение

alibek
Рядовой
Сообщения: 90
Зарегистрирован: 14.09.2015{, 12:12}
Репутация: 1
Откуда: Тамбов
Имя: Алибек

Внешняя память

#9

Сообщение alibek » 30.04.2016{, 00:10}

купил в наборе SD карточку .
Как его использовать в качестве хранения внешних данных ?
Ресурсов  у карточки все таки больше чем у внутренней памяти Ардуино
цена вопроса с модулем инет 209 деряванных

http://ru.aliexpress.com/item....40.html
 
Последний раз редактировалось alibek 30.04.2016{, 00:13}, всего редактировалось 1 раз.

krom23
Лейтенант
Сообщения: 423
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

Внешняя память

#10

Сообщение krom23 » 01.05.2016{, 21:54}

support писал(а):Использовать внешнюю память для исполняемого кода в Arduino насколько я знаю в принципе невозможно.
Мужики, я верно что то не догоняю с внешней памятью. Вот ссылка на тему с библиотеками: http://forum.flprogwiki.ru/viewtopic.php?f=10&t=834

Аватара пользователя
support
Супермодератор
Сообщения: 1785
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 638
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Внешняя память

#11

Сообщение support » 01.05.2016{, 21:59}

krom23 писал(а):Мужики, я верно что то не догоняю с внешней памятью. Вот ссылка на тему с библиотеками
Во внешнюю EEProm вы можете записать какие то значения, но использовать её для хранения исполняемого кода невозможно. Причём для записи значений в EEProm то же используется определённый код, который занимает место в памяти программы. А вот её никаким образом не увеличишю
Автор программы FLProg.

krom23
Лейтенант
Сообщения: 423
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

Внешняя память

#12

Сообщение krom23 » 02.05.2016{, 13:08}

support писал(а):Во внешнюю EEProm вы можете записать какие то значения, но использовать её для хранения исполняемого кода невозможно.
Согласен с Вами полностью, код программы нельзя использовать с внешней памяти, но есть данные которые часто перезаписываются, различные переменные которые не плохо было бы записывать/читать с внешней памяти и при изготовлении готового устройства всё таки удобней на плате поместить одну микросхему чем гаргарушку с кардридером.

Аватара пользователя
slavas
Лейтенант
Сообщения: 573
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Внешняя память

#13

Сообщение slavas » 02.05.2016{, 19:38}

На самом деле я знал что исполняемый код нельзя хранить во внешней памяти, но я надеялся на какую нибудь лазейку. А разделить задачу на две pro mini как предложил support идея не плохая, только у меня меню занимает много места и его не поделишь.
Последний раз редактировалось slavas 02.05.2016{, 23:31}, всего редактировалось 1 раз.

Колючий
Рядовой
Сообщения: 2
Зарегистрирован: 03.04.2016{, 19:45}
Репутация: 0
Откуда: Коломна М. О.
Контактная информация:

Внешняя память

#14

Сообщение Колючий » 02.05.2016{, 21:38}

Вот такой вопрос, в программе есть библиотеки работы с SD картами. Есть блок записи на карту и блок чтения на карту, но если записать на карту можно любую переменную, то вот при чтении с карты эту переменную можно отправить только в COM-порт. Можно ли как то сделать что бы переменные с карты использовать в проекте? Я понимаю что можно использовать EEProm. Но иногда надо сохранять данные которые часто меняются и каждый раз их переписывать в EEProm не хотелось бы. Может можно что то придумать с SD картой?

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Внешняя память

#15

Сообщение Слимпер » 04.05.2016{, 08:52}

slavas писал(а):Так и хотел сказать чтоб не предлагали 2560, она слишком наварочена и цена!
Ну если нет ограничений по размерам и питанию то можно  найти и довольно дешёвые клоны меги 400руб, а UNO порядка 200руб, Pro Mini порядка 100руб
support писал(а):Как вариант можно попробовать наример разбить требуемый функционал на несколько плат Arduino и организовать обмен необходимыми данными между ними.
Идея хорошая сам пользуюсь, но если плат становится больше 2 то выигрыш в цене минимальный.

А вообще меню, особенно сложно, это вообще тяжелая вещь.
Я себе для создания древовидного меню написал целый набор блоков на FBD.
Больше всего у меня меню требует оперативной памяти, так что их можно нормально использовать только на Mega, но даже там только на 4-5 десятка пунктов войдет.
Последний раз редактировалось Слимпер 04.05.2016{, 08:55}, всего редактировалось 1 раз.

Аватара пользователя
slavas
Лейтенант
Сообщения: 573
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Внешняя память

#16

Сообщение slavas » 04.05.2016{, 12:23}

Слимпер, У меня меню на шесть этажей с 2-4 ветвями. Время включения-выключения компрессора, фильтра...
может дадите Ваши блоки глянуть? Я пользуюсь этим +-R

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Внешняя память

#17

Сообщение Слимпер » 04.05.2016{, 12:58}

slavas писал(а):может дадите Ваши блоки глянуть?
Вечером, скину, сейчас на работе, но проблема в том что я их не описывал нормально, а полное описание делать долго.
Могу скинуть проект на котором его обкатывал, может по нему сможет понять.
И большая часть блоков рассчитана хотя бы на 4 (вход, выход, +, -) кнопки, а не которые на 6 кнопок (еще влево в право).
Блоков много еще потому, что делал под разные типы параметров разные блоки:
-Целое число
-Дробное число (мнимая дробь, только для вывода на экран)
-Переключать вкл/выкл 
-Уставка времени
Было еще что то сейчас не помню

Используется совместно с двухстрочным LCD 1602 
Заточено для работы с EEPROM.

Аватара пользователя
slavas
Лейтенант
Сообщения: 573
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Внешняя память

#18

Сообщение slavas » 04.05.2016{, 13:27}

Вот гляньте моё контроллер

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Внешняя память

#19

Сообщение Слимпер » 04.05.2016{, 15:42}

slavas писал(а):Вот гляньте моё контроллер
Похожее меню я у себя дела в других проектах, но после появления пользовательских блоков решил сделать более универсальное решение.

Но тогда я еще не знал насколько это будет муторно и насколько тяжелые блоки получатся.

Вот Блоки и  Пример

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

Через параметры блока производится его настройка

В примере использованы не весе типы блоков.

В Пункте время - время закодировано в виде количества секунд с начало 0 часов.

Пункт Дни недели предназначался для настройки таймера по дням недели, и в битах числа закодировано значение да/нет на каждый день недели.

Кодировки сделаны для удобства работы с EEPROM (по одной переменой для времени и всех дней недели)
Последний раз редактировалось Слимпер 04.05.2016{, 15:48}, всего редактировалось 1 раз.

Колючий
Рядовой
Сообщения: 2
Зарегистрирован: 03.04.2016{, 19:45}
Репутация: 0
Откуда: Коломна М. О.
Контактная информация:

Внешняя память

#20

Сообщение Колючий » 04.05.2016{, 15:47}

Слимпер писал(а):Вот Блоки и Пример
Ссылки на один и тот же файл

Ответить

Вернуться в «Устройства памяти»