Недовольным. Супер Дуня. Есть желающие принять участие?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Всех, с наступающим Новым Годом!

И так, у меня окончательно оформились мысли, что меня не устраивает в проекте "Ардуино" и появилось желание разработать железку и ПО к ней, не обладающее этими недостатками. Ниже то, что не нравится и идеи КАК сделать "лучше":

1. Применение "нижнего звена" МК в наиболее популярных релизах: Atmega328P. Недостаток: мало пинов, мало таймеров, мало памяти, особенно SRAM при больших габаритах Arduino UNO. В значительной мере нивелируется платами меньшего размера Mini, Pro Mini, Nano на том же МК. Часто приводит к необходимости использования расширителя пинов 74HC595, с соответственной потерей в работе скетчей. Надо заметить, что это "старшая" модель в этой линейке: Atmega48P, ATmega 88P, ATmega168P и ATmega 328P. То есть, недостаток оперативы настолько велик, что применение "меньших" братьев практически даже не рассматривается в Ардуино проектах.

2. Применение линейки "покруче" также "не блещет" и полно недостатков. Практически есть один вариант: Arduino Mega 2560, пережившая третий релиз. Недостатки: очень большой габарит платы, отсутствие специально разработанных под неё модулей, с отсылкой к решениям для Uno, увеличивающим габарит далее. Отсутствие "мелких" решений как Mini, Pro Mini, Nano. Разве что плата "ATmega2560 core", предназначенная в общем-то для "промышленного" использования. Отсутствие 16 и достаточно полезных ног МК: полностью устранены синхронные передачи по UART (нет ни одной ноги Xck!), по сути отсутствует уровень прерываний PCINT1, а те что есть "нужны для иных целей", в значительной мере урезаны входы счетчиков, не позволяющие в полной мере реализовывать подсчеты внешних сигналов, счет по захвату. Внутренний светодиод выведен на ножку, единственную в своем роде и представляющую собой возможность аппаратной реализации пакетного ШИМ с заданной периодичностью пакета и его импульсов с помощью двух таймеров..

3. типовой Wiring в значительной мере "объемист", особенно библиотеки, для типовых работ. Но, самым значительным его недостатком считаю жесткую привязку таймера времени к 0-у таймеру. Да, это повышает "совместимость" линеек, но "не той ценой". Совсем просто реализовать "настройку", и/или иметь возможность использования "часов реального времени" .. которые упс, опять отсутствуют, несмотря на присутствие встроенной возможности МК... просто неразведено.

Что хочу предложить:

Спроектировать и переразвести серию плат на базе линейки Atmega64, ATmega128, ATmega256, и др, имеющих встроенный интерфейс расширения внутренней SRAM, дополнив прямо на плате простым контроллером на 3-х микросхемах 74-й серии (74VHC373x1 + 74F410x2 + SRAM: 32kb .. 2Mb x higher 70ns), снабдив всеми доступными 86-ю выводами "самого старшего" МК. Дополнительно, сгруппировать выводы "по назначениям" и сразу же снабдить выводы "землей и питанием" по необходимости, так чтобы к примеру можно было бы подключать сервы напрямую к плате их штатным разъемом, к ножкам UART подключать разъем с питанием и т.д. Такие разъемы вывести "вбок" для горизонтального подключения, оставив возможность наращивать платы "вверх/вниз" (есть Dupont с длинными контактами для таких целей). Соответственно, снабдить такую разработку комплектом плат - расширений .. в частности, пришли детальки для драйверов моторов, на январских выходных попробую развести и изготовить плату на мосфетах для Ардуино Мега на 8 DC моторов (4 шаговых) с параметрами до 30В х 5А на мотор с применением аппаратного ШИМ от 16-битных таймеров.

Что это даст:

1. Расширение SRAM вплоть до 2 мегабайт, что существенно расширит сферы применения МК, в частности видео/дисплейные тематики.

2. Доступность всех "спец. назначений" ножек МК, а соответственно и синхронные режимы UARTов

3. Упрощение подключений в части разного "робото" строительства.

4. Подозреваю, меньшие габариты. :)

Вот, как-бы в преддверии новогодних каникул и хочу понять насколько может оказаться востребована "не Ардуина" с сущесственно большей памятью (можно программно! отключать, если требуются ноги) от 32 килобайт. Насколько интересен меньший габарит платы Меги, избыточны её возможности (применимость Atmega64 к примеру), ну и конечно же хочется найти "подельников", кто готов поучаствовать в разработке как плат так и периферии, изготовлении и/или отладке ПО.

В целом, на Али можно легко найти фирмы, способные выпускать это массовым тиражом за вменяемые бабки.

