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

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


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(=GM= @ Nov 21 2008, 21:20) *
Посчитаем: 10 см дают задержку импульса где-то на 30 нс ...

10 см это 0.33 нс, что для 125 нс (8МГц) не существенно.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 22 2008, 08:25
Сообщение #32


;
******

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



Цитата(galjoen @ Nov 22 2008, 03:00) *
2=GM=
Начать выполнение программы одновременно не так просто.

Я Вас умоляю!
Берете Int0 - на него вешаете "готовность номер 1"
Int1 - собственно синхронизация, и его надо подать в течение времени не более, скажем 1 мкс, иначе
все опять придет в начальное состояние.
Код
.org 0
rjmp start
rjmp int0_isr
rjmp int1_isr
;..........
start:
; config SFR

forever:
              wdr
              rjmp forever
int0_isr:
              sei
              nop
              nop
; натыкать нопов столько сколько надо  чтобы гарантированно отработалась точная синхронизация
              rjmp forever; кто не успел-тот опоздал
int1_isr:
              sei
; начало Вашей суперзадачи


Где-то так smile.gif
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 22 2008, 21:32
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 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 кв. см платы - это ерунда. Таких девайсов точно много не будет. Десятки, ну м.б. несколько сотен.
Ну вобщем взвешиваю все за и против...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 23 2008, 07:43
Сообщение #34


;
******

Группа: Участник
Сообщений: 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 мегах сделать - это будет круто!

Лично я не знаю, как там крутизна, но если посмотреть на групповые абонкомплекты цифровых АТС - количество микрух пугать не должно. smile.gif
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 23 2008, 19:14
Сообщение #35


Знающий
****

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



Цитата(_Pasha @ Nov 23 2008, 10:43) *
Стоп-стоп! На кой ему тогда переход в "готовность 1" делать по прерыванию ? Просто поллинг пина, затем переход к нопам.

Если сделать по прерыванию, то можно фоновые задачи в свободное время запускать.
Цитата(_Pasha @ Nov 23 2008, 10:43) *
И стек не обеднеет оттого что у него съели 2 байта.

Ну это только первые несколько раз. А такие синхронизации около 100 раз в секунду проходить будут.

Задача, в основном, состоит в том, чтобы от 12 аналоговых, гальванически развязанных, сигналов всякие там среднеквадратические вычислять + на табличные значения помножать и перерабатывать + передавать результаты. Так-то требования небольшие, но это всё строго синхронно делать надо. Я хотел 2 сшестерённых сигма-дельта АЦП использовать (аналог девайс), но оказывается нельзя - гальваноразвязка. Вот и думаю, пусть каждая из мег со своим гальваноразвязанным АЦП работает. В идеале и АЦП на меге-бы сделать, но скорости-разрядности не хватает. А м.б. ко мне уже в цифровом виде эти сигналы прийдут - сейчас решается.
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 - 13:24
Рейтинг@Mail.ru


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