|
12 ATmega48 от одного тактового генератора (внешнего)., Можно ли провести 8 Мгц по всей плате? |
|
|
|
Nov 19 2008, 17:15
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Есть одна задача, требующая достаточно больших вычислений, но легко параллелящаяся на 12 потоков. Если можно установить 12 штук ATmega48 (или 88), работающих от одного внешнего тактового генератора, то задача очень красиво решается (питание процессоров 3В тактовая частота 8Мгц). Я понимаю, конечно, что можно использовать внутренние тактовые генераторы и их частоту подстраивать по внешнему сигналу. Но это не то. Частота совпадёт, но фаза будет отличатся, а необходимо именно совпадение фазы тактового сигнала. Вобщем получается, что нужно около 100мм печатного проводника с частотой 8 Мгц по плате провести. Можно ли как-нибудь такое сделать? Ну там параллельно с обоих сторон землю провести, или ещё как? И как там со всякими затуханиями? И нужен ли терминальный резистор? Я в этих вопросах полный профан.
|
|
|
|
|
Nov 19 2008, 18:41
|
Знающий
   
Группа: Свой
Сообщений: 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 аналогичны.
|
|
|
|
|
Nov 19 2008, 21:13
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(bzx @ Nov 19 2008, 23:16)  А почему бы не рассмотреть замену 12mcu на 1mcu с достаточной производительностью? Если посчитать стоимость этих 12mcu + стоимость их установки, то это в любом случае будет выгоднее использовать один камень, но более производительный. 12 штук ATmega48 - это менее чем $12. Причём там уже есть и ОЗУ, и FLASH для программ, и всё, что нужно для работы. Программируются они по 1 проводу, т.е. 12 двухконтактных разъёмов для программирования добавляется. Реальная замена всему этому - это АРМ, работающий из ОЗУ. Что-то типа AT91RM9200. Он один стоит в разы дороже, чем все эти меги, а к нему ешё и быстрое ОЗУ нужно, и FLASH, из которой он загружаться будет, и плата там 4х слойная получается. Да вроде и правило такое, что цена возрастает быстрее, чем производительность. Но вот только не все задачи так легко распараллеливаются как эта.
|
|
|
|
|
Nov 19 2008, 22:11
|
Знающий
   
Группа: Свой
Сообщений: 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 подойдёт.
|
|
|
|
|
Nov 19 2008, 22:39
|

Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Nov 19 2008, 23:35
|

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

|
Цитата(galjoen @ Nov 19 2008, 23:13)  12 штук ATmega48 - это менее чем $12. Причём там уже есть и ОЗУ, и FLASH для программ, и всё, что нужно для работы. Программируются они по 1 проводу, т.е. 12 двухконтактных разъёмов для программирования добавляется. Реальная замена всему этому - это АРМ, работающий из ОЗУ. Что-то типа AT91RM9200. С чего вы взяли что именно этот АРМ?  Реальная замена всей вашей требухи из 12-ти M48 @8Mhz - это LPC2101(2KB sram/8KB flash)@72Mhz который стоит 2$. Цитата P.S. Там ещё 13й процессор поставить придётся. Он будет обработанные данные у этих собирать, буферизировать и дальше отправлять. Какой нибудь с возможностью аппаратного подключения внешнего ОЗУ желательно. Даже ATmega64 подойдёт. Решили науку двигать?  Научитесь вначале делать обзор существующего. Берем LPC2106 - гонится до 110Mhz, ОЗУ 64KB, Flash 128KB, корпус 48ног, стоит ~7$ потенят всю вашу задачу как пить дать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|