Мелкие вопросы по МК и ПЛИС.
- Реклама
- Сообщения: 8
- Зарегистрирован: Пн апр 10, 2017 20:04:05
Доброго времени суток уважаемые форумчане! Есть акустика 2.1 хотелось бы сделать для нее проводной пульт с цифровой регулировкой громкости и басов, данная акс уже имеет проводной пульт с двумя переменными резисторами (резисторы моно). Вот хочется их заменить на кнопки, да и с индикацией 8 светодиодов. Есть у меня тинька 2313 вот хотелось бы на ней это дело собрать. Подскажите как это лучше реализовать. Да к стати в программировании мк я новичок.
Решение " в лоб" : переменные сопротивления заменить на перемножающие ц.а.п. ,управляемые м.к.
Но ведь есть и готовые решения, хотя чуток дороже.
Но ведь есть и готовые решения, хотя чуток дороже.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
- Сообщения: 8
- Зарегистрирован: Пн апр 10, 2017 20:04:05
[uquote="petrenko",url="/forum/viewtopic.php?p=3096835#p3096835"]Решение " в лоб" : переменные сопротивления заменить на перемножающие ц.а.п. ,управляемые м.к.
Но ведь есть и готовые решения, хотя чуток дороже.[/uquote]
Про мк я читал достаточно много, и то что переменные сопротивления можно заменить я знаю, только как это реализовать? Вот здесь мои знания расплываются. Так примерная картина есть но очень слабая. А именно какую и куда подавать команду?
Но ведь есть и готовые решения, хотя чуток дороже.[/uquote]
Про мк я читал достаточно много, и то что переменные сопротивления можно заменить я знаю, только как это реализовать? Вот здесь мои знания расплываются. Так примерная картина есть но очень слабая. А именно какую и куда подавать команду?
- Сообщения: 3342
- Зарегистрирован: Ср янв 02, 2013 08:37:35
[uquote="sergey-arhipov-1988",url="/forum/viewtopic.php?p=3096814#p3096814"]Есть у меня тинька 2313 вот хотелось бы на ней это дело собрать.[/uquote]
У тини 2313 есть 4 канала ШИМ… но не зная программирования тебе такую задачу не реализовать.
У тини 2313 есть 4 канала ШИМ… но не зная программирования тебе такую задачу не реализовать.
- Реклама
- Сообщения: 8
- Зарегистрирован: Пн апр 10, 2017 20:04:05
[uquote="АСУ",url="/forum/viewtopic.php?p=3096895#p3096895"][uquote="sergey-arhipov-1988",url="/forum/viewtopic.php?p=3096814#p3096814"]Есть у меня тинька 2313 вот хотелось бы на ней это дело собрать.[/uquote]
У тини 2313 есть 4 канала ШИМ… но не зная программирования тебе такую задачу не реализовать.
[/uquote]
Это я понимаю. Вот и обратился за помощью.
У тини 2313 есть 4 канала ШИМ… но не зная программирования тебе такую задачу не реализовать.
Это я понимаю. Вот и обратился за помощью.
Помощь и то, что Вы ожидаете от форумчан - немного разные вещи
Мало вероятно, что найдутся энтузиасты, которые разработают Вам схему и напишут ПО для МК за "спасибо"
Мало вероятно, что найдутся энтузиасты, которые разработают Вам схему и напишут ПО для МК за "спасибо"
Подскажите, пожалуйста. Есть два МК, если все упростить, то к МК1 подключены светодиоды и кнопки, к МК2 - кнопки и вся основная схема.
Необходимо реализовать двусторонний обмен по интерфейсу SPI. (Atmega 16, Atmega 48)
С МК 1 должны посылаться биты на на МК 2, который будет выполнять определенные действия. В то же время с МК2 должны посылаться биты на МК1, которые будут зажигать светодиоды.
МК2 - основной, на нем завязана вся работа (схема управления нагрузкой с настройкой режимов посредством меню на жки дисплее).
С МК1 на МК2 настроил передачу битов, но вот не могу въехать как сделать одновременно и обратную операцию. При этом всем МК 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 байта. Первый это команда, второй информационный (информация об этой команде).
1 По внешнему прерыванию от инициатора МК1.
2 Через определённый промежуток времени принудительно производить обмен данными.
Раз МК2 занят разного рода деятельностью, то обмен по SPI необходимо реализовать на аппаратном уровне…
Пакет данных как мне видится, должен иметь 2 байта. Первый это команда, второй информационный (информация об этой команде).
Прошу прощения, а у Вас случайно нет никакой инфы по 2 методу? Столько времени потратил на поиски и ничего не нашел, может не там искал...
- Сообщения: 3342
- Зарегистрирован: Ср янв 02, 2013 08:37:35
Я не совсем понимаю вопрос…
Так это обычный обмен ведомого с ведущим через определённый промежуток времени. Промежуток времени ты определяешь сам в зависимости от поставленных задач. ИМХО. 5 раз в секунду делаешь обмен... вполне достаточно для получения информации по кнопкам от МК1.
P.S. Если не совсем понимаешь как работает SPI или не знаешь как настраивать регистры, то вот в этой книге всё подробно написано - https://yadi.sk/i/p3Ej_rure7zgU
Так это обычный обмен ведомого с ведущим через определённый промежуток времени. Промежуток времени ты определяешь сам в зависимости от поставленных задач. ИМХО. 5 раз в секунду делаешь обмен... вполне достаточно для получения информации по кнопкам от МК1.
P.S. Если не совсем понимаешь как работает SPI или не знаешь как настраивать регистры, то вот в этой книге всё подробно написано - https://yadi.sk/i/p3Ej_rure7zgU
Ну так передача идет же от ведущего к ведомому. А мне необходимо передавать еще и другую информацию от ведомого к ведущему. Спасибо, сейчас гляну
- Сообщения: 3342
- Зарегистрирован: Ср янв 02, 2013 08:37:35
Передача по SPI идёт одновременно от ведущего к ведомому и от ведомого к ведущему… похоже тебе нужно книжку покурить… там всё подробно изложено. Удачи!
В общем случае, когда SPI реализован всеми линиями данных (их две - от мастера к слейву и от слейва к мастеру), обмен В ОБОИХ направлениях происходит ОДНОВРЕМЕННО. Мастер тактирует этот обмен клоками, а два сдвиговых регистра (один у мастера, другой у слейва) обмениваются своим содержимым друг с другом.
Таким образом, можно передать СОСТОЯНИЕ (слово состояния) слейва к мастеру. Передать таким образом СОБЫТИЕ нельзя. Событие с той или иной латентностью может передавать только мастер.
Сиречь, частота обменов должна быть выбрана такой, чтобы чтение состояний слейва не пропускало событий слейва, которые апдейтят оное состояние (флаги).
Таким образом, можно передать СОСТОЯНИЕ (слово состояния) слейва к мастеру. Передать таким образом СОБЫТИЕ нельзя. Событие с той или иной латентностью может передавать только мастер.
Сиречь, частота обменов должна быть выбрана такой, чтобы чтение состояний слейва не пропускало событий слейва, которые апдейтят оное состояние (флаги).
Сейчас гляну у Евстифеева. Но про то ,что Вы говорите написано в интернете, но не понятно как на стороне слейва сделать так, чтобы в SPDR, по окончании передачи с мастера на слейв, сохранилась та инфа, которая нужна и ее можно было бы прочитать на мастере
Добавлено after 53 minutes 27 seconds:
Нихрена не получается, ладно
Добавлено 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… Вот примерно так.
МК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]
Вот две блок – схемы примерного алгоритма…
Вот две блок – схемы примерного алгоритма…
[uquote="alekseykolesnik",url="/forum/viewtopic.php?p=3115133#p3115133"]Сейчас гляну у Евстифеева. Но про то ,что Вы говорите написано в интернете, но не понятно как на стороне слейва сделать так, чтобы в SPDR, по окончании передачи с мастера на слейв, сохранилась та инфа, которая нужна и ее можно было бы прочитать на мастере
Добавлено after 53 minutes 27 seconds:
Нихрена не получается, ладно[/uquote]
Аппаратный блок работает в жестко заданном режиме. Если задача выходит за рамки, определенные простейшим стандартным функционалом прийдется добавить программные доработки необходимого и/или перейти полностью на программную обработку, добавить аппаратные линии согласования взаимодействия между МК, разработать свой протокол-примитив для синхронизации обмена.

Или в качестве альтернативы (полнодуплексный обмен) применить UART.

Добавлено after 53 minutes 27 seconds:
Нихрена не получается, ладно[/uquote]
Аппаратный блок работает в жестко заданном режиме. Если задача выходит за рамки, определенные простейшим стандартным функционалом прийдется добавить программные доработки необходимого и/или перейти полностью на программную обработку, добавить аппаратные линии согласования взаимодействия между МК, разработать свой протокол-примитив для синхронизации обмена.
Или в качестве альтернативы (полнодуплексный обмен) применить UART.
- Сообщения: 274
- Зарегистрирован: Чт апр 16, 2009 14:23:59
Товарищи, подскажите по такой странной ситуации:
есть усилитель и на входе спектроанализатор на атмеге8. При работающем АЦП на выходе усилителя появляется небольшой гул и случайные низкочастотные всплески ( больше всего похоже, будто басовую струну легонько дергают). Причем есть особенность, на входе АЦП сигнал поднимается на ОУ к середине питания, если отключаю питание ОУ, по гул и всплески передаются даже просто через питание, сигнальный кабель от спектра отключаю. Если ОУ запитан, но всплески слышны только при подключении сигнального кабеля к спектру. В обоих случаях на светодиодной матрице спектра в такт всплескам подпрыгивают столбики, будто и правда кто-то подает их на вход.
Если программно выключаю АЦП, то при всех соединениях никаких артефактов в звуке нет.
Питание меги и предварительных усилителей с одного трансформатора, но с разных LM7812(усил) и LM05(мега), усилитель мощности с отдельного транса.
на меге стоит 0.1мкФ прямо под ней на ножках питания, + подается на Avcc через дроссель 10мкГн.
Опорное напряжение - Vcc, Aref с кондером 0.1мкФ или без пробовал.
Подключение ОУ по схеме от Wiselord , только без входных переменников http://radiokot.ru/circuit/audio/other/39/12.png
И если питаю спектр от отдельного БП ничего не меняется
есть усилитель и на входе спектроанализатор на атмеге8. При работающем АЦП на выходе усилителя появляется небольшой гул и случайные низкочастотные всплески ( больше всего похоже, будто басовую струну легонько дергают). Причем есть особенность, на входе АЦП сигнал поднимается на ОУ к середине питания, если отключаю питание ОУ, по гул и всплески передаются даже просто через питание, сигнальный кабель от спектра отключаю. Если ОУ запитан, но всплески слышны только при подключении сигнального кабеля к спектру. В обоих случаях на светодиодной матрице спектра в такт всплескам подпрыгивают столбики, будто и правда кто-то подает их на вход.
Если программно выключаю АЦП, то при всех соединениях никаких артефактов в звуке нет.
Питание меги и предварительных усилителей с одного трансформатора, но с разных 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
Выяснил новые подробности: дело на в АЦП, а в выводе информации на матрицу, стоит мне отключить питание столбцов и басиста как не бывало. Использую обычные сдвиги 74HC595, столбцы через транзисторы IRLML6401TRPBF