Ещё раз, всех с наступающим Новым Годом!

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Если уж не хватает, то проще использовать ARMы, потому что там хотя бы есть DMA, для такого объема памяти, в противном случае, 16МГц маловато будет. Там и таймеры все свободны, к тому же их далеко не три или четыре, да и использовании периферии через DMA очень вкусно выглядит. Для старших ARMов и память внешнюю можно подключать, используя встроенный контроллер FSMC, дисплеи, для них уже и плавающая арифметика (hardware) - не проблема. Это просто информация, холивара не будет.

 

MacSim
Offline
Зарегистрирован: 28.11.2012

вам надо 1000 экземпляров? из-за 1-10 овчинка выделки не стоит.

А как много писал...Ознакомтесь с линейкой АРМов! Все сделоно за Вас для Вас. А вообще правильно мыслите надо разработкой МК заниматься, пусть мысли пошевелятся, глядишь в зеленоград переедите.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Вопрос АРМов, STM-ок и пр. я сознательно обошел стороной, поскольку в таком случае, это надо смотреть вовсе не тут, в смысле не на этом форуме. Я поднял вопрос новой разработки именно с применением Atmega. Есть народ, которого "не устраивает" существующая линейка и есть интерес к такой разработке?

Вопрос "16Мгц" маловато - не верен в корне. Вспомните линейку Intel x286. Вполне было достаточно тех же самых 12-16Мгц и "памяти не хватало", а было и поболе .. до 16 мегабайт, однако. Практика и вся история развития ВТ доказывает, что объем решаемых задач всегда упирается не столько в частоту, сколько в объем доступной оперативы.

Работать с сегментированной памятью компиляторы "учили" ещё в стародавние времена "прошлого веку" .. :)

Лично мне, вполне хватит пары экземпляров .. есть "тыщи", кому это тоже может быть интересным, как мне кажется.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

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

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

То есть "тут", в смысле "на ардуино" - жизни нет? :) Ок, задумался за переход на другие платформы и форумы ..

Клапауций 111
Offline
Зарегистрирован: 26.12.2015

Arhat109-2 пишет:

Есть народ, которого "не устраивает" существующая линейка и есть интерес к такой разработке?

кого не устраивает, берут контроллер, втыкают в макетку и юзают - kisoft показал, как подключать atmega16, поэтому не проблема. писать для этого некий расовоправильный софт - нет желания ждать, пока ты и Ко набыдлокодят нетленку.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

"Не проблема" - что? Втыкнуть иную Atmega в ИДЕ и прописать на неё скетч из под ИДЕ, да под wiring? Это - понятно, я же не ЭТО предлагаю.

Ещё раз: предлагаю собрать железку с блоком расширенной памяти для расширения круга решаемых задач, где этой самой памяти у мег - не хватает. Заодно, вывести отсутствующие ноги МК на плату и оптимизировать конструктив платы. Все равно, под Мега2560 железок, как таковых - нет.

Ну а насчет "расовоправильного софта", "быдлокодерства" и "нет желания ждать" - подключайтесь! Сколько времени ушло у команды Ардуинщиков на создание рабочей версии от появления идеи? Мне кажется что-то около года. Нет?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну и ещё, замечу. Российские конторки таки производят аналоги Atmel .. а аналоги АРМ-ов - есть? Это в плане "импортозамещения". :)

Cool Smile
Offline
Зарегистрирован: 09.07.2013

Физические размеры, малое количество таймеров и отсутствие синхронных уартов меня особо не трогают, а вот малое количество оперативной памяти напрягает очень сильно. Так что если будет железка совместимая по софту и разъемам с UNO, но с 32К+ оперативной памяти и за вменяемые бабки (300-500руб) то меня бы она заинтересовала.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

На 3-х обвязочных мелкосхемах (3-5руб/шт) возможен сбор железки "upto 2 метра" оперативы, ваще-то. Стоимость - существенно зависит от размера оперативы: 32к х 8 - стоят в районе 50-70 руб в розницу и в обвязку достаточно 1 мелкосхему + пара транзюков, 128-256кб идут примерно по одной цене 100-200руб/шт, 512к х 8 уже 200-300, а 2Мб х 8 - от 2000. :) Это что сам находил на Али.

Кстати, в тех же корпусах идут скоростные флеши 1-2 метра до 30Мгц .. так что, вполне можно сделать SRAM "энергонезависимую", которую не надо инициализировать заново при просыпаниях .. :)

Atmega2560 стоит примерно от 250руб на корпус .. так что, ну не в 500 .. 800-900руб - вполне можно сваять "СуперМегу" с 256к программной памяти и 0.5 метра оперативы. :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да, это я смотрел вариант использования SRAM памяти. Можно нарисовать и с DRAM, но потребуется таймер для "принудительного вспоминания" по RAS .. зато DRAM стоит копейки и её можно навыпаивать из чего угодно. Мои изыскания остановились по причине того, что добытая микруха SRAM оказалась битой..

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Arhat109-2 что могу сказать, не плохо было бы знать во что выльется проект. Я сам на ARM или STM ничего не сваяю, Arduino для меня хорош тем что можно делать тиражируемые решения, сделал я - повторят другие. Именно те кто сможет купить модули и правильно их соеденить, без травления плат и их пайки.

