Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/148: Рейтинг темы: голосов - 148, средняя оценка - 4.57
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
1

Синхронизация двух контроллеров.

16.05.2015, 18:09. Просмотров 26908. Ответов 38
Метки нет (Все метки)

Здравствуйте.
Возникла необходимость синхронизировать два контроллера с точностью до такта,
для быстрого обмена данными.
Посоветуйте пожалуйста как это сделать.
Спасибо,тема закрыта.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2015, 18:09
Ответы с готовыми решениями:

Связь двух контроллеров по SPI.
у меня есть драйвер на Miko168. мне понадобилось связать две платы вместе. из...

Синхронизация двух 16-ти разрядных таймеров
Привет! Не могу сделать так что бы 2 счётчика в mega 162 начинали счёт...

Сеть контроллеров
Всем трям. Есть такой вопрос. Есть несколько устройств и блок управления....

MP9011 Программирование контроллеров
У меня проблема не могу прошить не один контроллер с помощью MP9011 соединяю...

Проекты контроллеров стиральных машин
Ребят, такое дело, нужны исходники AVR и WMLAB проекта "Управление стиральной...

38
_pv
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,515
16.05.2015, 18:44 2
ресет обоим отпустить одновременно, тактирование я так понимаю от одного источника.
либо по таймеру в режиме захвата нужное количество nopов выполнить по результатам захваченного значения.
0
ot135vb
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 27
16.05.2015, 19:13 3
А если сделать тактирование обоих МК от одного внешнего
генератора?
0
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
16.05.2015, 20:45 4
Ресетом никак , процессора работают асинхронно,каждый выполняет свою задачу.
Каждые 500 мкс передаются данные 120 байт ,время передачи не превышает 20 мкс.
Принимающая сторона инициирует передачу .Чтобы принять данные с такой скоростью
на время передачи процессора должны начать работать синхронно.Время на синхронизацию 1-2 мкс.
0
oxytt
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
16.05.2015, 21:03 5
Что вы вкладываете в понятие синхронизации?
есть данные 120 байт, есть интервал 500мкс
Нужно выбрать подходящий интерфейс передачи, синхронизация легко обеспечивается синхронным интерфейсом с применением прерываний
SPI или даже паралельный синхронный интерфейс, последний потребует абсолютного минимума времени на передачу при максимальных потребностях в портах ввода вывода (9 пинов)

500мкс при частоте 16мгц это 8000 тактов, т.е. Если передавать непрерывно не более 66мкс на байт. При параллельном интерфейсе еще что то останется для других дел, но не так уж и много
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
16.05.2015, 21:08 6
А зачем ему эти данные? Он их все равно обработать не успеет. Может быть спокойно спустится с горы ...
0
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
16.05.2015, 21:29 7
Попробую поподробней,просто я первый раз пишу на форумах.Есть дисплей
24-битный TM035KBH11 или PH320240t-006-ip1q но дело не в нем,а в интерфейсе.Все прекрасно понимают что AVR никак.Просто никак.Но вдруг меня чего-то торкнуло ,а если в монохромном режиме .Как-то повеселее будет чем допустим WG320240B0-TFH-TZ.Взял что было под рукой PH320240t-006-ip1q подключил к 2313 .Вот откуда 120 байт это 3 строки по 40 байт.После каждой третьей строки я подгружаю следующие три. Время между строками чуть больше 20 мкс.
0
Sovo
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
16.05.2015, 21:46 8
Вам видео выводить нужно?
Если нет, то скоростей таких вовсе не требуется.
Я так понял, что вы берёте дисплей без контроллера.
Возьмите с контроллером, интерфейс хоть SPI (диагональ поменьше), хоть I16. Я баловался с дисплеем от китайского мобильника. Очень хорошо, скоростей больших не надо, выводится всё отлично.
0
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
16.05.2015, 21:58 9
На низкой скорости дисплей сильно мерцает.Желательно около 25 кадров в секунду.
Сей час попробую двойным прерыванием за синхронизироваться.
0
_pv
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,515
16.05.2015, 22:23 10
а зачем тогда синхронизация до такта?
поток данных - 320*240*25 = 2МБита если монохром.
сделать просто кольцевой буфер который по spi/uart заполняется и на экран с нужной скоростью выводятся.
0
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
16.05.2015, 23:15 11
Нет не получится.Дисплей надо синхронизировать как по строкам так и по кадрам.
По сути как телевизор..Блин как объяснить? А когда я буду заполнять буфер,и с какой скоростью.На TFT дисплей информация выводится непрерывно за исключением импульсов синхронизации.
0
_pv
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,515
17.05.2015, 00:22 12
что именно не получится?
а как сейчас заполняется буфер и с какой скоростью?
данные на тфт выводятся непрерывно, только синхронизация для этого нужна не с точностью до такта, а с точностью до времени заполнения/опустошения половины буфера.
0
Btosk Worryor
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
17.05.2015, 01:25 13
Цитата Сообщение от kot913
На низкой скорости дисплей сильно мерцает.Желательно около 25 кадров в секунду.
Сей час попробую двойным прерыванием за синхронизироваться.
У него по документации частота клока около 6 МГц вроде, но даже при такой частоте картинка очень неприятная для глаз.
Я делал (на ПЛИС) в разы больше, только тогда нормально становилось.
Но у меня глаза слишком чувствительны к мерцанию.
PS: а в чем проблема взять ЖКИ с контроллером?
PPS:И зачем постоянно подгружать строки?
AVR-ки с 16 кбайт памяти есть даже в дип корпусах :)
0
Btosk Worryor
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
17.05.2015, 01:34 14
Цитата Сообщение от kot913
Как-то повеселее будет чем допустим WG320240B0-TFH-TZ.
А чего веселого то??? Жрущая подсветка, мерзкая картинка, плохо видно на свету.
Мне наоборот всегда больше нравились ч/б дисплеи. Жаль, что их в большом разрешении уже практически не выпускают.
0
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
17.05.2015, 07:49 15
По порядку.Контроллер atmega1284 память от $100 до $267f экранная область.
У контроллера свои задачи, заниматься выводом информации на дисплей со скоростью 2,5Mбит в сек. ему просто некогда.Поэтому выводом информации,синхронизации,тактированием дисплея занимается attiny2313, дёшево сердито.

