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

|
Есть одна задача, требующая достаточно больших вычислений, но легко параллелящаяся на 12 потоков. Если можно установить 12 штук ATmega48 (или 88), работающих от одного внешнего тактового генератора, то задача очень красиво решается (питание процессоров 3В тактовая частота 8Мгц). Я понимаю, конечно, что можно использовать внутренние тактовые генераторы и их частоту подстраивать по внешнему сигналу. Но это не то. Частота совпадёт, но фаза будет отличатся, а необходимо именно совпадение фазы тактового сигнала. Вобщем получается, что нужно около 100мм печатного проводника с частотой 8 Мгц по плате провести. Можно ли как-нибудь такое сделать? Ну там параллельно с обоих сторон землю провести, или ещё как? И как там со всякими затуханиями? И нужен ли терминальный резистор? Я в этих вопросах полный профан.
|
|
|
|
|
 |
Ответов
|
Nov 21 2008, 23:23
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(galjoen @ Nov 19 2008, 20:15)  Есть одна задача, требующая достаточно больших вычислений, но легко параллелящаяся на 12 потоков. Если можно установить 12 штук ATmega48 (или 88), работающих от одного внешнего тактового генератора, то задача очень красиво решается (питание процессоров 3В тактовая частота 8Мгц)... Жесть! Прошу прощенья за ремарку. Присоединюсь к предложению поставить более мощный контроллер. Выиграете во всех без исключения смыслах. Я бы, правда, порекомендовал DSP. По теме (хотя здесь это и не совсем к месту). На выход генератора обязательно нужно ставить буфер. Проще всего взять 6-гейтовый буферный инвертор типа 74AC04. Расположить рядом с генератором. К каждому выходу буфера подключить два тактовых входа. Провода желательно тянуть от буфера отдельно для каждого из входов. Собственно, согласование при такой длине проводников не играет особой роли. Однако, на каждую трассу следует поставить последовательный резистор 50-100 Ом для уменьшения добротности резонирующей цепи, обусловленной индуктивностью дорожки и ёмкостью входа приёмника. Резисторы располагать в непосредственной близости от выводов буфера. Усё.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Nov 22 2008, 21:32
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Stanislav @ Nov 22 2008, 02:23)  На выход генератора обязательно нужно ставить буфер. Проще всего взять 6-гейтовый буферный инвертор типа 74AC04. Расположить рядом с генератором. Я примерно в таком духе и планировал сделать, на 74AC04. На двух из шести его инверторов генератор сделать, а остальные как буфера использовать. Т.е. к каждому из буферов через резистор по 3 тактовых входа подключить. Вот только к каждой меге свой провод тянуть проблематично. Думал может там (около входа меги), вместо этого, тоже резистор 50..100 Ом поставить для исключения взаимовлияния? Цитата(_Pasha @ Nov 22 2008, 11:25)  Я Вас умоляю! Берете Int0 - на него вешаете "готовность номер 1" Int1 - собственно синхронизация, и его надо подать в течение времени не более, скажем 1 мкс, иначе все опять придет в начальное состояние. В качестве "готовности N1" и собственно синхронизации можно один сигнал использовать. Нулевой уровень которого будет готовностью N1, а переход 0-1 собственно синхронизацией. Завести его на int0 и прерывания по 0му уровню разрешить. А в самом прерывании переинициализировать прерывание int0 на срабатывание по переходу 0-1, ну и цепочка nop-ов. Ну ещё там, в прерывании, придётся смотреть как оно сейчас проинициализировано (от чего произошло), ну и стек там подправить (как впрочем и в вашем случае). Но всётаки способ со входом захвата таймера лучше. Если получится конечно. А судя по описанию получится должно. Но попробовать надо. А вообще я конечно понимаю, что на одном процессоре это легче сделать. И всю эту тему поднял только для того, чтобы все варианты рассмотреть. Но сейчас как-то втянулся. Думаю так: ну сделаю я всё это на каком-нибудь АРМе, ну будет ещё одно устройство, каких много. А вот если на 12 мегах сделать - это будет круто! Какой ещё дурак до такого додуматься сможет? Когда ещё такая задача подвернётся? М.б. и никогда... А проигрыш в $5 и 10 кв. см платы - это ерунда. Таких девайсов точно много не будет. Десятки, ну м.б. несколько сотен. Ну вобщем взвешиваю все за и против...
|
|
|
|
|
Nov 23 2008, 07:43
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(galjoen @ Nov 23 2008, 01:32)  В качестве "готовности N1" и собственно синхронизации можно один сигнал использовать. Нулевой уровень которого будет готовностью N1, а переход 0-1 собственно синхронизацией. Завести его на int0 и прерывания по 0му уровню разрешить. А в самом прерывании переинициализировать прерывание int0 на срабатывание по переходу 0-1, ну и цепочка nop-ов. Стоп-стоп! На кой ему тогда переход в "готовность 1" делать по прерыванию ? Просто поллинг пина, затем переход к нопам. И стек не обеднеет оттого что у него съели 2 байта. Попутно замечу, что по сбросу можно делать тестирование МК и выдавать сигнал "тест ок" Цитата А вот если на 12 мегах сделать - это будет круто! Лично я не знаю, как там крутизна, но если посмотреть на групповые абонкомплекты цифровых АТС - количество микрух пугать не должно.
|
|
|
|
Сообщений в этой теме
galjoen 12 ATmega48 от одного тактового генератора (внешнего). Nov 19 2008, 17:15 domowoj 10 см проводника с 8 Mhz, ИМХО, не самая страшная ... Nov 19 2008, 17:41 galjoen Цитата(domowoj @ Nov 19 2008, 20:41) 10 с... Nov 19 2008, 17:50  _Pasha Цитата(galjoen @ Nov 19 2008, 21:50)
Дор... Nov 19 2008, 18:07   galjoen Цитата(_Pasha @ Nov 19 2008, 21:07) Дорож... Nov 19 2008, 18:41 slog 8MHz "детская" частота. Тяни не бойся. Д... Nov 19 2008, 18:21 bzx А почему бы не рассмотреть замену 12mcu на 1mcu с ... Nov 19 2008, 20:16 galjoen Цитата(bzx @ Nov 19 2008, 23:16) А почему... Nov 19 2008, 21:13  bzx Цитата(galjoen @ Nov 20 2008, 00:13) 12 ш... Nov 19 2008, 22:39  defunct Цитата(galjoen @ Nov 19 2008, 23:13) 12 ш... Nov 19 2008, 23:35   galjoen 2 'defunct', 'bzx'
Там проблемма в... Nov 21 2008, 10:53    _Pasha Цитата(galjoen @ Nov 21 2008, 14:53) Но в... Nov 21 2008, 11:15     galjoen Цитата(_Pasha @ Nov 21 2008, 14:15) Зачем... Nov 21 2008, 11:34      _Pasha Цитата(galjoen @ Nov 21 2008, 15:34) Прид... Nov 21 2008, 11:54       galjoen Цитата(_Pasha @ Nov 21 2008, 14:54) И тек... Nov 21 2008, 12:27        _Pasha Цитата(galjoen @ Nov 21 2008, 16:27) Да, ... Nov 21 2008, 12:46         galjoen Цитата(_Pasha @ Nov 21 2008, 15:46) К сож... Nov 21 2008, 13:04 _Pasha А цепочкой там проще не выйдет ? (clko -> clki)... Nov 19 2008, 21:33 galjoen Цитата(_Pasha @ Nov 20 2008, 00:33) А цеп... Nov 19 2008, 22:11 dENIM шайтан-устройство
MegaCELL Nov 19 2008, 23:49 =GM= Цитата(galjoen @ Nov 19 2008, 17:15) ...н... Nov 21 2008, 13:20 galjoen Цитата(=GM= @ Nov 21 2008, 16:20) Посчита... Nov 21 2008, 13:48  =GM= Цитата(galjoen @ Nov 21 2008, 13:48) Но и... Nov 21 2008, 15:55   galjoen Цитата(=GM= @ Nov 21 2008, 18:55) Всё рав... Nov 21 2008, 16:20    =GM= Цитата(galjoen @ Nov 21 2008, 16:20) Моме... Nov 21 2008, 16:25    Nanobyte Цитата(galjoen @ Nov 21 2008, 20:20) ...Д... Nov 21 2008, 20:31     galjoen 2=GM=
Начать выполнение программы одновременно не ... Nov 21 2008, 23:00      _Pasha Цитата(galjoen @ Nov 22 2008, 03:00) 2=GM... Nov 22 2008, 08:25 ae_ Цитата(=GM= @ Nov 21 2008, 21:20) Посчита... Nov 22 2008, 03:34 _Pasha Цитата(galjoen @ Nov 21 2008, 17:04) А по... Nov 21 2008, 14:35 МП41 Чем больше контроллеров в системе, тем выше вероят... Nov 21 2008, 14:46   galjoen Цитата(_Pasha @ Nov 23 2008, 10:43) Стоп-... Nov 23 2008, 19:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|