Я понимаю, что сейчас есть сервисы котолые сваяют вам плату и распаяют на ней элементы, но хоррошо бы посчитать сколько будет стоить изготовление партии, скажем 10 штук. То же касается и модулей. 

В связи с этитм вижу 2 проблемы:

1. Себестоимость будет не дешевой при небольших партиях производства. Тогда какой смысл? Есть же более дорогие и производительные проекты, малина та же.
2. Глючность будет на порядок выше решений на Arduino. Расскажу почему, посмотрите на форум. Каждый месяц появлается новичек, который спрашивает как подключить ту или иную библиотеку, которая уже 2-3 года как подключена у всех, обкатана, есть куча постов с ответами на его вопроссы на форуме. И все равно он не может подключить или модуль или библиотеку. 

На отладку ИДЕ и прошивки уйдет не один год. Но ваш подход мне нравится. Сам использую МЕГУ потому как не великий оптимизатор и программист и памяти УНО мне нехватает. Размеры плат меня устраивают, за исключением некоторых модулей, например часов DS3231, но их не сложно сконструировать в виде шилда к Arduino.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Я хорошо понимаю, что есть иные линейки решений. Тот же STM32 с его 186 ногами для управления всего и всем .. но, пока я не выжал из своей Меги всё, на что она способна - для себя не вижу смысла переходить куда-то ещё. Ну и как понимаю, Ардуино - тот проект, который для начинающих, к коим пока ещё, причисляю и себя в полной мере. И, в моей меге, меня уже не устраивает многое .. часть описал, но и так получилось "многа букв".

Первое, что бросается в глаза несоотвествие тактовой частоты ресурсам памяти при значительном объеме программной. Можно конечно же юзать PROGMEM но далеко не всегда и везде. Ну зафигачил я "таблицы Брадиса" в целых в PRGOMEM и вместо мат. либы пользуюсь табличками во flash с "дикой скоростью" .. а толку? Задача картографирования комнаты с достаточной точностью .. упс в отведенные 8кб - "с натягом". Про задачи с видео, вывод на хороший граф-экран - проще забыть. Раньше, во времена х286 .. потребности в памяти оценивались как 1 байт на 1 герц тактовой .. а тут?

По вашим вопросам - опасениям:

1. Себестоимость конечно же будет зависеть от тиража. Сам тираж - от спроса и продвигаемости - популяризуемости. И тут, на помощь - раскрученность родительского бренда - Ардуино. Сделать так, чтобы родные либы, да и само ИДЕ было пригодно "в лоб" - ведь не проблема! Тут уже упоминалось про такой опыт. А вот при сохранении программируемости в ИДЕ, да с дополнительной памятью (кстати, можно прописать в тех же настройках для платы!) ..

2. Да, можно найти китайцев, способных развести и запаять "что угодно" и цена их работы - впрямую зависит от тиража. Но. Если это "свободный проект" .. кто мешает найти китайцев, которые станут тиражировать это миллионами, да при наличии спроса? "не заработают авторы"? Так я призываю организовать "свободный" проект .. а вполне допускаю, что можно найти китайцев, которые и профинансируют .. не исключаю и такое "развитие событий". Хотя бы бесплатными образцами разрабам .. :)

3. Глючность не может быть выше "на порядок". Она будет ровно той же самой. Вопрос "совместимости" - не является проблемой. Да, очень неплохо запилить "рассововерное" обеспечение .. команды из 2-3 прогеров - более чем достаточно ( Г(ениальных)-)программистов - не пущать к проекту!), чтобы запилить такой же объем примерно за год, вряд ли потребуется больше времени.

valeraba
Offline
Зарегистрирован: 08.09.2014

Создание новых аппартных платформ дело сугубо личное. И одной головы для этого вполне достаточно. Если же железка окажется удачной, то спрос будет.

...но почему для новой платформы не использовать ARM? А может вам Raspberry взять? Кто вам сказал, что вам не нужна многозадачность? Хорошо подумайте, ведь если вам требуется много оперативной памяти, то значит задача настолько объёмная, что её можно было бы разбить на несколько подзадач, работающих в разных потоках.

А серебрянную пулю вам не вылить, и ваша железка будет нужна "не только лишь всем, но и мало кому пригодится" .

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Arhat109-2 пишет:

для расширения круга решаемых задач

Вот эту фразу я слышу от Вас постоянно, но до сих пор неясно, что ж у Вас за задачи такие? Вы никогда как-то на них не останавливаетесь.

Расширять круг-то, конечно, хорошо, только куда расширять, насколько расширять? Да и цель этого расширения непонятна.

