Я так понимаю для таких существует допустим SPI, а если его допустим опустить в данном контексте)
Мелкие вопросы по МК и ПЛИС.
- Сообщения: 162
- Зарегистрирован: Вс дек 09, 2012 12:14:44
Предположим, что один порт вв у одного мк настроен как выход, у другого мк порт настроен на вход. они соединены между собой. вопрос- с какой максимальной частотой можно подавать данные на выход, чтобы второй успевал их прочитать и заносить скажем в оперативу, или если перефразировать - то какое минимальное время задержки может быть между циклами чтения входных данных, так, чтобы обеспечить максимальную скорость передачи.ведь переключение лог уровней не мгновенное, наверное должны быть какие то ограничения?
Я так понимаю для таких существует допустим SPI, а если его допустим опустить в данном контексте)
Я так понимаю для таких существует допустим SPI, а если его допустим опустить в данном контексте)
- Реклама
Для atmega128 вроде бы задержка чтения составляет до (тактовая частота)/1,5
http://www.gaw.ru/html.cgi/txt/doc/micr ... h128/7.htm, рисунок 31
http://www.gaw.ru/html.cgi/txt/doc/micr ... h128/7.htm, рисунок 31
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
--------------------------
Пишу на Си за еду
- Сообщения: 162
- Зарегистрирован: Вс дек 09, 2012 12:14:44
Хорошо, почитал) а теперь о задаче более конкретно - необходимо передать с одного мк на другой 8-10 16битных чисел, при том ведомый должен считать байт, писать его в оперативку, читать следущий, записать его и так далее, когда все передастся то на передачу пауза, в ведомом происходит обработка и выполнение необходимых операций, а затем снова передача свежих данных. Как лучше всего это реализовать, в сторону каких интерфейсов смотреть. Оба мк будут в пределах 30см друг от друга, связь конечно же по проводам. И еще необходимо быстродействие передачи
ну, интерфейс SPI на расстоянии сантиметров 30 на 7МГц шел нормально.
хотите бОльшую скорость и есть много лишних ног - делайте параллельную передачу. ведущий выкидывает 1 байт на какой-нибуть порт и ожидает подтверждение приема от ведомого. выйдет, думаю, в несколько раз быстрее
на высоких частотах нужно позаботиться о помехозащищенности и обращать внимание на правильность разводки
хотите бОльшую скорость и есть много лишних ног - делайте параллельную передачу. ведущий выкидывает 1 байт на какой-нибуть порт и ожидает подтверждение приема от ведомого. выйдет, думаю, в несколько раз быстрее
на высоких частотах нужно позаботиться о помехозащищенности и обращать внимание на правильность разводки
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
--------------------------
Пишу на Си за еду
Да хоть на RS2321essor1 писал(а):в сторону каких интерфейсов смотреть
Конкретнее в цифрах1essor1 писал(а):И еще необходимо быстродействие передачи
Ставим плюсы: )
- Реклама
- Сообщения: 162
- Зарегистрирован: Вс дек 09, 2012 12:14:44
slavokhire5, ,благодарствую! Действительно, отдать один порт под это не проблема, так и сделаю)
- Сообщения: 162
- Зарегистрирован: Вс дек 09, 2012 12:14:44
Пардон, кажется, накосячил с расчетами, прошу сильно не бить молодого кота) тут походу вообще черепашьи скорости
. за менее чем 1мс получить и записать в оперативу ориентировочно 20 байт
- Сообщения: 574
- Зарегистрирован: Вт ноя 02, 2010 17:46:37
Подскажите, как инициализировать порт что бы АЦП работало.
Сделал инициализацию на ввод во, как Z состояние, он не заработал. А когда просто убрал её, то всё заработало.
Сделал инициализацию на ввод во, как Z состояние, он не заработал. А когда просто убрал её, то всё заработало.
Телепаты в отпуске. Что за МК?pokk писал(а):Подскажите, как инициализировать порт что бы АЦП работало.
Как правило, достаточно только запустить АЦП и выбрать соотв. канал АЦП.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 574
- Зарегистрирован: Вт ноя 02, 2010 17:46:37
Хорошо, а то я думал без инициализации порта не совсем верно хоть и работает =)Gudd-Head писал(а): Как правило, достаточно только запустить АЦП и выбрать соотв. канал АЦП.
МК mega128
получаем 20кбайт/сек и больше - тут только SPI... UART можно еще попробовать на скорости 1Мбит, но тут трудности возникают из-за самого принципа его работы.менее чем 1мс получить и записать в оперативу ориентировочно 20 байт
TWI / I2C вполне утянет такую скорость.
+ I2C - масштабируемость. до 255 устройств по 2-м (3-м) проводам
+ SPI - выше скорость. но требует на каждое новое устройство +1 вывод для управления. или дешифратор, но это уже лишняя микросхема ==> дороже, лишнее место на плате, больше потребление и т.д.
ну и SPI проще программно реализуется, ИМХО)
+ I2C - масштабируемость. до 255 устройств по 2-м (3-м) проводам
+ SPI - выше скорость. но требует на каждое новое устройство +1 вывод для управления. или дешифратор, но это уже лишняя микросхема ==> дороже, лишнее место на плате, больше потребление и т.д.
ну и SPI проще программно реализуется, ИМХО)
Осилит дорогу идущий
--------------------------
Пишу на Си за еду
--------------------------
Пишу на Си за еду
20 байт/0,001с = 20000Б/с = 156,2кб/с. между этим числом и 1 Мбит/с разве нет больше значений? Если связь между двумя контроллерами, то не обязательно использовать стандартную скорость.Alexeyslav писал(а): получаем 20кбайт/сек и больше - тут только SPI... UART можно еще попробовать на скорости 1Мбит, но тут трудности возникают из-за самого принципа его работы.
Ставим плюсы: )
единичка круглее. Темболее что передать 20 байт надо меньше чем за 1мс, чем меньше время передачи тем больше свободы маневра... вдруг там прерывания будут возникать во время передачи? чуть задержатся - и все просрочено. Жаль что в AVR нет аппаратного DMA.
- Сообщения: 162
- Зарегистрирован: Вс дек 09, 2012 12:14:44
Ого, обсуждения пошли) только я не понял, какова максимальная скорость SPI? потянет ведь? связать действительно нужно всего лишь два мк
чтобы что-то принять/получить не нужно ждать пока идет прием/передача нужно лишь обработать_прерывание_приема/запустить_передачу. пока идет прием/передача битов - контроллер работает на своей частоте и выполняет другие задачи.Alexeyslav писал(а):чем меньше время передачи тем больше свободы маневра...
Ставим плюсы: )
Не пинайте чайника, а подскажите, пожалуйста:
Пришлось заняться PIC18ми
нашёл конфиг на PIC18F1320
Я хочу под другой камень написать PIC18F14K50. Где искать все эти на свой МК? Где они прописаны?
Пришлось заняться PIC18ми
нашёл конфиг на PIC18F1320
Спойлер
Код: Выделить всё
#pragma config WDT = OFF
#pragma config OSC = INTIO2
#pragma config MCLRE = OFF
#pragma config PWRT = ON
#pragma config DEBUG= OFF
#pragma config LVP = OFF
#pragma config FSCM = OFF
#pragma config IESO = OFF
#pragma config BOR = OFF
#pragma config STVR = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTRB = OFFКод: Выделить всё
FSCM, CPD, ...В соответствущем инклуднике.
Это всё хорошо, но я сравнил перед тем как задать вопрос здесь, ничего общего. Таких там не попадается 


