Обсуждаем контроллеры компании Atmel.
Ответить

2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 11:20:43

Доброго времени суток.
Задача запитать два микроконтроллера от 1 источника тактового сигнала 16Мгц

Понял что внешний генератор подключается к XTAL1

Никак не могу найти генератор прямоугольных импульсов на 16 МГц. Это вообще реально? Просто я так понял такой КМОП логики не существует. Но с другой стороны существуют готовые генераторы на 16МГц, с 5В питанием. Значит это сделать реально.

Видел генераторы Пирса, но долгие поиски так и не нашли ничего дельного. Все схемы до 8МГц. Остальные я так понял уже Логические элементы не выгребают.

Собственно говоря вопрос. Есть ли логические элементы скоростные? Которые способны выдать миандр на частоте 16МГц.

Спасибо

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 13:39:12

Сделайте свой вопрос конкретным, иначе ответов может быть много, на самые разные темы.

Можно с одним кварцем два МК без внешнего генератора - от одного МК генератора к другому CLK МК. Может генератор без ЛЕ, на дискретной схемотехники. Может на устаревшей элементной базе, а может и еще много чего, напр. использование более современного типа ИС, частотные характеристики которой в среднем на порядок (и выше) выше желаемых 16 MHz. А генераторы есть готовые всякие - от больших корпусов до напр. smd 5х7 mm, выходной сигнал которого просто подается через буфер/без буфер/ на два CLK входa.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 13:47:43

Есть ли логические элементы скоростные? Которые способны выдать миандр на частоте 16МГц.

74НС14
74АС14

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 14:03:45

Никак не могу найти генератор прямоугольных импульсов на 16 МГц. Это вообще реально? Просто я так понял такой КМОП логики не существует. Но с другой стороны существуют готовые генераторы на 16МГц, с 5В питанием.

На 3.3 вольта нужно что ли?
https://www.quartz1.com/price/model.php?akt=9263.11
https://www.quartz1.com/price/model.php?akt=6990.19
И т.д.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 14:18:03

Задача запитать два микроконтроллера от 1 источника тактового сигнала 16Мгц

вот я запитал 5 микроконтроллеров от 1 источника тактового сигнала 20Мгц
2-схема_ATmega8-Ethernet-TX_FIFO_4.jpg
(80.2 KiB) Скачиваний: 64

подключил кварц к первому микроконтроллеру...
остальные 4 микроконтроллера подключил к этому же кварцу))
:tea:

Добавлено after 5 minutes 10 seconds:
Никак не могу найти генератор прямоугольных импульсов на 16 МГц. Это вообще реально? Просто я так понял такой КМОП логики не существует.

вот я сделал кварцевый генератор прямоугольных импульсов на 20 МГц.
На КМОП логике - sn74hc00
Screenshot_1.jpg
(134.51 KiB) Скачиваний: 41

в увеличеном виде))
Screenshot_2.jpg
(35.99 KiB) Скачиваний: 35

sn74hc00 - дешёвые и широко распространённая КМОП логика )) работает до ~ 40 МГц.
:tea:

Добавлено after 4 minutes 7 seconds:
если надо ещё быстрей... то есть замечательная ТТЛШ логика - sn74F00
вот они на схеме...
Screenshot_3.jpg
(135.09 KiB) Скачиваний: 31

буковка "F" от слова "Fast" - что значит "быстрый"))

sn74F00 - дешёвые и широко распространённая ТТЛШ логика )) работает до ~ 200 МГц.
:tea:

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 17:38:47

Задача запитать два микроконтроллера от 1 источника тактового сигнала 16Мгц

МК какой серии? Обычно в МК есть возможность выдавать на выход частоту генератора. А там уже "питай" хоть 2, хоть сколько хочешь МК.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 18:35:13

А в чем смысл синхронного тактирования?

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 19:08:02

я использую синхронное тактирование... много где)) например для буфера...

а смысл простой... допустим надо получить непрерывный поток данных на входе/выходе...
один МК не может одновременно читать/писать SRAM и выводить данные в порт...
а два могут ! для этого нужно синхронное тактирование...

первый МК читает SRAM... а второй в это время выводит данные в порт...
потом наоборот...
второй МК читает SRAM... а первый в это время выводит данные в порт...
и т.д.

или например управляемые программируемые коммутаторы/маршрутизаторы...

первый МК читает порт... а второй в это время выводит данные в порт...
потом наоборот...
второй МК читает порт... а первый в это время выводит данные в порт...
и т.д.

или например при сложных вычислениях...

пока первый МК выполняет первую инструкцию.... второй МК в это время уже читает вторую инструкцию...
потом наоборот...
пока второй МК выполняет вторую инструкцию... первый МК в это время уже читает третью инструкцию...
и т.д. и т.п.))