Вот Вы говорите, увечить память до 2М. Замечательно! А почему именно до 2М? Уверены, что хватит? Может надо до 2Г, а все расширения до 2М - бесполезная трата времени и ресурсов? Можете круг задач очертить, для которых это делается?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Вытесняющая многозадачность у меня уже есть.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Круг моих задач - описан мною не единожды в разных темах. Не моя вина, что вы их не читали. Конкретно в них "особых" потребностей в памяти нет, но и не в 8 килобайт. Мне - вполне хватит и 32х. Пока, по крайней мере.

Планка в 2 метра - тоже оговорена выше: "на 3-х обвязочных мелкосхемах можно ..". Можно и больше - обвязки потребуется больше. Только и всего. Там 1 регистр-зхащелка просто требуется по даташиту на xmem ноги для буферизации адреса, а 2 других - хранение расширенной части адреса памяти. На 1 мелкосхеме - тоже можно, но тогда теряется гибкость использования - вся дополнительная память будет представлена единым адресным сегментом, что исключает задачи, где есть потребность в более 32-56кб. просто мелкосхемы 4-х битные, пара позволяет расширять до 8 бит на доп. часть адреса .. что дает при 8кб сегменте .. до 2 метров адресного пространства. Можно и больше - мелкосхем потребуется просто больше и программировать придется сложнее. Только и всего.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Arhat109-2 пишет:

Планка в 2 метра - тоже оговорена выше: "на 3-х обвязочных мелкосхемах можно ..". Можно и больше - обвязки потребуется больше. Только и всего. 

Ну. что-то подобное я и предполагал. 2М не потому, что столько нужно, а потому что так проще сделать. Т.е. основной принцип проектирования: "ищем под фонарём, т.к. там светлее". 

Удачи в разработке!

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну и опять же. МК позволяет адресовать до 16 метров через доп. регистры RAMPZ, EIND и др. они тоже байтовые. Это - верхний предел расширения памяти.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Проще - тупо добавить 1 мелкосхему на 32к с регистром защелкой.

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Да, и спасибо за пожелание удачи. Я тему открыл для того, чтобы понять и ВЫРАБОТАТЬ полезные пожелания к идее создания "супердуньки".. так, в частности, кроме мега2560, этим же интерфейсом обладает целая линейка МК у Atmel .. но они НЕ используются в Ардуино от слова "никак". Так может их тоже можно приспособить?

std
Offline
Зарегистрирован: 05.01.2012

Про mega128 с памятью до 128k интересно.

pav2000
Offline
Зарегистрирован: 15.12.2014

kisoft   дело говорит - смотрите в строну STM32

Я сейчас использую открытый проект stm32duino (http://www.stm32duino.com/)  его смысл разработка в среде Ардуино на STM32. Уже портирована куча библиотек (я портировал парочку). И сделал парочку проектов, например -  http://arduino.ru/forum/proekty/udalennyi-monitoring-za-datchikami-na-ma...

Например берете maple mini  (stm32f103) 120 кб  РОМ и 20кб РАМ  72 мГц  12 битный АЦП  2 SPI,  RTC  и радуетесь.  Можно использовать и более старшие чипы если чего не хватает.

На АЛИ  плат на STM32  как грязи и все разные на любой вкус.

И все усилия направляете на разработку прикладного софта или библиотек.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Я не возражаю, что на других платформах есть решения не хуже, а зачастую и лучше .. но, тему я разместил на этом форуме, а не среди фанатов/пользователей STM32.

Впрочем, вы как понимаю, тоже считаете что тут, на Атмел - "ловить нечего" и разрабатывать - незачем. Так? Что Вы тут тогда делаете совместно с kiksoft и прочими пользователями STM32? :)

Ещё раз: я к тому, что тема открыта для пожеланий "чего бы хотелось" с использованием МК Атмел, ну и поиска "команды", если это кому-то интересно. А вовсе не для холивара "чей пирог краше". :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Посмотрел, да ATmega128 это не совсем тоже самое что Atmega1280 и стоит от 50руб/шт .. а какие ещё МК у Атмела имеют xmem интерфейс?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Arhat109-2 пишет:

но, тему я разместил на этом форуме, а не среди фанатов/пользователей STM32.

А на этом форуме тоже есть фанаты/пользователи STM32 ;-) 

Можно быть фанатом/пользователем одновременно нескольких платформ/архитектур.

Клапауций 111
Offline
Зарегистрирован: 26.12.2015

Arhat109-2 пишет:

Ну а насчет "расовоправильного софта", "быдлокодерства" и "нет желания ждать" - подключайтесь! Сколько времени ушло у команды Ардуинщиков на создание рабочей версии от появления идеи? Мне кажется что-то около года. Нет?

так понимаю, здесь всё от меня зависит(с).

ок. разрешаю - через год начну юзать супер-дуину.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ф топку новую самодельную мегу, ведь есть ATmega2560 Core, то, чего в ней не хватает, 98% народу не нужно.

А вот если эти самые задумки (пусть даже без платы, только IDE), да реализовать для STM - это будет вкуусно - получим легкий в освоении  STMduino.

4ishops
Offline
Зарегистрирован: 06.10.2012

логично сделать сменный камень на той же UNO, на панельке типа DIP, взял основу, поставил тот камень который нужен и вперед :)

 

развести это все не такая проблема имея открытые исходники от UNO...

 

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Логично не страдать х..ей.

Повторить успех Ардуино невозможно, мысля категориями Ардуино.

А та-же Ардуино но с блэкджеком и комсомолками никому не нужна. Времена не те.

4ishops
Offline
Зарегистрирован: 06.10.2012

Gippopotam пишет:

Логично не страдать х..ей.

 

 

ваше частное мнение никому не интересно, проходите мимо и не умничайте

 

вопрос был не в успехе, а модификации железки на той же основе, смотрите и читайте внимательнее прежде чем каментить

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Всех, ещё раз с наступающим Новым Годом!

Как вижу, пока идея проходит первую стадию "да ну нафиг" .. по-прежнему жду пожеланий.

Пока в списке только 1: Atmega128 + SRAM 128k. Посмотрел даташит на этот МК, да вполне возможно. Суммарная себестоимость микросхем в розницу оцениваю в 200руб/плата. Вполне реально.

Пока вижу применимость идеи к линейке Atmega640, ATmega1280, ATmega2560 и Atmega64, Atmega128, Atmega162 .. ещё есть ATxmega.. с таким интерфейсом, но они кажется все на 3.3в... есть ещё разновидности с возможностью прямого расширения внутренней памяти?

Хотелось бы собрать ещё пожеланий ..

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

xMeg'и не надо...не очень они популярные...как и 162, редко встречаются. С 128й вариант хороший.

Immortal
Offline
Зарегистрирован: 28.12.2013

Arhat109-2 пишет:
Спроектировать и переразвести серию плат на базе линейки Atmega64, ATmega128, ATmega256, и др, имеющих встроенный интерфейс расширения внутренней SRAM, дополнив прямо на плате простым контроллером на 3-х микросхемах 74-й серии (74VHC373x1 + 74F410x2 + SRAM: 32kb .. 2Mb x higher 70ns), снабдив всеми доступными 86-ю выводами "самого старшего" МК. Дополнительно, сгруппировать выводы "по назначениям" и сразу же снабдить выводы "землей и питанием" по необходимости, так чтобы к примеру можно было бы подключать сервы напрямую к плате их штатным разъемом, к ножкам UART подключать разъем с питанием и т.д. Такие разъемы вывести "вбок" для горизонтального подключения, оставив возможность наращивать платы "вверх/вниз"

Я тоже разрабатываю свою ардуину на ATmega128А. Рабочее название платы "Minimal ATmega128 board" - ATmega128 и минимально возможные габариты.

Вообще у меня есть уже два поколения плат на 128 меге, первая полностью готова и протестирована, вторая лишь в стадии проектирования.  Эту плату я буду делать примерно такой:

Только все детали будут смд, а не выводные (конечно кроме контактных колодок и кварца - смдшные кварцы дорогие). Контактные кододки можно впаять угловые или обычные прямые.

Другие особенности платы:

1. Поле для макетирования на оборотной стороне (только для смд деталей типоразмера 1206, но выводные тоже можно будет подпаять. Также будет возможность распаять там SOIC микросхему, любой корпус до 20 выводов)
2. Порт для перепрошивки pin-to-pin совместимый с тем что у про мини: DTR, TX, RX, VCC, GND (прошивка будет только через  бутлодер, для подключения к ISP и прошивки бутлодера сделаю специальную плату-переходник)
3. Будет отдельный набор выводов +5В и земли, не меньше 5шт каждого
4. На плате скорее всего не будет стабилизатора, предполагается что на плату будет подключаться только стабилизированное питание. (На поле для макетирования всегда можно будет распаять LDO стабилизатор, можно предусмотреть для него разведенные дорожки)

Моя плата не будет оптимизирована под ЛУТ. Я закажу их производство на фабрике в Китае (например заказ на iteadstudio обоходится в 14,42USD за 10 плат размером до 5х5см. И это включая доставку!)

С одной стороны на шелкографии выводы будут подписаны в ардуино стиле (А0-А7 0,1,2...) а с другой стороны - в AVR-стиле (B0-B7, C0-C7, ...)

Все это уже есть в протеус проекте, стадия готовности 90%, однако плату придется перерисовать в игле, поскольку я не уверен что протеус генерит правильные гербер файлы.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Интересно! Исходники в открытый доступ отдадите?)

Immortal
Offline
Зарегистрирован: 28.12.2013

Да, я смогу поделиться протеус-проектом после праздников.

Было бы отлично если бы кто то перерисовал ёё в игле. Я в нем полный 0.

Можно попробовать перерисовать ёё в спринте если китайцы примут герберы. В этом я не уверен.

