Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

[uquote="sergey-arhipov-1988",url="/forum/viewtopic.php?p=3096814#p3096814"]Есть у меня тинька 2313 вот хотелось бы на ней это дело собрать.[/uquote]
У тини 2313 есть 4 канала ШИМ… но не зная программирования тебе такую задачу не реализовать. :dont_know:
Реклама
Родился
Сообщения: 8
Зарегистрирован: Пн апр 10, 2017 20:04:05

Сообщение sergey-arhipov-1988 »

[uquote="АСУ",url="/forum/viewtopic.php?p=3096895#p3096895"][uquote="sergey-arhipov-1988",url="/forum/viewtopic.php?p=3096814#p3096814"]Есть у меня тинька 2313 вот хотелось бы на ней это дело собрать.[/uquote]
У тини 2313 есть 4 канала ШИМ… но не зная программирования тебе такую задачу не реализовать. :dont_know:[/uquote]
Это я понимаю. Вот и обратился за помощью.
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Помощь и то, что Вы ожидаете от форумчан - немного разные вещи :)
Мало вероятно, что найдутся энтузиасты, которые разработают Вам схему и напишут ПО для МК за "спасибо" :)
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2500
Зарегистрирован: Пн мар 09, 2009 16:22:50
Откуда: Украина, Донецкая обл., г. Торез

Сообщение alekseykolesnik »

Подскажите, пожалуйста. Есть два МК, если все упростить, то к МК1 подключены светодиоды и кнопки, к МК2 - кнопки и вся основная схема.
Необходимо реализовать двусторонний обмен по интерфейсу SPI. (Atmega 16, Atmega 48)

С МК 1 должны посылаться биты на на МК 2, который будет выполнять определенные действия. В то же время с МК2 должны посылаться биты на МК1, которые будут зажигать светодиоды.

МК2 - основной, на нем завязана вся работа (схема управления нагрузкой с настройкой режимов посредством меню на жки дисплее).

С МК1 на МК2 настроил передачу битов, но вот не могу въехать как сделать одновременно и обратную операцию. При этом всем МК 2 выполняет другие действия.

Кто поможет - буду очень благодарен!
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

ИМХО. Раз МК2 основной, значит он должен быть ведущим. Производить обмен данными можно двумя способами:
1 По внешнему прерыванию от инициатора МК1.
2 Через определённый промежуток времени принудительно производить обмен данными.

Раз МК2 занят разного рода деятельностью, то обмен по SPI необходимо реализовать на аппаратном уровне…
Пакет данных как мне видится, должен иметь 2 байта. Первый это команда, второй информационный (информация об этой команде).
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2500
Зарегистрирован: Пн мар 09, 2009 16:22:50
Откуда: Украина, Донецкая обл., г. Торез

Сообщение alekseykolesnik »

Прошу прощения, а у Вас случайно нет никакой инфы по 2 методу? Столько времени потратил на поиски и ничего не нашел, может не там искал...
Реклама
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

Я не совсем понимаю вопрос…
Так это обычный обмен ведомого с ведущим через определённый промежуток времени. Промежуток времени ты определяешь сам в зависимости от поставленных задач. ИМХО. 5 раз в секунду делаешь обмен... вполне достаточно для получения информации по кнопкам от МК1.

P.S. Если не совсем понимаешь как работает SPI или не знаешь как настраивать регистры, то вот в этой книге всё подробно написано - https://yadi.sk/i/p3Ej_rure7zgU
Собутыльник Кота
Аватара пользователя
Сообщения: 2500
Зарегистрирован: Пн мар 09, 2009 16:22:50
Откуда: Украина, Донецкая обл., г. Торез

Сообщение alekseykolesnik »

Ну так передача идет же от ведущего к ведомому. А мне необходимо передавать еще и другую информацию от ведомого к ведущему. Спасибо, сейчас гляну
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

Передача по SPI идёт одновременно от ведущего к ведомому и от ведомого к ведущему… похоже тебе нужно книжку покурить… там всё подробно изложено. Удачи!
Друг Кота
Аватара пользователя
Сообщения: 25443
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

В общем случае, когда SPI реализован всеми линиями данных (их две - от мастера к слейву и от слейва к мастеру), обмен В ОБОИХ направлениях происходит ОДНОВРЕМЕННО. Мастер тактирует этот обмен клоками, а два сдвиговых регистра (один у мастера, другой у слейва) обмениваются своим содержимым друг с другом.
Таким образом, можно передать СОСТОЯНИЕ (слово состояния) слейва к мастеру. Передать таким образом СОБЫТИЕ нельзя. Событие с той или иной латентностью может передавать только мастер.
Сиречь, частота обменов должна быть выбрана такой, чтобы чтение состояний слейва не пропускало событий слейва, которые апдейтят оное состояние (флаги).
Собутыльник Кота
Аватара пользователя
Сообщения: 2500
Зарегистрирован: Пн мар 09, 2009 16:22:50
Откуда: Украина, Донецкая обл., г. Торез

Сообщение alekseykolesnik »

Сейчас гляну у Евстифеева. Но про то ,что Вы говорите написано в интернете, но не понятно как на стороне слейва сделать так, чтобы в SPDR, по окончании передачи с мастера на слейв, сохранилась та инфа, которая нужна и ее можно было бы прочитать на мастере

Добавлено after 53 minutes 27 seconds:
Нихрена не получается, ладно
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

Что не получается?

