Easyelectronics.ru

Электроника для всех
Текущее время: 18 ноя 2019, 10:15

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 341 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 14  След.
Автор Сообщение
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 12:31 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Посоветуйте пожалуйста где почитать про работу с SRAM в микроконтроллерах AVR. Оказалось что я в этом ничего не понимаю. Как, когда и какие данные туда записываются.. В общем нужна общая теория. Где-то читал что глобальные переменные там хранятся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 13:14 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 4944
Откуда: п. Борок, Ярославская область
2 Lup
Уууу как все запущено...

Вобщем так: SRAM в AVR это просто память. И по сути микроконтроллеру совсем пофиг что ты туда кладешь. Другое дело - компилятор. Если ты пишешь на ассемблере, то все что будет храниться в SRAM - это лично твоя головная боль. Если ты пишешь на Си - то это уже головная боль компилятора, а ты вовсе над этим не заморачиваешься (ну конечно правда глупо будет при наличии 4кБ оперативы создавать массив на 10кБ объемом - просто не получится, а так - всю грязную работу за тебя сделает компилятор).

Еще если ты пишешь на ассемблере - то обязательно позаботься про стек. Стек должен храниться в оперативе.

Еще учти адресное пространство. Дело в том, что регистры, порты ввода-вывода и SRAM - живут в одном адресном пространстве. И обратиться к регистрам можно и через специальные команды (mov r0, r1 например) и как к ячейке памяти (команды sts, lds и т.п.). Так же и к портам.

А вообще есть такие хорошие сайты как yandex.ru и google.ru - они все знают :-)

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 13:25 
Старожил
Аватара пользователя

Зарегистрирован: 09 июн 2016, 13:49
Сообщения: 436
Откуда: Севастополь
2 VivalzarD
2. Не думаю, что телефон на Raspberry проработает сколь-нибудь долго. Скорее, на выходе будет карманный медиацентр с возможностью пару раз позвонить.
4. Буфер для дисплея можно организовать на SPI-RAM (напр., 512КБ хватит на 480х320 с 16бит на цвет). Но, по-моему, проще взять дисплей с готовым контроллером. А уж с навыками ТСа - и обычного 2-дюймового 320х240 1602 там за глаза.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 14:10 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Вот что я понял:
что хранится в SRAM:
  • Глобальные переменные - секция .bss. После ресета туда копируются данные (инициализация) из секции .data;
  • Статические переменные - секция .bss
  • Локальные переменные - стек (создаются во время вызова функции);
  • Куча - адреса начала и конца указываются в параметрах линковки;

Адреса и размеры всех этих секций (avr gcc) настраиваются в параметрах линковки. Если подключить внешнюю SRAM (к шине EBI), то её адресное пространство встянет рядом с пространством внутренней SRAM, сразу после неё. И все выше перечисленные секции памяти можно располагать во внешней и внутренней памяти как хочется.
Сразу вопрос. А можно ли делать так чтобы одна секция занимала память сразу и во внутренней памяти и во внешней, т.е. была на стыке?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 14:40 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3751
SRAM - static random access memory, проще говоря, ОЗУ, оперативка. Все переменные, все массивы, все параметры функций - всё это помещается в оперативке. За исключением тех, которые объявлены с квалификатором const. Да и то, если компилятор/линковщик посчитает нужным разместить константные переменные не в оперативке, а во флеше.
За Мегу не скажу, а вот ARM-совместимые МК имеют единое 4-гигабайтное адресное пространство, для внутренней SRAM выделены одни адреса, а для внешней оперативки выделены другие адреса, и обращаться к внешней можно точно так же, как и ко внутренней.
Внешняя RAM подразделяется на SRAM - асинхронную (без тактовых сигналов) статическую и SDRAM - синхронную динамическую, с тактовыми сигналами. Бывают еще и гибриды типа PSRAM - псевдо-статическую, с асинхронным интерфейсом, но с внутренней динамической структурой и скрытой регенерацией. Еще бывают энергонезависимые FRAM, NAND, NOR, но это малость другая тема.

Можно ли сделать, чтобы секции были разбросаны по разным "памятям"? Можно. В GCC в скрипте линкера есть раздел Specify the memory areas, вот туда и пишется. Название области, начальный адрес в адресном пространстве и его длина (размер). Затем ниже идут секции. Можно создать секцию с любым именем по аналогии с секцией data, указать, что она будет находиться в области с вашим новым именем. А затем, когда объявляете переменную или массив, в атрибутах укажите название этой секции, вот так:
http://www.keil.com/support/man/docs/ar ... 982450.htm
https://gcc.gnu.org/onlinedocs/gcc-4.9. ... butes.html

Объявлять один массив так, чтобы часть его лежала во внутренней RAM, а часть во внешней - очень не желательно, да и навряд ли получится. У этих RAM разные условия, разная скорость доступа. Да еще и в ARM-совместимых - разные адреса, с большим разрывом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 15:08 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
BusMaster писал(а):
Можно ли сделать, чтобы секции были разбросаны по разным "памятям"? Можно. В GCC в скрипте линкера есть раздел Specify the memory areas, вот туда и пишется. Название области, начальный адрес в адресном пространстве и его длина (размер). Затем ниже идут секции. Можно создать секцию с любым именем по аналогии с секцией data, указать, что она будет находиться в области с вашим новым именем. А затем, когда объявляете переменную или массив, в атрибутах укажите название этой секции, вот так:
http://www.keil.com/support/man/docs/ar ... 982450.htm
https://gcc.gnu.org/onlinedocs/gcc-4.9. ... butes.html


Т.е. я могу сделать свою дополнительную секцию для глобальных переменных. Тогда у меня будут 2 разные секции для глобальных переменных (.bss и своя кастомная), которые будут лежать в разных частях оперативы. Одна во внутренней SRAM, другая во внешней. И при создании глобальных переменных в Си я атрибутами (__attribute__ ((section...) просто укажу в какой секции хранить переменную. Круто !
Спасибо :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 15:57 
Старожил

Зарегистрирован: 18 июл 2016, 21:17
Сообщения: 746
А для чего нужна внешняя память? Даже если брать буфер на все 5 КБайт памяти дисплея, то вполне можно обойтись внутренней памятью. Любая дополнительная внешняя микросхема, любое увеличение количества ног - это резкое усложнение девайса, повышение нудности его изготовления. Имхо чем проще будет аппаратная часть, чем быстрее можно ее будет сделать, тем больше удовольствия от девайса :) Еще внешняя память увеличивает размер платы, либо вместо нее можно поставить что то более полезное.
Пишу, потому что я сам нарушил принцип "от простого к сложному" и именно с девайсом с внешней памятью. Пришлось откатываться к решению на одной микросхеме, но было потрачено много времени и сил :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 16:11 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3751
Надо было брать Intel Edison и на нем и делать :) потребление нормальное, можно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 16:24 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
bw429 писал(а):
А для чего нужна внешняя память? Даже если брать буфер на все 5 КБайт памяти дисплея, то вполне можно обойтись внутренней памятью. Любая дополнительная внешняя микросхема, любое увеличение количества ног - это резкое усложнение девайса, повышение нудности его изготовления. Имхо чем проще будет аппаратная часть, чем быстрее можно ее будет сделать, тем больше удовольствия от девайса :) Еще внешняя память увеличивает размер платы, либо вместо нее можно поставить что то более полезное.
Пишу, потому что я сам нарушил принцип "от простого к сложному" и именно с девайсом с внешней памятью. Пришлось откатываться к решению на одной микросхеме, но было потрачено много времени и сил :(


Я хочу получить наиболее полное понимание вопроса (Сколько памяти у контроллера, сколько нужно на дисплей, на прочее, сколько усилий стоит установка внешней памяти), чтобы как раз и решить, нужна ли дополнительная память.
Сейчас я вижу следующее:
  • У контроллера 8кБ памяти.
  • Установка доп памяти, судя по тому что я уже прочитал, не простая и требует много выводов мк (я пока не читал про SPI SRAM).
  • Я теперь представляю как с этой памятью работать с программной точки зрения.
Осталось понять сколько нужно памяти на работу с дисплеем 200х200.
Этого я пока ещё не понял, мануал на дисплей очень не простой для понимания. Курю его по мере сил. Сейчас я полагаю так: если внутренней памяти хватит на дисплей - внешнюю ставить не буду пока. А если не хватит - придётся ставить доп память.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 16:34 
Старожил

Зарегистрирован: 18 июл 2016, 21:17
Сообщения: 746
Возможно, для е-инк буфер вообще не будет нужен. Он медленный и у него уже есть своя память на 1 страницу.
Также еще момент - потребление внешней памяти. Оно может быть значительным даже в спячке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 16:39 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3751
SPI SRAM очень медленная и практически не годится для нормального использования с дисплеем.
Зато наоборот, есть дисплей со своей памятью для полного кадра. Дисплей типа ILI9431.
А вообще, тут хватило бы и знакосинтезирующего четырехстрочника МЭЛТ/Винстар.

Ааа, там же "электронные чернила".. ясно, ясно. Так в документации посмотреть, сколько байт занимает полный кадр.
Но подобные дисплеи имеют встроенный видеобуфер, и перерисовывать его можно хоть "на лету", частями, фактически не имея в контроллере отдельного буфера. Или максимум, буфер на 1-2 выводимых строки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 31 июл 2017, 16:51 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Да, похоже свой буфер у дисплея всё же есть: Graphic Display Data RAM. Значит пока обойдёмся без внешней памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 12:24 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Разбираюсь с подключением USB. Это схема подключения SIM800 к USB компьютера из даташита. Зачем здесь диоды? И, честно говоря стесняюсь спросить, резисторы тут для ограничения тока? :)
Вложение:
SIM800C_usb.jpg
SIM800C_usb.jpg [ 12.52 Кб | Просмотров: 1994 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 13:35 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1793
Долго телефон придется ждать

https://www.google.ru/search?q=%D0%B7%D ... 1%82%D1%8B

http://www.mirpu.ru/interface/86-usb/17 ... a-usb.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 13:43 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
x893 писал(а):
Долго телефон придется ждать


Ну так я же учусь :) Спасибо за ссылки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 13:51 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3751
Главное, чтобы к моменту выхода этого телефона, такие компоненты всё ещё производились :) :)
Только я чет пока не врубаюсь - а USB то зачем? музыку закачивать и фотки сбрасывать чтоль? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 14:04 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
BusMaster писал(а):
Главное, чтобы к моменту выхода этого телефона, такие компоненты всё ещё производились :) :)
Только я чет пока не врубаюсь - а USB то зачем? музыку закачивать и фотки сбрасывать чтоль? :)