Можете предлагать какие то свои идеи. Главное - вписаться в габариты 5х5см, иначе стоимость производства плат возрастет.

Мое главное ноухау на этой плате разработчика - поле для макетирования на оборотной стороне, которое позволит собирать например такие схемы:

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Alex_EXE вроде отправлял в Китай герберы из Лайаута, правда 5-го, но, думаю, разницы не будет)

В спринте 6-ом могу нарисовать.

В игле тоже могу попробовать, хотя и не особо он меня зацепил....так, у меня даже диптрейс где-то валяется...играться пробовал)

spa-sam
Offline
Зарегистрирован: 14.12.2012

Я за ATmega128. Купил с пяток таких, пока руки не доходят. Беглым взглядом пробежался по инфе и многие жалуются, что nrf24l01+ не хочет работать с ней. Это проблема ? Или уже все решено?

Immortal
Offline
Зарегистрирован: 28.12.2013

Arhat109-2 пишет:

Пока в списке только 1: Atmega128 + SRAM 128k. Посмотрел даташит на этот МК, да вполне возможно. Суммарная себестоимость микросхем в розницу оцениваю в 200руб/плата. Вполне реально.

Мое ИМХО: если вам не хватает SRAM на Atmega128 то переходить нужно на Raspberry Pi Zero/B+ или на вторую малинку. А уже к ней подключать любую подходящую ATmega для опроса датчиков/кнопок. Напрямую к малинке я практически ничего не подключаю - боюсь попалить выводы, а AVRка у меня выступает и в роли преобразователя уровней 3.3В - 5В и в роли контроллера низкоуровневой периферии.

Arhat109-2 пишет:
Пока вижу применимость идеи к линейке Atmega640, ATmega1280, ATmega2560 и Atmega64, Atmega128, Atmega162 .. ещё есть ATxmega.. с таким интерфейсом, но они кажется все на 3.3в... есть ещё разновидности с возможностью прямого расширения внутренней памяти?

И тут я остаюсь при своем мнении: Советую обратить внимание только на эти два камня: ATMEGA8A $0.43 / шт , ATMEGA128A $0.70 / шт.
Какие либо другие AVR контроллеры покупать экономически нецелесообразно

Уже совсем скоро мы будем использовать копеечные Raspberry Pi Zero или ее китайские клоны вместо STM32/ATxmega и прочих 32-битных микроконтроллеров. Цена порядка $5 за плату это позволит.

Разница в цене Ардуино и Raspberry Pi уменьшается с каждым годом.

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

spa-sam пишет:

Я за ATmega128. Купил с пяток таких, пока руки не доходят. Беглым взглядом пробежался по инфе и многие жалуются, что nrf24l01+ не хочет работать с ней. Это проблема ? Или уже все решено?

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

arduinec
Offline
Зарегистрирован: 01.09.2015

Китайцы уже выпустили плату с ATmega128:

http://ru.aliexpress.com/item/ATMEL-ATMega128-M128-AVR-Minimum-Core-Deve...
 

Из контроллеров Atmel интереснее ATmega1284 (в DIP корпусе) - там уже 16К оперативной памяти:

http://ru.aliexpress.com/item/Electronic-Components-Original-ATMEGA1284P...
 

Immortal
Offline
Зарегистрирован: 28.12.2013

Я пользовался такой платой. Норм, но вот этого мне не хвалало:

Immortal пишет:
С одной стороны на шелкографии выводы будут подписаны в ардуино стиле (А0-А7 0,1,2...) а с другой стороны - в AVR-стиле (B0-B7, C0-C7, ...)

Приходилось постоянно заглядывать в экселевскую табличку чтоб узнать например где у меня 13-й пин или где шим. Именно по этой причине я начал свой проект.

Также JTAG на ней ниразу не пользовался, ISP только пару раз.

С такой платы можно убрать много лишнего, а цена этой платы почти равна цене 10шт заказных ПП из китая. Как по мне выбор очевиден ;-)

Кстати первую свою отладочную плату на ATmega128 я собрал аж в 2007 году. С тех пор для чего я только не делал свои девборды. Даже для пиков что то было.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Я даже не знаю, что вам ответить. Да, посмотрел уже: Atmega128A при своей неплохой цене, обладает достаточно полным набором периферии, уступая ATMega2560 примерно в 2 раза по всем параметрам (128к против 256к flash; 4к против 8к SRAM; 2/3 против 2/4 таймеров и т.д.), при существенно ниже цене: 0,7-1$ против 3.5-4.5$ С точки зрения выбора среди AVR-МК, наверное это самый удачный вариант по параметру "грамм за градус".

Проблема и тут лежит "точно тамже", а именно в нехватке оперативной памяти. Да, и тут её можно нарастить и точно также "легко".

Но, как я пока вижу (а перерыл уже много инфы по МК в целом) недостаток памяти на практике решается простым ответом: "возьми другой МК". Только вот на 8/16 битных AVR - "а нет другого" .. от слова "совсем". 8килобайт - предел для МЕГ, и 32 кб - предел для х-мег. Ну и стоят они с памятью уже не так "кошерно". Выбор среди "конкурентов" в секторе 8/16 бит - и того грустнее.

Остается переход на 32-х битную архитектуру. Правда остается непонятным вопрос "нафига" для управления периферией (где зачастую и 256 состояний - дофигища) аж 32 разряда .. но "а что делать?" или "а пусть будут". И тут, как ни странно, но тоже особого выбора нет. Ибо в сопоставимом ценовом сегменте присутстуют только STM-ки, да и то "младших серий" STM32F10x .. у которых набор несущественно лучше. Впрочем это уже пытались разбирать тут. А как выясняется, ещё и не всё пашет согласно даташиту.. А как только начинаешь смотреть на модели "постарше", типа STM32F407IVG6 .. так упс и цена "зашкаливает" за 30$ только за микросхемку.

Вот и возник тот вопрос, который и был выведен в заголовок темы: "супердунька" - АТмега "с расширенной памятью" - надо ли кому? Скажем так, "бюджетный" вариант, это прямое наращивание SRAM до +32 килобайта "прямым" способом из даташита (собственно микросхема памяти + 1 регистр-защелка адреса), даст:

ATmega128A своих 4к + 32к дополнительных = 36кб SRAM, а ATmega2560 = 40кб SRAM (своих есть 8к). Никаких "изменений" в скетчах это практически не требует. Только доп. опцию компилятору, сказать что у него память добавилась.. Стоимость такой памяти - около 1 доллара.

И? .. а "нафиг". Возьми Rasbery PI за от 25-и баксов .. и будет тебе "щастье" .. а то что, оно периферией фигово управляет .. ну возьми .. мегу вдогонку. Даже теряешься от таких "советов"...

 

spa-sam
Offline
Зарегистрирован: 14.12.2012

А можно пример как прикрутить доволнительную sram и что прописывать нужно?

P.S.  В инете уже всё нашёл...

 

Immortal
Offline
Зарегистрирован: 28.12.2013

Arhat109-2 пишет:

"супердунька" - АТмега "с расширенной памятью" - надо ли кому? Скажем так, "бюджетный" вариант, это прямое наращивание SRAM до +32 килобайта "прямым" способом из даташита (собственно микросхема памяти + 1 регистр-защелка адреса), даст:

ATmega128A своих 4к + 32к дополнительных = 36кб SRAM, а ATmega2560 = 40кб SRAM (своих есть 8к). Никаких "изменений" в скетчах это практически не требует. Только доп. опцию компилятору, сказать что у него память добавилась.

Я бы не сказал что оно настолько легко заведется. Во первых от ардуино ИДЕ придется полностью отказаться, она не умеет переключать банки внешней памяти. А это самый большой недостаток - теряется совместимость с готовыми библиотеками.
Уже тут становится понятно что проще перейти на STM32 чем изобретать велосипед и вылавнивать глюки.

Я уже не говорю про падение производительности - для доступа к внешней SRAM нужно как минимум 3-4 такта. Вместо 16МГц вы получите ~4МГц микроконтроллер. А надо ли оно вам?

"возьми другой МК" - совет хороший. Только я бы взял SoC :-)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Пример в даташите есть, даже со схемой. На шину x-bus ставится регистр-защелка на порт А (совмещенные линии адрес-данные), который защелкивает адрес сигналом notALE и отдает их на младшие 8 адресов памяти. Старшие 8 адресов - порт С, подключаются напрямую к микросхеме памяти. Итого имеем до 64 килобайт. При этом, согласно даташиту, те адреса, что есть внутри МК (внутренняя SRAM) сигналы на шину НЕ отдает, то есть при прямом подключении 64к SRAM имеете все 64 кила, но из них 1/24/8 (сколько есть внутри) будут внутренними и не будут пользоваться из внешней SRAM - "на выброс". Программно, надо только "включить" x-bus, прописав куда на и что надо согласно даташиту. Ну и компилятору объяснить доп. параметром, что у него теперь есть "стока" адресов для распределения памяти. Всё. :)

Если внешняя только 32к. То их можно использовать все, если завести на старшие адреса памяти. Будет "дырка" в адресации, которую тоже можно "объяснить" компилятору (есть от забора и до заката и вот тут ишо кусок). Такой модуль из 32кб, будет универсальнее, посокльку х-меги могут иметь свою, внутренню SRAM до 32кб, в "нижней части адресов".

Если надо больше памяти, то придется поизвращаться. Надо "где-то хранить" старшие адреса и записывать их туда "отдельными командами", специально. Самые простые решения - сегментированная память, которую делали для спектрумов ещё: "странично организованный контроллер памяти". Адресное окно в 16 разрядов (64кб) разбивается на виртуальные окна по 4/8/16/32 килобайта, а имеющаяся память большего адреса - на страницы такого же как окно размера.

Соответственно, помимо озвученного выше, ставится регистровый файл 16х4 (были такие К531РУ8, SN74F189, SN74F410 - последние предпочтительней: 20нсек, Iпотр<40мА) или 4х4 (К555ИР26, 74HC670) х 2шт., или 1-2 8-разрядных регистра (их многа, вплоть до HC595). Что дает 16/4/2/1 доп. регистров для хранения старших разрядов адреса по 8 бит. В этом случае, старшие 4/3/2/1 разряда адреса заводятся на выбор регистра номера страницы, а выходы регистрового файла - расширяют адрес до нужной разрядности. Если регистр страниц 4-х разрядный, то имеем "всего" 16 страниц в реальной памяти. Если 8-и разрядный, то в пределе - 256. Если каждое окно - размер страницы 8кб, то получаем "предел" в 16*8 = 128кб и 256*8 = 2мб. Если используем только старшие 32к адресов МК, то потребуется 4 регистра для хранения номеров страниц по 8кб. При других параметрах - будут другие соотношения. Так на спектрумах, был контроллер памяти, имевший 16 регистров страниц по 8 бит (К531РУ8х2шт) на все адресное пространство ЦП в 64кб. Это давало размер страницы в 4кб, и возможность нарастить оперативу до 1метра. В реальности более 256кб - я не видел, ибо тогда память - это было дорого, очень дорого. :)

Кстати, если доп. память развести на 2 микросхемы, и вместо одной из них воткнуть панельку, то можно использовать FLASH микросхемы, вместо SRAM .. что даст оперативное сохранение данных в разных засыпательных применениях МК. :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Это не совсем так. Наращивание вплоть до 64кб - не требует никакого "шелкания" банками. Количество тактов - программироуется и минимально равно 3. Память МК тактируется .. 2 тактами. Перечитайте даташит внимательнее. Выполучите 1 дополнительный такт на защелкивание адреса из мультиплексированной части. Ну и требования к SRAM получаются "очень слабые": это не 10-12нс (типовые значения у совр. микросхем), а вполне пойдут микросхемы в 60-70 и даже 80нс .. которые "ваще копейки", если их ещё делают.  :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну и ещё, замечу. Боязнь несовместимости "старых" библиотек - по большей части надуманная. Какая старой либе нафиг разница, что теперь адрес стал "логический" или виртуальный? НИ ОДНА старая либа даже не предполагает, что памяти может быть больше чем .. упс 8 килобайт. Оттого, что вы её нарастили - ей ни жарко ни холодно.

Боязнь, что "компилятор не поймет" .. не знаю, как насчет конкретно avr-gcc, но работать с именно сегментированной памятью, компиляторы учили в целом "давным-давно". Думаю и тут это не будет проблемой.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

И ещё: "программировать" внешние регистры страниц можно .. через теже самые лапки порта А, подавая адрес регистра на тот же самый порт С и управляя теми же самыми сигналами чтения, записи x-bus интерфейса, если входы регистрового файла завести на тот же порт А. Предварительно отключив последний. :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Arhat109-2 пишет:

Правда остается непонятным вопрос "нафига" 

Это ключевой вопрос всей темы!
 
В посте №15 я уже спрашивал Вас "Куда расширять, насколько расширять? Да и цель этого расширения непонятна. Вот Вы говорите, увечить память до 2М. Замечательно! А почему именно до 2М? Уверены, что хватит? Может надо до 2Г, а все расширения до 2М - бесполезная трата времени и ресурсов? Можете круг задач очертить, для которых это делается?".
 
Вы тогда ушли от ответа. Попробую спросить ещё раз: Вы можете объяснить цель проекта? ДЛЯ ЧЕГО Вы это делаете и КАКИХ результатов намерены достичь?
 
Есть много возможных целей. Например: 
1. сделать платформу для определённого круга задач. Какого круга?
2. удовлетворить своё техническое тщеславие (типа а вот как я могу!)
3. поднять бабла (вытеснить с рынка все эти ардуины и рубить капусту)
4. занять свободное время (коту делать нехрен, так он ...)
 
Какова Ваша цель, можете сформулировать? Только не надо отвечать типа "сделать плату с 2М" - это не ответ, потому что тут же возникает вопрос "а нафига?" Конечная цель какова?
 
Пока что я слышал только "это надо сделать потому, что это технически возможно" - но это не может быть целью. Технически дохрена чего возможно - Вы же не делаете всё остальное!
Immortal
Offline
Зарегистрирован: 28.12.2013

Arhat109-2, лучше делайте свои платы на 128 меге но без внешней памяти. Если она понадобится - сделаете модуль расширения. Или несколько модулей разной емкости.

Я бы советовал параллельно осваивать Raspberry Pi. Одно другому не мешает, они с ардуиной хорошо уживаются вместе.