а где использует синхронное тактирование ТС... я без понятия))
:tea:

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 21:37:44

в увеличеном виде))
Screenshot_2.jpg

sn74hc00 - дешёвые и широко распространённая КМОП логика )) работает до ~ 40 МГц.
:tea:


это как раз то что мне и надо. Спасибо.

Есть ли логические элементы скоростные? Которые способны выдать миандр на частоте 16МГц.

74НС14
74АС14


и за это тоже спасибо. Будем использовать.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Пт сен 22, 2023 21:44:36

Разве используемый МК не имеет внутреннего генератора? (AVR?). Соедините вывод с другим МК/через конденсатор.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 08:52:37

Разве используемый МК не имеет внутреннего генератора? (AVR?).


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

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 11:03:08

В документации написано, можно использовать, даже буфер есть. Стр. 30:
Код:
6.9 Clock Output Buffer: The device can output the system clock on the CLKO pin. To enable the output, the CKOUT fuse has to be programmed. This mode is suitable when the chip clock is used to drive other circuits on the system. The clock also will be output during reset, and the normal operation of I/O pin will be overridden when the fuse is programmed. Any clock source, including the internal RC oscillator, can be selected when the clock is output on CLKO. If the system clock prescaler is used, it is the divided system clock that is output.
---
6.9. Выходной тактовый буфер: Устройство может выводить системные часы на вывод CLKO. Для включения выхода необходимо запрограммировать фюз CKOUT. Этот режим подходит, когда тактовая частота микросхемы используется для управления другими цепями системы. Часы также будут выводиться во время сбросится, и нормальная работа контакта ввода/вывода будет отменена при программировании фюза. Любой источник синхронизации, включая внутренний RC-генератор, можно выбрать, когда тактовый сигнал выводится на CLKO. Если используется прескалер системных часов, это разделенные системные часы, которые выводятся.

А зачем два МК? Собрать программу в одну? Чего не хватает? Память? Выводы? Что-то другое?
Что подразумеваете под "стабильной работой"? Какие величины управляете/измеряете, с каким разрешением во временной области?

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 11:15:00

>В документации написано, можно использовать, даже буфер есть. Стр. 30:

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

А в комментарии явным образом написано

>подключил кварц к первому микроконтроллеру...
>остальные 4 микроконтроллера подключил к этому же кварцу))

что тупо к ножке кварца подключен не, один а 5 процов - а это уже не документированное использование.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 11:40:55

На сегодня скармливать нескольким МК в единой конструкции общий тактовый сигнал...
Никакого смысла нету.
Все равно придется линии синхронизации/квитирования делать для синхронизации процессов доступа кобщим ресурсам (если таковые имеются в конструкции). А вот заморочки с разводкой монтажа черезмерно много.
В случае ежли каждый из МК решает свою задачу (да и быстродействие таких МК в большинстве случаев различно) вообще общее тактирование бессмысленно.
Другое дело общий сигнал предустановки/сброса, единый для всего устройства - это более актуально и достаточно часто применяется.
:roll:
Вариант "многофазной синхронизации" ранее применялся в конструкциях на "рассыпухе" и/или старинных комплектах "рассыпных" микропроцессорных систем... К примеру тот же генератор от КС1804ГГ1...
Сегодня подобное - редкость...
8)

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 13:35:28

BOB51 писал(а):А вот заморочки с разводкой монтажа черезмерно много.

на низких частотах (до 25 МГц для ардуино) никаких заморочек с разводкой монтажа нет.
не путать с современными материнскими платами... с частотой шины - гигагерцы))
BOB51 писал(а):Все равно придется линии синхронизации/квитирования делать для синхронизации процессов доступа кобщим ресурсам

линии синхронизации уже присутствуют на схеме))
после включения питания первый МК передаёт сигнал синхронизации... остальные МК синхронизируются по этому сигналу...
далее все инструкции во всех МК выполняются синхронно.
2-схема_ATmega8-Ethernet-TX_FIFO_4.jpg
(83.8 KiB) Скачиваний: 21

получилась обычная многоядерная схема... с распределёнными вычислениями))
:tea:
BOB51 писал(а):На сегодня скармливать нескольким МК в единой конструкции общий тактовый сигнал...
Никакого смысла нету.

расскажите это разработчикам современных процессоров))
а то они не в курсе зачем они делают много ядерные системы))
:))

все современные процессоры - много ядерные... с распределёнными вычислениями...
и все они работают от одного кварцевого генератора...
правда со встроенным синтезатором и отдельным делителем... но это не важно... это уже мелкие подробности))
Screenshot_1.jpg
(99.57 KiB) Скачиваний: 19

:tea:

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 15:53:57

