Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

TRIOD писал(а):...чтоб программу и данные можно было зашивать во внешнию микросхему...
Т.е. всё-таки память программ, ПЗУ (?)
Опишите подробнее требования к контроллеру.
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

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

А вообще опишите задачу. Возможно её удастся решить другим путём, например созданием интерпретатора как основной программы МК, и записью управляющей программы во внешнюю память.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

Сообщение TRIOD »

Задача в принцепе простая. Чистая программа управления девайсом занимает всего 2Кб, но требуют чтоб состояние девайса его кучи узлов и сигналы от датчиков
выводились в виде оконной системы на графический эран 640x480. Система однозадачная и в один момент времени отображается только одно окно. Скорость обновления экрана 1раз в 2 секунды. Но к этому надо прелепить кучу графических эконок.
Только абсолютная пустота бездны принесёт мне покой.
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Значит просто не хватает памяти?
Ответ как-бы очевиден: использовать более жирный МК, благо сейчас выбор не мал...
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

Сообщение TRIOD »

А кто из контролеров обладает большим обёмом памяти.
Только абсолютная пустота бездны принесёт мне покой.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

TRIOD писал(а):А кто из контролеров обладает большим обёмом памяти.
Тот, у которого больше памяти :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Для начала определитесь, под какую архитектуру будете писать. AVR, PIC, ARM... Потом - прикиньте, сколько реально вам надо программной памяти.

Так как в микроконтроллерах преимущественно используется гарвардская архитектура памяти, т.е. разделение памяти программ (флеш) и данных (ОЗУ), выполнение кода из внешней памяти будет невозможно. Но данные там хранить разумеется можно. Естественно, лучше если хватает своей памяти, т.к. внешняя память без особой надобности - это костыль.
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Так как в микроконтроллерах преимущественно используется гарвардская архитектура памяти, т.е. разделение памяти программ (флеш) и данных (ОЗУ), выполнение кода из внешней памяти будет невозможно.
Тут, конечно, можно извернуться, применив некоторые извраты:
Многие МК позволяют писать в собственную память программ. Тогда пишем некоторый код, который будет читать внешнюю память и записывать программу в собственный флеш, а по окончании передаст ему управление (эдакий бутлоадер). Как загруженный код станет ненужен - переходим обратно к заргузчику и грузим на его место другой код.
Если это делать часто, флешь очень быстро износится (у неё ресурс на современных МК порядка 10 000 перезаписей)
К тому же всё это будет на столько сложно выглядеть, что вместе с основной задачей может взорвать мозг разработчику
Вымогатель припоя
Аватара пользователя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

Сообщение TRIOD »

ploop писал(а):Для начала определитесь, под какую архитектуру будете писать. AVR, PIC, ARM... Потом - прикиньте, сколько реально вам надо программной памяти.

Так как в микроконтроллерах преимущественно используется гарвардская архитектура памяти, т.е. разделение памяти программ (флеш) и данных (ОЗУ), выполнение кода из внешней памяти будет невозможно. Но данные там хранить разумеется можно. Естественно, лучше если хватает своей памяти, т.к. внешняя память без особой надобности - это костыль.
Ну вобще я использую AVR, но чтото я уних не видел большого обёма памяти программ. Програмной памяти если совсем ужаться то не менее 1Мб, но желательно от 4Мб.

Сейчас хочу попробывать вариан с Atmega128, уней вроде можно прецепить внешнию память данных типа флеш. тоесть вместо того чтоб пихать даные в код программы я впихну их на внешнию микросхему, а обращение кним будет происходить также как к внутреней памяти.
Только абсолютная пустота бездны принесёт мне покой.
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

TRIOD писал(а):Програмной памяти если совсем ужаться то не менее 1Мб, но желательно от 4Мб.
фигась... что-то много, честно )
А вообще никто ж не мешает хранить во внешней памяти картинки например и подгружать их оттуда по мере необходимости.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