Для дебажного вывода, SIM800C туда сбрасывает свои логи. Ну и заодно может firmware update пригодится.
GSM модуль и XMEGA я предусмотрительно купил заранее :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 17:54 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1793
Можно взять arduino nano за 100 руб и сотовый телефон (или gsm модуль на 130 руб)
и развлекаться, развлекаться, развлекаться. С килотоннами примеров чего угодно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 18:15 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
x893 писал(а):
Можно взять arduino nano за 100 руб и сотовый телефон (или gsm модуль на 130 руб)
и развлекаться, развлекаться, развлекаться. С килотоннами примеров чего угодно.


Можно, но разъёмчики втыкать и кнопочки клацать я уже умею. Я уже пользовался раньше ардуиновым USB для отладки, но про защиту USB от бросков тока и перенапряжения, TVS диоды и прочее я узнал только сейчас.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 01 авг 2017, 23:38 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1793
А сколько ещё предстоит узнать до первого звонка !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 02 авг 2017, 06:53 
Старожил

Зарегистрирован: 18 июл 2016, 21:17
Сообщения: 746
BusMaster писал(а):
музыку закачивать и фотки сбрасывать чтоль? :)

А в чем проблема музыки и фоточек? Мега вполне может играть музыку без сжатия или с несильно затратным сжатием с сд карточки. Картинки 200*200 вообще не проблема.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 02 авг 2017, 11:30 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Присмотрел микросхемку для защиты USB: STF202-22T1G (https://www.chipdip.ru/product/stf202-22t1g-tsop6). Там уже в корпусе и резисторы и диоды есть. Останется только конденсатор добавить между USB_VBUS выводом GSM модуля и землёй.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 02 авг 2017, 16:00 
Старожил

Зарегистрирован: 02 дек 2010, 13:52
Сообщения: 4944
Откуда: п. Борок, Ярославская область
Начинка любой RaspberryPi имеет кучу энергосберегающих режимов, в т.ч. полное отключение. Просто управлять этими режимами из линуксов нечем: модуля ядра не написано, каких либо заготовок нет. Придется все делать самому на ассемблере, а так это все вполне экономичные девайсы. Всяко экономичнее современных андройд-фонов, которые дольше трех суток не работают.

P.S. У меня телефон micromax x352 - работает от одной зарядки более месяца

_________________
Ёж птица гордая, пока не пнешь - не полетит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 04 авг 2017, 14:12 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Нашёл схему заряда аккумулятора тут: http://silatoka.net/sxema-zaryadki-li-ion-usb
Но я так и не смог найти как быть с одновременным подключением к аккумулятору нагрузки и зарядки. Посоветуйте где почитать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мобилка
СообщениеДобавлено: 04 авг 2017, 15:13 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2867
У вас на полноценную библиотеку на GSM уйдет половина оперативки. Плюс хоть сколько-нибудь вменяемая RTOS. Можно и без неё, но не уверен что это будет достаточно легко. Почти любая STM32F103 переплюнет по всем параметрам XMEGA. Если только ради академического интереса.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 341 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 14  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB