реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> 12 ATmega48 от одного тактового генератора (внешнего)., Можно ли провести 8 Мгц по всей плате?
galjoen
сообщение Nov 19 2008, 17:15
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Есть одна задача, требующая достаточно больших вычислений, но легко параллелящаяся на 12 потоков. Если можно установить 12 штук ATmega48 (или 88), работающих от одного внешнего тактового генератора, то задача очень красиво решается (питание процессоров 3В тактовая частота 8Мгц). Я понимаю, конечно, что можно использовать внутренние тактовые генераторы и их частоту подстраивать по внешнему сигналу. Но это не то. Частота совпадёт, но фаза будет отличатся, а необходимо именно совпадение фазы тактового сигнала.
Вобщем получается, что нужно около 100мм печатного проводника с частотой 8 Мгц по плате провести. Можно ли как-нибудь такое сделать? Ну там параллельно с обоих сторон землю провести, или ещё как? И как там со всякими затуханиями? И нужен ли терминальный резистор? Я в этих вопросах полный профан.
Go to the top of the page
 
+Quote Post
domowoj
сообщение Nov 19 2008, 17:41
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



10 см проводника с 8 Mhz, ИМХО, не самая страшная проблема ,
труднее будет добиться синхронизма вашего устройства.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 19 2008, 17:50
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(domowoj @ Nov 19 2008, 20:41) *
10 см проводника с 8 Mhz, ИМХО, не самая страшная проблема ,
труднее будет добиться синхронизма вашего устройства.

Если будет один тактовый генератор, то синхронизма я добьюсь. Вот тут и пригодится полностью синхронная архитектура АВР. А вот если тактовые генераторы будут разными, то с синхронизацией проблемма... Тогда уж лучше на каком нибудь одном 150 Мгц процессоре делать.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 19 2008, 18:07
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(galjoen @ Nov 19 2008, 21:50) *

Дорожки с 8 МГц можно до 150 мм вести, если вспомнить ПК "Специалист" и его клоны
Синхронизм портится только по Power Up. А внешним ресетом его как раз и можно поднять. Имхо.
Go to the top of the page
 
+Quote Post
slog
сообщение Nov 19 2008, 18:21
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



8MHz "детская" частота. Тяни не бойся. Драйвер должен обеспечить нагрузочную способность достаточную для 12 входов. Ну и земля должна быть хорошая от всех процов, да и согласовать на конце тактовую линию не помешает. "На всякий случай".


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 19 2008, 18:41
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(_Pasha @ Nov 19 2008, 21:07) *
Дорожки с 8 МГц можно до 150 мм вести, если вспомнить ПК "Специалист" и его клоны
Синхронизм портится только по Power Up. А внешним ресетом его как раз и можно поднять. Имхо.

А вот какой выход у генератора тактовой д.б.? Нужно ли там резистор 100 Ом ставить чтоб слегка фронты завалить? А на другой стороне этого провода нужно ли два резистора один на питание, другой на землю ставить?
А для синхронизации там специальный сигнал будет. Он там есть уже, только в этом случае его через D-триггер пропустить придётся для синхронизации с тактовой частотой. А за 2 периода этого сигнала с точностью до такта засинхронизировать все процессоры не проблема.

Цитата(slog @ Nov 19 2008, 21:21) *
8MHz "детская" частота. Тяни не бойся. Драйвер должен обеспечить нагрузочную способность достаточную для 12 входов. Ну и земля должна быть хорошая от всех процов, да и согласовать на конце тактовую линию не помешает. "На всякий случай".

А вот как эту линию согласовывать? У меня ведь не кабель, волновое сопротивление неизвестно. Хотя если и известно было-бы я всё равно в этом деле профан. Знаю только, что у RS485 и CAN на концах кабеля резисторы ставят, а вот у USB нет. Хотя вроде все кабели и сигналы в них у USB и RS485 аналогичны.
Go to the top of the page
 
+Quote Post
bzx
сообщение Nov 19 2008, 20:16
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



А почему бы не рассмотреть замену 12mcu на 1mcu с достаточной производительностью? Если посчитать стоимость этих 12mcu + стоимость их установки, то это в любом случае будет выгоднее использовать один камень, но более производительный.


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 19 2008, 21:13
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(bzx @ Nov 19 2008, 23:16) *
А почему бы не рассмотреть замену 12mcu на 1mcu с достаточной производительностью? Если посчитать стоимость этих 12mcu + стоимость их установки, то это в любом случае будет выгоднее использовать один камень, но более производительный.

12 штук ATmega48 - это менее чем $12. Причём там уже есть и ОЗУ, и FLASH для программ, и всё, что нужно для работы. Программируются они по 1 проводу, т.е. 12 двухконтактных разъёмов для программирования добавляется. Реальная замена всему этому - это АРМ, работающий из ОЗУ. Что-то типа AT91RM9200. Он один стоит в разы дороже, чем все эти меги, а к нему ешё и быстрое ОЗУ нужно, и FLASH, из которой он загружаться будет, и плата там 4х слойная получается. Да вроде и правило такое, что цена возрастает быстрее, чем производительность. Но вот только не все задачи так легко распараллеливаются как эта.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 19 2008, 21:33
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



А цепочкой там проще не выйдет ? (clko -> clki)
Так, по-идее там достаточно только ТТЛ-выход и никаких терминаторов не надо. Но это было на макс. 4 ТТЛ входа... Надо подумать.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 19 2008, 22:11
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(_Pasha @ Nov 20 2008, 00:33) *
А цепочкой там проще не выйдет ? (clko -> clki)

Думал я насчёт цепочки. Но вроде каждая мега задержку в тактовый сигнал вносить будет. И к последней тактовая со значительным сдвигом по фазе прийдёт. И вся синхронизация рушится.
Цитата(_Pasha @ Nov 20 2008, 00:33) *
Так, по-идее там достаточно только ТТЛ-выход и никаких терминаторов не надо. Но это было на макс. 4 ТТЛ входа... Надо подумать.

Ну можно к одному ТТЛ-выходу ещё 3 ТТЛ-входа инверторов (или повторителей - неважно) подключить, а уже к каждому из их выходов по 4 процессора. Единственный момент, что питание там 3,3 вольта, но современная логика вроде хорошо от такого напряжения работает. Я вообще-то с логикой со времени синклеров дела не имел, всё как-то без неё удавалось обойтись. А терминаторы хоть и ставлю, но зачем - для меня загадка.

P.S. Там ещё 13й процессор поставить придётся. Он будет обработанные данные у этих собирать, буферизировать и дальше отправлять. Какой нибудь с возможностью аппаратного подключения внешнего ОЗУ желательно. Даже ATmega64 подойдёт.
Go to the top of the page
 
+Quote Post
bzx
сообщение Nov 19 2008, 22:39
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Цитата(galjoen @ Nov 20 2008, 00:13) *
12 штук ATmega48 - это менее чем $12.

Если уж начали считать, то сюда надо добавить и стоимость работ по монтажу, ну и стоимость платы под этими mcu.

Будем считать, что Вам повезло, и стоимость точки-пайки на автомате (подготовка к производству не учитывается) обходится в 16коп. Так же считаем, что Вы заложили самый маленький корпус - MLF28. Всего точек паек 28*12=336, тогда стоимость сборки 336*0.16=~54р.

Размер корпуса MLF28 - 4 x 4 мм, зазор по установке между корпусами компонентов на pcb пусть 2.5 мм, тогда площадь платы под 12mcu 12*(4+2.5) *(4+2.5)=~500мм^2. Будем считать, что у Вас заказ в несколько десятков дм^2, тогда при данном заказе стоимость 1 дм^2 можно условно принять в 100р. Стоимость платы под 12mcu = 100*0.05=5р

Итого затраты 54+5=59р и это минимум, скорее всего в Вашем случае будет в разы больше. Это ещё $2 к Вашим $12.
Цитата(galjoen @ Nov 20 2008, 00:13) *
Реальная замена всему этому - это АРМ, работающий из ОЗУ. Что-то типа AT91RM9200.

На самом деле RM9200 уже староват, есть более удачные камни и с приличным быстродействием, и со встроенной flash.

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


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 19 2008, 23:35
Сообщение #12


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(galjoen @ Nov 19 2008, 23:13) *
12 штук ATmega48 - это менее чем $12. Причём там уже есть и ОЗУ, и FLASH для программ, и всё, что нужно для работы. Программируются они по 1 проводу, т.е. 12 двухконтактных разъёмов для программирования добавляется. Реальная замена всему этому - это АРМ, работающий из ОЗУ. Что-то типа AT91RM9200.

С чего вы взяли что именно этот АРМ? smile.gif

Реальная замена всей вашей требухи из 12-ти M48 @8Mhz - это LPC2101(2KB sram/8KB flash)@72Mhz который стоит 2$.

Цитата
P.S. Там ещё 13й процессор поставить придётся. Он будет обработанные данные у этих собирать, буферизировать и дальше отправлять. Какой нибудь с возможностью аппаратного подключения внешнего ОЗУ желательно. Даже ATmega64 подойдёт.

Решили науку двигать? smile.gif Научитесь вначале делать обзор существующего.
Берем LPC2106 - гонится до 110Mhz, ОЗУ 64KB, Flash 128KB, корпус 48ног, стоит ~7$
потенят всю вашу задачу как пить дать.
Go to the top of the page
 
+Quote Post
dENIM
сообщение Nov 19 2008, 23:49
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137



шайтан-устройство
MegaCELL
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 21 2008, 10:53
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



2 'defunct', 'bzx'
Там проблемма в том, что между задачами очень часто переключаться придётся. За 50 mks всем 12 задачам нужно управление передать (а в идеале в 4 раза чаще). При тактовой частоте 100 Mhz это 5000 тактов на всё. Т.е. в среднем 417 тактов на задачу. Из этих 417 тактов, думаю, тактов 80 сохранение и восстановление регистров и переменных займёт. Т.е. собственно на задачу 300 с небольшим тактов останется.
А в случае с 12 мегами на 8 Mhz - 400 тактов, и ничего сохранять-восстанавливать не надо. Ну, по питанию там всё примерно одинаково. Мега в таком режим примерно 4 ма кушать будет.
Хотя я понимаю, что на одном процессоре всё это легче сделать. Но вот красота при этом пропадает...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 21 2008, 11:15
Сообщение #15


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(galjoen @ Nov 21 2008, 14:53) *
Но вот красота при этом пропадает...

Зачем переключать контексты если можно все данные свести к массивам, а дерево алгоритма потока - к switch(state[task_num]) ?
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01607 секунд с 7
ELECTRONIX ©2004-2016