чтоб пихать даные в код программы я впихну их на внешнию микросхему, а обращение кним будет происходить также как к внутреней памяти.
Тогда в принципе с любым контроллером можно держать данные на внешней. Только сложнее.
Если Atmega128 реально такое поддерживает (я как-то не интересовался этим) - то это хороший выход.
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

ploop писал(а):Если Atmega128 реально такое поддерживает (я как-то не интересовался этим) - то это хороший выход.
Там можно подключить до 64К внешнего ОЗУ :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

память данных типа флеш прицепляется через SPI и доступ к ней реализуется в два счета
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

BCluster писал(а):память данных типа флеш прицепляется через SPI и доступ к ней реализуется в два счета
Таки да — карточки памяти типа SD! Есть много статей про них.
Также внешняя флэш есть через I²C.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

BCluster писал(а):память данных типа флеш прицепляется через SPI и доступ к ней реализуется в два счета
Плюсую. Хранить во внешней памяти различные графические данные (изображения) - совершенно нормальное явление.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Это понятно. Я думал речь идёт о программной памяти (какой-нибудь параллельный режим).
Там можно подключить до 64К внешнего ОЗУ
ОЗУ можно, а флеш "нарастить"? Сомневаюсь, если честно.

В понедельник что-то лень читать даташит :)
Вымогатель припоя
Аватара пользователя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

Сообщение TRIOD »

Вот выдержка из даташита "Характеристики интерфейса внешней памяти позволяет его использовать не только для подключения к внешнему статическому ОЗУ или флэш-памяти, но и в качестве интерфейса с внешними периферийными устройствами". Да программу со внешнего флеша использовать нельзя, а вот данные хранить вполне можно.
Если использовать память на I2C то нужно сначала нужные данные загрузить в ОЗУ, а его может и нехватить на формирование картинки 640x480.

Да всего 64Кб, но можно наладить постраничное чтение тоесть старшие адреса задовать программой. Хотя ето нестолько удобно как нативная поддержка, но всеравно остаётся удобство ввиде нормального доступа к памяти без всяких I2C.
Последний раз редактировалось TRIOD Пн ноя 28, 2011 09:52:33, всего редактировалось 1 раз.
Только абсолютная пустота бездны принесёт мне покой.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

Флэшь, действительно, нарастить невозможно напрямую. Но если совсем невтерпеж именно ИСПОЛНЕНИЕ кода, записанного на внешнюю память, то можно по-кусочкам копировать из внешней во внутреннюю и исполнять уже оттуда.
А вообще такой способ очень медленный и глупый, даже сложно придумать пример реального примирения...
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Я писал об этом способе выше. Способ действительно глупый, учитывая еще ресурс собственного флеша по количеству перезаписей.
Он имеет место быть только в одном случае: обновление ПО в нестандартном режиме, например с флешь-накопителя типа какой-нибудь SD (собственный бутлоадер).
Вымогатель припоя
Аватара пользователя
Сообщения: 693
Зарегистрирован: Вт сен 15, 2009 16:23:06
Откуда: Москва

Сообщение TRIOD »

AI_Disable писал(а):Флэшь, действительно, нарастить невозможно напрямую. Но если совсем невтерпеж именно ИСПОЛНЕНИЕ кода, записанного на внешнюю память, то можно по-кусочкам копировать из внешней во внутреннюю и исполнять уже оттуда.
А вообще такой способ очень медленный и глупый, даже сложно придумать пример реального примирения...
А исполнение кода в данном случае и ненужно, нужно место для хранения данных.
В случае если контролер подерживает расширение памяти данных то можно либо цепануть кнему флэш память с заранее записанными данными и только читать.
Или можно цепануть ОЗУ и при запуске считывать даные в него из внешней микры типа 24С512.
Только абсолютная пустота бездны принесёт мне покой.
Ответить

Вернуться в «Разные вопросы по МК»