МК1 (ведомый), должен помещать в регистр SPDR нужную информацию до обмена по SPI между МК… это делается в любое время, но не во время обмена. Когда МК2 организовывает обмен с МК1, в регистре SPDR МК1 необходимая информация для МК2 должна уже быть.
Допустим тебе нужно передавать состояние кнопок с МК1 на МК2… так вот реализовываешь мастером (МК2) с ведомым (МК1) обмен через допустим каждые 200 мс… МК1 информацию по кнопкам будет записывать в регистр SPDR при старте самого МК1, а последующая запись в регистр SPDR будет производится в прерывании по приёму байта от МК2. То есть в прерывании считал из регистра SPDR то что приняли от МК2, а затем «в него же» записали состояние кнопок. При следующем обмене эта информация будет передана в МК2… Вот примерно так.
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

[uquote="alekseykolesnik",url="/forum/viewtopic.php?p=3115133#p3115133"]Нихрена не получается, ладно[/uquote]
Вот две блок – схемы примерного алгоритма…
Desktop.zip
(78.04 КБ) 293 скачивания
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

[uquote="alekseykolesnik",url="/forum/viewtopic.php?p=3115133#p3115133"]Сейчас гляну у Евстифеева. Но про то ,что Вы говорите написано в интернете, но не понятно как на стороне слейва сделать так, чтобы в SPDR, по окончании передачи с мастера на слейв, сохранилась та инфа, которая нужна и ее можно было бы прочитать на мастере

Добавлено after 53 minutes 27 seconds:
Нихрена не получается, ладно[/uquote]

Аппаратный блок работает в жестко заданном режиме. Если задача выходит за рамки, определенные простейшим стандартным функционалом прийдется добавить программные доработки необходимого и/или перейти полностью на программную обработку, добавить аппаратные линии согласования взаимодействия между МК, разработать свой протокол-примитив для синхронизации обмена.
8)
Или в качестве альтернативы (полнодуплексный обмен) применить UART.
:roll:
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

Товарищи, подскажите по такой странной ситуации:
есть усилитель и на входе спектроанализатор на атмеге8. При работающем АЦП на выходе усилителя появляется небольшой гул и случайные низкочастотные всплески ( больше всего похоже, будто басовую струну легонько дергают). Причем есть особенность, на входе АЦП сигнал поднимается на ОУ к середине питания, если отключаю питание ОУ, по гул и всплески передаются даже просто через питание, сигнальный кабель от спектра отключаю. Если ОУ запитан, но всплески слышны только при подключении сигнального кабеля к спектру. В обоих случаях на светодиодной матрице спектра в такт всплескам подпрыгивают столбики, будто и правда кто-то подает их на вход. :dont_know:
Если программно выключаю АЦП, то при всех соединениях никаких артефактов в звуке нет.
Питание меги и предварительных усилителей с одного трансформатора, но с разных LM7812(усил) и LM05(мега), усилитель мощности с отдельного транса.
на меге стоит 0.1мкФ прямо под ней на ножках питания, + подается на Avcc через дроссель 10мкГн.
Опорное напряжение - Vcc, Aref с кондером 0.1мкФ или без пробовал.
Подключение ОУ по схеме от Wiselord , только без входных переменников http://radiokot.ru/circuit/audio/other/39/12.png

И если питаю спектр от отдельного БП ничего не меняется
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

Выяснил новые подробности: дело на в АЦП, а в выводе информации на матрицу, стоит мне отключить питание столбцов и басиста как не бывало. Использую обычные сдвиги 74HC595, столбцы через транзисторы IRLML6401TRPBF
Друг Кота
Аватара пользователя
Сообщения: 17234
Зарегистрирован: Чт апр 04, 2013 12:46:59
Откуда: Тюмень

Сообщение Slabovik »

Классическая проблема - протекание питающего индикатор тока по общему земляному проводнику с ненулевым сопротивлением. На этом сопротивлении выделяется напряжение, которое затем усиливается...
Контактная информация:
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 16, 2009 14:23:59

Сообщение NebelWefer »

при питании матрицы и 74хх от отдельного БП все норм. Попробовал снять отдельные 5В с другой ветки, эффект меньше, но все равно достаточен. Я вроде и земли разделил: земли матрицы и 74хх и земля ОУ+ МК встречаются только на плате БП. Как бороться с такой проблемой?
Друг Кота
Аватара пользователя
Сообщения: 17234
Зарегистрирован: Чт апр 04, 2013 12:46:59
Откуда: Тюмень

Сообщение Slabovik »

Значит, протекание тока не устранено - где-то у вас земли имеют общий протяжённый участок. Об этом красноречиво говорит то, что при питании от отдельного источника питания всё в порядке. Т.к. этот источник питания имеет соединение земель с усилителем только в одной точке. А вот когда питаете от источника усилителя - это оказывается не так. Где именно - сказать смогу только после изучения конструкции, которой у меня нет. Поэтом ограничиваюсь только советами.
По-хорошему, в сложных случаях, когда имеются "блуждающие" земляные токи, для передачи сигналов нужно использовать дифференциальные сигнал. Ну, или как минимум этот механизм - сигнальный провод + сигнальная земля. Сигнальная земля при этом - это такой же вход, как и сигнальный, только инвертирующий (тут надо к основам применения ОУ отсылку сделать, у них вход '+' и вход '-', так сигнальный - это вход '+', сигнальная земля - вход '-')
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт ноя 16, 2007 00:40:17
Откуда: Украина

Сообщение foxit »

Здравствуйте.
Поделитесь опытом.
Какие задачи лучше решать на ПЛИС, а какие на МК?
Как можно организовать обмен между ПЛИС и МК?
Может есть несложный проектик для примера?
Спасибо.
Ответить

Вернуться в «Разные вопросы по МК»