Прямо, без буфера, без вывода, будут влиять друг на друга. Но всегда есть варианты.
А внешний модуль генератора самый простой способ - smd, однокомпонентный.

Изображение

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Сб сен 23, 2023 22:04:16

я конечно не гуру в микроконтроллерах и программировании. НО, мои мысли такие. Допустим у нас есть два микроконтроллера. И один выполняет роль измерения, другой подсчёта (вычислительной мощности не хватает). Далее мы передаём сигнал по паралельному интерфейсу собственной разработки. Но вот не задача. Конечно есть кварцы в 16МГц, за один такт микроконтроллер выполняет определённое количество команд (2 или 1 в зависимости от команд). Но проблема в том что кварц на 16 МГц не идеальный. Во первых есть разбег по частоте у каждой детали, а во вторых разные факторы могут влиять. И вот два разных кварца на двух разных микроконтроллерах на высокой скорости начнут разбегаться в выполнении команд. И быстрая-синхронная передача теряет смысл ибо очень тяжело поймать состояние одного микроконтроллера если его команды выполняются на 1-10 команд быстрее чем у принимающей стороны. И вот на помощь приходит единая синхронизация. Когда погрешность в частоте, даже от температурного дрейфа невилируется ибо оба микроконтроллера выполняют за один и тотже такт определённые инструкции. И таким способом можно спокойно настраивать высокоскоростную параллельную передачу данных не боясь что произойдёт рассинхрон. Даже если каким-то чудом или волшебством пропадёт один такт, он пропадёт у двух МК сразу. Я уже проводил эксперименты на симуляции в протеус, когда один микроконтроллер питался тактированием в 16000001 Герц, другой в 15999999.
Может я не прав, но по мне так надёжнее будет, когда работаешь с относительно высокими скоростями. Погрешность одного такта может быть фатальной.
Конечно лучше не работать на пограничных состояниях. Но можно невелировать ошибки и это правильно. На счёт вывода такта с мк не знал, спасибо. Но проще построить единое сердце для всех.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Вс сен 24, 2023 02:44:35

мои мысли такие. Допустим у нас есть два микроконтроллера. И один выполняет роль измерения, другой подсчёта (вычислительной мощности не хватает). Далее мы передаём сигнал по паралельному интерфейсу собственной разработки.

Вы не понимаете очевидного. При использовании АППАРАТНОГО интерфейса, время передачи-приема данных НЕ НАГРУЖАЕТ КОНТРОЛЛЕР. То есть все время измерений может идти передача данных ПРЕДЫДУЩЕГО измерения. Поскольку АЦП в Атмелах очень медленный, то времени на передачу ОЧЕНЬ МНОГО. То есть можно спокойно передавать через SPI и не париться.
При использовании параллельного интерфейса есть два варианта захвата данных слейвом - опрос синхросигнала или внешнее прерывание по синхросигналу. Первый вариант не даст нормально работать слейву, создавая блокирующий код. Второй вариант будет выполнятся не быстрее SPI из-за тормознутости исполнения обработчика.
Так что ваша "идея" не имеет никакого смысла. А вместе с ней и необходимость единого тактирования.
ЗЫ. А вообще, опишите свою прикладную задачу. Есть подозрение, что проблемы надуманы.

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Вс сен 24, 2023 11:12:54

roman.com
Не путайте "многоядерность" на одном кристалле с "рассыпухой" из нескольких МК в одной конструкции.
Там просто нет смысла заводить энное количество генераторов на ОДИН ОБЩИЙ КОРПУС, в коем те ядра установлены.
Если "общая синхронизация" единым источником тактирования столь волшебна - зачем тогда использовать в схеме дополнительное квитирование при обмене данными?
8)
Относительно "низких частот" порой некорректно разработанная схема последовательного сдвига данных на регистрах "затыкается" уже на единицах мегагерц.
:wink:

Re: 2 микроконтроллера от 1 источника тактирования сигнала

Вс сен 24, 2023 14:34:52

расскажите это разработчикам современных процессоров))
а то они не в курсе зачем они делают много ядерные системы))
:))

все современные процессоры - много ядерные... с распределёнными вычислениями...
и все они работают от одного кварцевого генератора...
правда со встроенным синтезатором и отдельным делителем... но это не важно... это уже мелкие подробности))

:facepalm: Вы не понимаете о чем пишите.
Причину использования одного осциллятора (а не тактового генератора - почувствуйте разницу) вам изложил BOB51.
Но даже если все тактовые генераторы всех ядер запустить в когерентном режиме, то и тогда код не будет исполнятся синхронно. Есть куча причин, по которой программный синхронизм не может быть достигнут ПРИНЦИПИАЛЬНО.
Именно поэтому в многоядерных системах делают специальный межядерный интерфейс, который СОВЕРШЕННО АСИНХРОНЕН.
Ответить