Attiny2313 выводит информацию построчно с частотой клоков дисплея
(около 2,5 МГц).Одна строка 40 байт длительность строки 140 мкс.Между строками
интервал 27 мкс.Вывожу 3 строки 120 байт,потом в промежутке между строками это
27 мкс.грузятся следующие 3 строки.
Вот откуда 120 байт за 20 мкс.
Соответственно целевой контроллер atmega1284 занимается своими делами,тратя на вывод информации всего 5% своего времени.
При достаточной яркости мерцания не заметно.
0
kot913
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
17.05.2015, 07:54 16
Насчет жрущей подсветки ,это спорное утверждение WG320240B0-TFH-TZ потребляет около 100 мА по 5 в.без подсветки.
Так что ...
Ну и денег стоит.
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
17.05.2015, 10:43 17
Если у вас все равно стоит отдельный МК для дисплея, то сделать обмен между МК по параллельной шине. Я еще когда только начал изучать AVR делал такой обмен. Проект старый, далеко и нужно вникать. Общая логика такая: Параллельная 8-битная шина. 1 пин - признак отправки данных. 2 пина - рукопожатие. В итоге отправка 1 байта занимает несколько микросекунд.
0
_pv
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,515
17.05.2015, 13:13 18
Цитата Сообщение от kot913
По порядку.Контроллер atmega1284 память от $100 до $267f экранная область.
У контроллера свои задачи, заниматься выводом информации на дисплей со скоростью 2,5Mбит в сек. ему просто некогда.Поэтому выводом информации,синхронизации,тактированием дисплея занимается attiny2313, дёшево сердито.
Attiny2313 выводит информацию построчно с частотой клоков дисплея
и для чего тут нужна синхронизация до такта?
в 2313 надо сделать буфер, который mega128 заполняет когда хочет и когда там есть место, а 2313 выводит на экран. и единственную ногу Clear-to-Send (или статусный байт который 2313 постоянно обратно шлёт меге), состояние которой говорит меге: надо слать данные или буфер еще достаточно полный и надо подождать.

tiny2313:

Код
const int BUFF_SIZE = 100;
Fifo<BUFF_SIZE> buff;

interrupt SPI/USORT_ISR(){
buff.push(DATA_REG);
if (buff.busy() < (BUFF_SIZE - 10)) on(PIN_CTS); else off(PIN_CTS);
}

...

u8 x = 0;
u8 y = 0;
while (1){
if (buff.busy()){
u8 data = buff.pop();
u8 n = 8;
while (n--){
off(PIN_LCD_CLK);
if (data & 1) LCD_PORTx = 0xFF; else LCD_PORTx = 0x00;
data >>= 1;
on(PIN_LCD_CLK);
}
if (++x >= 320/8){
x = 0;
hsync();
if (++y >= 240){
y = 0;
vsync();
}
}
}
}
mega128:

if (active(PIN_CTS)) UART/SPI_Send(videoMem[pix++]);
0
Btosk Worryor
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
17.05.2015, 15:22 19
Цитата Сообщение от _pv
if (++x >= 320/8){
Если писать без циклов, то вроде получается около 4 МГц частота клока...

PS: классический вариант - вывод картинки через SPI - 10 МГц клок, это уже не так плохо...
Но надо взять что то типа меги48.
0
Btosk Worryor
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 392
17.05.2015, 15:23 20
Цитата Сообщение от kot913
Насчет жрущей подсветки ,это спорное утверждение WG320240B0-TFH-TZ потребляет около 100 мА по 5 в.без подсветки.
Так что ...
Ну и денег стоит.
Нет, ну монстры есть и среди дисплеев и среди продавцов.
Для нормальных экземпляров можно ориентироваться грубо говоря на 30 мА и 30 долл :)
0
17.05.2015, 15:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2015, 15:23

Возможно ли программирование контроллеров на высокоуровневом языке?
Здравствуйте! Знаком с радиоэлектроникой и языком C#. C и Assembler не знаю....

Языки программирования для контроллеров, микроконтроллеров и пр.
Извините за нубский вопрос: а собственно на каком языке можно программировать...

Совместимость архитектур мобильных контроллеров и AVR
Здравствуйте! Хотел бы спросить - похожи ли архитектуры тех микропроцессоров,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru