Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ В помощь начинающему _ Чем или как создать управление микросхемой Lc7821

Автор: love777888 May 1 2015, 20:44

Чем или как создать управление микросхемой Lc7821? микросхема собственно из ав ресивера с упаленым процессором коммутирует входы, естественно необходимо создать трех проводную шину по которой будет управляться вся структура этой микросхемы. Помогите, сильно не пинайте, мож ткните, что нужно сделать, в программировании пока 0. Есть чипы атмега8 и программатор к ней. Воющем обычно делал за кем то, и все успешно заработало. а тут тема как для меня серьезная.  lc7821.pdf ( 133.34 килобайт ) : 173

Автор: Xenia May 1 2015, 22:06

Цитата(love777888 @ May 1 2015, 23:44) *
Чем или как создать управление микросхемой Lc7821? микруха собственно из ав ресивера с упаленым процессором коммутирует входы, естественно необходимо создать трех проводную шину по которой будет управлятся вся структура этой микры. Помогите, сильно не пинайте, мож ткните, что нужно сделать, в программировании пока 0. Есть чипы атмега8 и программатор к ней. Воющем обычно делал за кем то, и все успешно заработало. а тут тема как для меня серьзная.


Расскажите чуть подобнее:

1. Микросхема LC7821 у вас где стоит? В коробочке лежит, впаяна/вставлена в какую-то плату или находится внутри автомобиля? sm.gif
Т.е. надо ли ей городить обвязку (питание и все такое), или она уже в составе какого-то готового устройства живет?
Если уже впаяна, то имеет ли смысл возиться с этой платой, рискуя что-нибудь в ней испортить, или лучше купить для тренировок отдельную LC7821? (благо что она недорого стоит)

2. Контроллер ATmega8 у вас в виде голой микросхемы или какая-то отладочная плата для него есть? Прошивали ли вы когда-нибудь подобного рода микросхемы или всему этому надо учиться с нуля?

3. Что за "упаленый процессор" там был? Тоже ATmega8 или другой? Назовите.
Может быть у вас стоял 144-ногий японский M30802SGP? sm.gif
Собираетесь ли вы ставить ATmega8 вместо "упаленого процессора" или намереваетесь подвесите его на проводках в виде дополнительной/внешней платы типа Arduino?

4. "проводная шина, по которой будет управлятся вся структура этой микры" - это откуда и куда? Вы имеете ввиду связь ATmega8 с LC7821 или связь ATmega8 с чем-то внешним? Если последнее, то что это? Зафиксированы/известны ли команды, которые по этой шине передаются или можно сочинить свои?

5. Какая это задача? Что конкретно переключает LC7821? Какого рода аналоговые линии она коммутирует? Возможно ли будет проверить правильность такой коммутации? Или только тестером ножки щупать?

6. Что собой представляет командное устройство, которое решает, что должна делать LC7821?

Впрочем, вашей задачей раньше уже какой-то немец интересовался (LC78211 = аналог LC7821):
http://electronix.ru/redirect.php?http://www.roboternetz.de/community/threads/24475-LC78211-mit-Atmega8-ansteuern
но написал программу в лоб - как ногодрыгалку, что даже смотреть тошно. sm.gif

P.S. Очень уж ваше устройство напоминает мне "Yamaha RX-V1200", только у той не одна LC7821, а штуки 4-5 (хотя не все LC7821, но ее сестры LC7821-LC7823).

Автор: love777888 May 2 2015, 05:31

1. Микросхема стоит у усилителе грундиг, естественно управляет она коммутацией входных сигналов.
2. Атмега 8 у меня голая, есть панелька для прошития оной.
3. Процессор там был M38172M4-092FF, похоже, Моторола. Собираюсь хотя бы частично восстановить функции усилителя, т.е коммутацию входов, управление задержкой вкл акустических систем, вкл Loudness, Defeat, управлять моторизированным резистором громкости. Сам усилок поет, без проблем, на прямую минуя коммутатор.
4. В сервис мануале на саму микросхему есть трехпроводная шина управления, если можно ее создать на атмега8 было бы неплохо, если нет на чем тогда? По поводу команд, в даташите указано как управлять при помощи шины посылая в 7821 импульсы разной длительности.
5. Коммутацию можно проверить прямо в усилителе, через тюльпаны подавая внешние сигналы.
6. Командное устройство это кнопки без фиксации которые стоят на внешней панели, т.е TAPE, AUX, CD, TUNER, MD, и.т.д
Недавно был куплен Sony pa-ve610, ну и та же ситуация процессор пробит по питанию и садит дежурку до 6-ти вольт заместо 12-ти, там стоят те же микросхемы по входу, но в сони ситуация похлеще там стоит долби пролоджик микросхема M62460FP в которой и управление 5.1, и регулировка тембра, да и тюнер там стоит. В сони процессор UPD780205GF-032-3BA, стоит такой процессор 43$ но упоминания о моей модели почему то нет, так вот есть усилители в которых накрыто управление. Сам занимаюсь ремонтом всей этой аппаратуры, но писать программы это лес дремучий.

Автор: Xenia May 2 2015, 07:29

Цитата(love777888 @ May 2 2015, 08:31) *
2. Атмега 8 у меня голая, есть панелька для прошития оной.

И что вы собираетесь делать? Печатную плату для нее вручную делать? Она у вас в корпусе DIP28 ? Может быть вам платку какую-нибуть готовую купить типа Ардуино или демонстрашку?

Цитата(love777888 @ May 2 2015, 08:31) *
3. Процессор там был M38172M4-092FF походу моторола. Собираюсь хотя бы частично восстановить функции усилителя, т.е коммутацию входов, управление задержкой вкл акустических систем, вкл Loudness, Defeat, управлять моторизированным резистором громкости. Сам усилок поет, без проблем, на прямую минуя коммутатор.

M38172M4 это Mitsubishi, но хрен редьки не слаще.

Цитата(love777888 @ May 2 2015, 08:31) *
4. В сервис мануале на саму микру есть трехпроводная шина управления, если можно ее создать на атмега8 было бы неплохо, если нет на чем тогда? По поводу команд, в даташите указано как управлять при помощи шины посылая в 7821 импульсы разной длительности.

Здесь на мой вопрос вы не ответили. Соединение Меги8 с 7821 по трем проводам + земля, это ясно и понятно. Вы не отвечаете на главный вопрсос, откуда Мега8 узнает, что ей надо делать с 7721? Она же ваших мыслей читать не умеет и собственным интеллектом тоже не блещет. Или же вам надо, чтобы при включении Грюндика Мега8 жестко приводила 7721 в какое-то одно единственное состояние и больше ничего не делала?

Цитата(love777888 @ May 2 2015, 08:31) *
5. Коммутацию можно проверить прямо в усилителе, через тюльпаны подавая внешние сигналы.

Не очень понятно, но можно замять. По "тюльпанам" обычно звук идет, но не цифровые управляющие сигналы.

Цитата(love777888 @ May 2 2015, 08:31) *
6. Командное устройство это кнопки без фиксации которые стоят на внешней панели, т.е TAPE, AUX, CD, TUNER, MD, и.т.д.

Вот именно эта сторона дела кажется мне самой сложной. Управление Мегой8 коммутатора 7721 - ерунда, а как все эти многочисленные кнопки собираетесь к Меге8 подключать? Тоже по трем провода или тридцати трем? Опять же требуется знание того, как соотвествуют все 256 возможных состояний 7721-ой состоянию кнопок на панели управления. Даже если есть схема, и то дело сложное. Кстати, у вас схема есть?

Останется непонятным и то, КАК именно следует переключать 7721, если вы по всем этим кнопкам станете долбать.

Цитата(love777888 @ May 2 2015, 08:31) *
Недавно был куплен Sony pa-ve610, ну и та же ситуация процессор пробит по питанию и садит дежурку до 6-ти вольт заместо 12-ти, там стоят те же микры по входу, но в сони ситуация похлеще там стоит долби пролоджик микросхема M62460FP в которой и управление 5.1, и регулировка тембра, да и тюнер там стоит. В сони процессор UPD780205GF-032-3BA, стоит такой процессор 43$ но упоминания о моей модели почему то нет, так вот есть усилители в которых накрыто управление. Сам занимаюсь ремонтом всей этой аппаратуры, но писать программы это лес дремучий.

Тут я и вовсе ничего не поняла, надо думать, что вы отвлеклись на другие свои проблемы. Мне же, наоборот, писать программы легко, а вот ковыряться в проводах уже хуже. sm.gif Так вы лично для себя тот Грюндик ремонтируете или для какого-то заказчика?

Автор: love777888 May 2 2015, 08:29

Я понял... Ситуация такая есть наружный интерфейс из 6-ти кнопок, эти кнопки подключены к атмега8 (или чип другого типа по надобности), нажимая например AUX мы создаем в атмега последовательный код (может я ошибаюсь!) и соответственно в лс7821 активируется вход AUX, и так далее с другими каналами.... Знать какие команды подавать по шинам CL CI DI поможет дата шит, там все описано, но в этом я слаб... найти неиправность, прошить готовой прошивкой сделаю, но создать программный код-лес дремучий. По поводу макетки нет проблем делали.
Схема есть, но там ничего нового из того принципа, что я описал выше нового нет. Коммутирует м/с сигналы зч от 20гц-30кгц, т.е звук.
По поводу сони, это тоже усилитель только посерьезней, все сенсорное и та же проблема те же микросхемы, так что разговор об одном и том же.
Аппараты мои и все делаю для себя, так как новый стоит дорого.

Автор: Xenia May 2 2015, 08:57

Цитата(love777888 @ May 2 2015, 11:29) *
Я понял... Ситуация такая есть наружный интерфейс из 6-ти кнопок, эти кнопки подключены к атмега8 (или чип другого типа по надобности), нажимая например AUX мы создаем в атмега последовательный код (может я ошибаюсь!) и соответственно в лс7821 активируется вход AUX, и так далее с другими каналами.... Знать какие команды подавать по шинам CL CI DI поможет дата шит, там все описано...

В даташите написано лишь то, как окрывать/закрывать те 8 пар "кранов", которые внутри LC7821 находятся, но в нем не сказано какие краны надо крутить, чтобы ваш звуковик на AUX преключился. Т.е. LC7821 делает лишь перекоммутацию в схеме "прогрывателя", но чтобы ей упралять, требуется знать, как это следует коммутировать при нажатии различных кнопок.

Мне же неизвестно даже то, дает ли кнопка кратковременный импульс или она фиксируется в нажатом состоянии. Можно ли заземлить один конец от каждой кнопки, чтобы к Меге тянулось не 12, а только 6 проводов? Являются ли кнопки замыкателями-размыкателями или какое-то напряжение выдают, когда их нажимают. И т.д.

Цитата(love777888 @ May 2 2015, 11:29) *
... но в этом я слаб... найти неиправность, прошить готовой прошивкой сделаю, но создать программный код-лес дремучий.

Ваш программатор в каком формате прошивку требует? С расширением *.hex годится?

Что-нибудь такое вам годится?

Автор: love777888 May 2 2015, 13:46

Конечно годится схема супер проще не бывает! По поводу вентилей в м/с, не проблема если тюльпан по абревеатурой например TAPE не будет совпадать с этой же кнопкой и с этим же названием это все можно перепаять, еще вопрос можно ли прикрутить к этой схеме светодиоды тех же 6 штук? на панели просто стоят, напротив каждой кнопочки. Да hex я запишу в контроллер.
Скажите а кнопки не должны быть подтянуты к плюсу через резисторы например 10к, для того чтобы не было ложных срабатываний, на портах атмеги? Просто видел все эти схемы неоднократно.

по поводу светиков есть схема расширенного аудиоселектора на реле, хочу показать ее Вам.



Может, что почерпаете с этого проекта http://electronix.ru/redirect.php?http://cxem.net/sound/soundpred/soundpred28.php, почему не повторил, как для меня просто не хватает аудиовходов потому хочу реализовать именно на 7821

Автор: Xenia May 2 2015, 15:36

Цитата(love777888 @ May 2 2015, 16:46) *
еще вопрос можно ли прикрутить к этой схеме светодиоды тех же 6 штук? на панели просто стоят, напротив каждой кнопочки.

Если свободных ножек у Меги8 хватит, то можно. Только светодиоды через резистор 1 Ком к Меге, а другим концом к +5 вольтам, а не на землю. Там внутри +5 вольт есть откуда взять?

Цитата(love777888 @ May 2 2015, 16:46) *
Скажите а кнопки не должны быть подтянуты к плюсу через резисторы например 10к, для того чтобы не было ложных срабатываний, на портах атмеги? Просто видел все эти схемы неоднократно.

У Меги вроде бы по умолчанию входы к плюсу подтянуты, но есть команда это отменить для всех. Точнее с Мегой8 не разбиралась, и сама этим не пользовалась. Пользовалась на Х-Меге, то та 3-вольтовая и вам не годится (LC7821 управляется 5-ю).

Вы не ответили, какие там кнопки. Как у звонка (отпускаешь - выключатся) или с фиксацией утопленого положения.

По части "ложных срабатываний" тут противоположня проблема - Меге8 придется периодически (по таймеру) опрашивать состояние своих входов, присоединеных к кнопкам. Это не очень удобно, зато нечуствительно к дребезгу. Чувствовать изменния на всех своих входах может Мега88, а Мега8 этого не умеет (у нее только 2 чувствительных входа - INT0 и INT1, но этого в вашем случае мало).

Да тесновато на Меге8. Может быть, пока не поздно, какой-то другой Мегой заменить? Хотя бы Мегой162 - она крупная sm.gif. Но тут и выбор не велик, т.к. следующей по числу ног за DIP28 следует DIP40, а они уже все толстенькие.

Или для такой у вас мало места в корпусе, нет панельки, не лезет в программатор, дорого стоит? sm.gif
(Просто дело в том, что у меня самой уже есть отладочные платы под Меги -8, -88, -162 и они сами в наличии - это бы сильно упростило работу, т.к. я могла бы проверить на железе. А что-то програмировать в отрыве от железа очень сложно. А Мегу-162 юзала именно из-за нехватки ног и ее сильного внутреннего сходства с Мегой8).

Цитата(love777888 @ May 2 2015, 16:46) *
... на для меня просто не хватает аудиовходов потому хочу реализовать именно на 7821

Так у вас выбор что ли был? 7821 уже стоит в вашем устройстве или вы только намереваетесь ее туда засунуть? Да и схему я рисовала с учетом того, что LC7821 уже запитана биполярным питанием, которое больше 5 вольт. Это очень важный вопрос - ответьте обязательно!

Автор: love777888 May 2 2015, 19:12

Я извиняюсь просмотрел вопрос про кнопки, кнопки обычные без фиксации,
Если нам перейти на другой контроллер, возможно ли будет реализовать следущие функции управления усилителем:
1. Коммутация входов по отдельным 6-ти кнопкам, через LC7821 разумеется, с последущей индикацией на светодиодах.
2. Есть функции DEFEAT и LOUDNESS эти кнопки должны работать по типу триггера, куда завести управление я уже знаю.
3. Есть в усилке моторизованый регулятор громкости, надо вывести два порта с контроллера для управления мотором
4. Есть переключение акустических систем А и В, то же по типу триггера должно включаться
5. Задержка включения акустических должна быть на время переходных процессов, примерно 2-3 секунды.
6. Самый интересный пункт как все это дело реализовать на ПДУ, может по протоколу RC5.
Выбор был сделать все по схеме выше и всего на 4 входа или полноценное подключение к усилку

Автор: Xenia May 2 2015, 19:56

Цитата(love777888 @ May 2 2015, 22:12) *
Если нам перейти на другой контроллер, возможно ли будет реализовать следущие функции управления усилителем:

"Другой контроллер" это громко сказано, считайте Мегу162 растолстевшей Мегой8 sm.gif. Т.е. памяти вдвое больше и в полтора раза больше ног. А из-за того что ножек стало больше, порты вывели "красиво" друг за дружкой - и биты выведены все, и идут по-порядку. Да и перекрывания разных фукций на одних и тех же ножках стало меньше. А главное то, что родилась она на год позже Меги8, а потому от рождения приобрела способность чувствовать (поднимать флаг прерывания), когда на пожках меняется напряжение. Последнее обстоятельство для вас особенно полезно, т.к. вам нужна оперативная реакция на изменения состояний управляющих кнопок. Все новые Меги тоже так умеют.

В принципе, если вам в дальнейшем Мега162 не устроит, но программу, написанную для нее, не так уж и сложно перенести на любую из Мег - все-таки все они между собой достататочно близки. Т.е. в любом случае начинать работу сызнова не придется.

Цитата(love777888 @ May 2 2015, 22:12) *
1. Коммутация входов по отдельным 6-ти кнопкам, через LC7821 разумеется, с последущей индикацией на светодиодах.

При таком числе ног, как у Меги162, можно не только 6-кнопок обслужить, но и вдвое больше. Можно было бы даже фотодиод к ней присоединить, чтобы от телевизионного пульта ДПУ дистанционно упралять. Но это так - перспектива, хотя и вполне возможная благодаря тому, что вход RX у Меги162 можно для этой возможности оставить свободным.

Индикция тоже не проблема, только она получится не "последущей", а параллельной. Ведь у нас нет возможности узнать, сработала LC7821 или нет, а потому светодиодами придется управлять независимо, выдавая желаемое за действительное.

Цитата(love777888 @ May 2 2015, 22:12) *
2. Есть функции DEFEAT и LOUDNESS эти кнопки должны работать по типу триггера, куда завести управление я уже знаю.

Что триггер, что не триггер - это несущественно, т.к. сложностей в реализации не представляет.

Цитата(love777888 @ May 2 2015, 22:12) *
3. Есть в усилке моторизованый регулятор громкости, надо вывести два порта с контроллера для управления мотором

Про мотор мне ситуация совершенно не ясна, впервые слышу, чтобы в таких звуковухах был мотор sm.gif. Тут вам придется объяснять более подробно. Моторы бывают разные, среди которых встречаются и такие, что требуют весьма крутых специализированных контроллеров (скажем, для обеспечения плавного изменения фазы на многочисленных обмотках). Я на Меге162 шаговым дигателем управляла - довольно обременительное для контроллера занятие движущийся ротор погонять.

Цитата(love777888 @ May 2 2015, 22:12) *
4. Есть переключение акустических систем А и В, то же по типу триггера должно включаться

Это чистая програмная логика. Думаю, что в тексте программы вы довольно скоро разберетесь и будуте сами способны эту логику модифицировать без моей помощи. Т.е. этот вопрос сводится только к тому, в каком положении должны находится краны у LC7821 при конкретном сочетании нажатых кнопок. Это было бы даже целесообразно в виде таблицы задать, чтобы вы могли ее изменять, как вам захочется, не трогая самой программы. Вероятно, даже в EEPROM (энергонезависимая память) эту таблицу можно было бы загружать, чтобы самой прошивки никогда не трогать и програмированием не заниматься sm.gif

Цитата(love777888 @ May 2 2015, 22:12) *
5. Задержка включения акустических должна быть на время переходных процессов, примерно 2-3 секунды.

Переходные процессы там очень быстрые, а секунды - это очень большое время в мире микроконтролеров.

Цитата(love777888 @ May 2 2015, 22:12) *
6. Самый интересный пункт как все это дело реализовать на ПДУ, может по протоколу RC5.

Опа-па! Это как раз то, о чем я заикнулась в п.1. Полагаю, возможным, хотя про протокол RC5 слышу в первый раз.

Автор: love777888 May 3 2015, 05:35

По поводу моторизованного регулятора громкости тут ничего сложного стоит обычный моторчик на 5 вольт плюс схемка на него из 4-х транзисторов


Проокол RC5 протокол фирмы филипс часто использующийся в управлении бытовой тв техникой, или можно например взять любой пульт и обучить контроллер командам

Автор: Xenia May 3 2015, 06:30

Цитата(love777888 @ May 3 2015, 08:35) *
По поводу моторизованного регулятора громкости тут ничего сложного стоит обычный моторчик на 5 вольт плюс схемка на него из 4-х транзисторов.
Протокол RC5 протокол фирмы филипс часто использующийся в управлении бытовой тв техникой, или можно например взять любой пульт и обучить контроллер командам


Фиг с ним, с моторчиком sm.gif, дела надо делать постепенно. Мы же не техзадание на разработку пишем, а занимаемся радиолюбительством sm.gif. Значит, надо хоть с чего-то начать, а уж потом как получится. Сейчас надо фундамент заложить и печку sm.gif, а все остальное позже приложится.

Начать предлагаю с контроллера + кнопки + светодиоды. Конечно, было бы заманчиво сразу взяться за сопряжение его с LC7821, но тогда будет совершенно непонятно работает ли там что-то или нет. Т.е. все равно сначала надо к контроллеру кнопки какие-то приладить, чтобы ими хотя бы пару команд можно было подавать, параллельно тестируя, переключает ли LC7821 свои краны или нет. А без светодиодов не будет ясно, живой контроллер или мертвый. Т.е. по началу можно даже не релизовывать родную функцию кнопки, а просто использовать любую кнопку и любой светодиод для тестовых целей.

1. Определяйтесь, на Меге8 делать будем или сможете достать Мегу162?
2. Ищите в устройстве землю и питание +5 вольт.
3. Если LC7821 внутри нет, то покупаете ее (давно пора было бы просветить меня насчет наличия LC7821, а то я уже захлебнулась вас про это спрашивать).
4. Пока самый минимум: к Меге присоединны две кнопки, два светодиода и LC7821.
Программа такая:
нажата 1-ая кнопка - загорается 1-ый светодиод и 7821-ая все свои краны закрывает.
нажата 2-ая кнопка - загорается 2-ой светодиод и 7821-ая все свои краны открывает.
5. Я пишу прошивку - вы ее прошиваете, и проверяете - зажигаются ли светодиоды, и переключает ли свои краны 7821-ая (тут достаточно хотя бы один кран проверить, что он изменяет свое состояние от нажатия кнопок).
6. Если программа сработает, то задачу можно будет считать на 3/4 решенной, т.к. дальше неожиданностей ждать не приходится.

Автор: love777888 May 3 2015, 08:38

хорошо в течении дня соберу но в наличии есть только мега8, к каким двум точнее четырем портам 8-й меги будут подключены 2-ве кнопки и 2 светодиода? ЛС7821 стоит в усилителе усилитель со всем содержимым у меня есть

Автор: Xenia May 3 2015, 08:57

Цитата(love777888 @ May 3 2015, 11:38) *
хорошо в течении дня соберу но в наличии есть только мега8, к каким двум точнее четырем портам 8-й меги будут подключены 2-ве кнопки и 2 светодиода? ЛС7821 стоит в усилителе усилитель со всем содержимым у меня есть.


Кнопки: PC0, PC1, PC2, PC4
Светодиоды: PD0, PD1, PD2, PD4
соотвественно.

Автор: love777888 May 3 2015, 12:26

Светодиоды катодом к портам меги, а анодом через 510 Ом к +5 В, или конкретно PD0, PD1 - 1-й светодиод, PD2, PD4 - 2-й светик. Просто шла речь выше именно о подключении через гасящий резистор на 5 в. каждого светика. если нет то анодом куда на какие порты?

Автор: Xenia May 3 2015, 15:19

Цитата(love777888 @ May 3 2015, 15:26) *
Светодиоды катодом к портам меги, а анодом через 510 Ом к +5 В, или конкретно PD0, PD1 - 1-й светодиод, PD2, PD4 - 2-й светик. Просто шла речь выше именно о подключении через гасящий резистор на 5 в. каждого светика. если нет то анодом куда на какие порты?


Я на схеме (http://electronix.ru/redirect.php?http://77.72.19.18/Temp/88a.png) дорисовала. Последовательность "светодиод-резистор" может быть не только такой, но и обратной - "резистор-светодиод". Это выбираем только из соображений, где удобнее расположить резисторы, когда светодиоды внешние. А я нарисовала так, чтобы бы потом гребенка резисторов могла ужиться с Мегой на одной плате, если та вдруг когда-то появится.

Автор: love777888 May 4 2015, 10:24

Все собрано чип ждет прошивки



Прошу не пугаться ламерского комплекта клавиатура была взята от старого видика, вставлял чип в боард все читает, я имею его сигнатуру.

Автор: Xenia May 4 2015, 18:56

Цитата(love777888 @ May 4 2015, 13:24) *
Все собрано чип ждет прошивки.
Прошу не пугаться ламерского комплекта клавиатура была взята от старого видика, вставлял чип в боард все читает, я имею его сигнатуру.


Чего тут пугать, всё очень клёво выглядит sm.gif. Не знала, что ваш программатор позволяет использовать чип по прямому назначению, не вынимая МК из панельки. А я-то думала, что вы все сделаете на обороте панельки DIP28, и все будет висеть на проводках.

У вас есть схема этого программатора (или в интернете ее можно найти?). Этот вопрос не праздный, т.к. управлять LC7821 было бы удобнее не ногодрыгом, а через интерфейс SPI (это линии SCK, MOSI, MISO), но к сожалению именно через этот же интерфейс микроконтроллер программируется вашим программатором. Линия MISO у нас не используется, т.к. LC7821 немая, но на SCK и MOSI контроллер будут выдавать импульсы напряжения. Поэтому хотелось бы иметь уверенность, что это не повредит самому программатору, раз уж он остается постоянно подключенным к Меге во время ее работы с LC7821.

Кстати, поглядев на фото, я поняла, чем вариант Меги162 вас смутил - она в ваш программатор не вставится. Я же, в свою очередь, представляла себе ваш программатор с гнездом DIP40/44, куда можно на время прошивки вставлять как узкие DIPы, так и широкие. Но ваш программатор тоже можно использовать для прошивки DIP40, если вы добудете такую панельку и сделаете переход с DIP28 на DIP40. При этом в качестве разъема DIP28 можно использовать цанговую панельку DIP28, вставляемую в гнезда программатора ножками. Соединять проводами потребуется только линии земли, питания, SCK, MOSI, MISO и RESET.

Кстати, про RESET я на схеме забыла, эту ногу (PC6) надо соединить с +5 питания через резистор 10 ком - 33 ком. А для ручного сброса можно сделать маленькую кнопочку, которая в нажатом положении заземляется контакт RESET. На пульт управления звуковухой эту кнопку выводить не надо. В схеме поправлю.

Пока я прошивку напишу, сделайте две вещи:

1. Прочтите с помощью вашего программатора fuse-биты установок. Мне интересен бит CKSEL (но на другие тоже хочется просмотреть), т.к. он управляет источником тактовой частоты. У себя я знаю, каким он должен быть, если работаешь на внешнем кварцевом резонаторе (а я всегда только с ними работала), а в вашем случае придется работать на внутреннем RC-осцилляторе. Т.к. моя установка вам не годится. Но говорят, что если у вас свежая ни разу не прошитая Мега, но в фабричной установке как раз на внутренний RC-осциллятор уже запрограммировано. Вот и хочется это проверить. Мои же Меги8 уже по многу раз шитые, на них заводская установка не сохранилась.

2. Расскажите подробнее про LC7821.
а) Она у вас уже в Грюндике изначально смонтирована или вы только собираетесь ее использовать и у вас на руках этой микросхемы еще нет?
б) В обоих случаях поделитесь информацией о ее собственном питании, оно у нее должно быть явно выше 5-ти вольт и наверняка двухполярное, т.к. звуковой сигнал простирается и в отрицательную область напряжений.

Автор: love777888 May 4 2015, 19:25

Значит...Программатор у меня поддерживает 162, но как вы заметили у меня нет панельки к ней. Программатор у меня USB ASP купленный за недорого в китае. По поводу SPI шин я могу их отключать от самой панельки посредством разьема идущего прямо в усилитель, так что если надо зашить сам чип я снимаю 3 шины идущие к ЛС7821 и шью чип, потом подсоединяю и проверяю как управляется та самая наша 7821. Кнопочька ресет стоит прямо в отладочной панельке. Атмега у меня свежая так, что все по умолчанию. Внешний кварц на 8мгц тоже стоит на отладочной платке. Еще раз повторюсь микросхема ЛС7821 уже впаяна и стоит в усилителе, ждет команд от меги8. Питание ЛС7821 +-16 вольт. и она уже запитана в усилке, вы я так понимаю беспокоитесь за питание меги8, я ее запитаю от L7805, т.е 5 вольт, или там на шинах управления будет, что то выше 5-ти вольт.
Я могу вам выслать схему на мэйл, от грундика. И еще смотрел я даташит на 7821 так там на 5-ой странице написано, у микры существует адрес, а далее идут биты их 8, как и каналов в этой микре, 1-является командой открытия одного из 8-ми вентилей(смотря какой бит), 0-является закрытием вентиля. Адрес используется для группового управления если микросхем например 3, т.е стоит серия из ЛС7821, 7822, 7823, это как в сони в котором тоже упекся процессор.
Ниже в даташите показаны, тайминги, адресов и битов т.е самих вентилей как я понял



Да и еще есть в лс7821 такая ножка, которая меняет адрес самой микросхемы, это 17 нога под псевдонимом S.
У меня будет адрес со строчкой 0101, так как ножка сидит на земле.

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

Автор: Xenia May 4 2015, 20:20

Цитата(love777888 @ May 4 2015, 22:25) *
Значит...Программатор у меня поддерживает 162, но как вы заметили у меня нет панельки к ней. Программатор у меня USB ASP купленный за недорого в китае.

Я полагаю, что физически ваш программатор способен прошивать не только 162-ю, но и все Меги, какие бывают, за исключением XMega или некоторых уникальных Tiny, появившихся в последнее время. Единственное ограничение вашего программатора только в том, что не всякая Мега в ту панельку влезет. Ну и возможны какие-то ограничения со стороны программы, которая этим программатором управляет. Скажем, Мегу162 вы подключили, а программа-прошивальщик отказалась ее шить, увидев несовпадение с Мегой8.

Найти ваш программатор в интернете не смогла. Попрошу вас его там найти или поделиться мануалом (если он есть в электронном виде). На крайний случай, сфотографируйте свой программатор КРУПНО с обеих сторон, а то его подробности я не смогла разглядеть из-за недостаточного разрешения снимка всего макета.

Цитата(love777888 @ May 4 2015, 22:25) *
Внешний кварц на 8мгц тоже стоит на отладочной платке.

Вы слишком многого не договариваете из того, что крайне важно. Например, про то, что на плате есть кварц. Может быть, там еще что-то есть, что может либо помочь данной задаче или с нею конфликтовать?

Опять же неясно, чей это кварц. Скорее всего, он не для Меги, а для того USB-конвертора, который связь с компьютером по USB-линии держит. Поэтому-то я и настаиваю на том, чтобы разыскать его схему.

Впрочем, вы можете прозвонить контакты Меги8, чтобы выяснить, идут ли ножки 9 (PB6) и 10 (PB7) к тому кварцу или нет. Я подозреваю, что к тому кварцу они не идут, а, стало быть, на тот кварц нам рассчитывать нечего.

Цитата(love777888 @ May 4 2015, 22:25) *
По поводу SPI шин я могу их отключать от самой панельки посредством разьема идущего прямо в усилитель, так что если надо зашить сам чип я снимаю 3 шины идущие к ЛС7821 и шью чип, потом подсоединяю и проверяю как управляется та самая наша 7821. Кнопочька ресет стоит прямо в отладочной панельке. Атмега у меня свежая так, что все по умолчанию.

Снова нет уверенности, чья эта кнопка. Может случиться, что это кнопка сброса не Меги8, а USB-шного конвертора. Прозвоните и ее. Точно ли, что она на 1-ножку Меги8 идет?

Цитата(love777888 @ May 4 2015, 22:25) *
Еще раз повторюсь микросхема ЛС7821 уже впаяна и стоит в усилителе, ждет команд от меги8. Питание ЛС7821 +-16 вольт. и она уже запитана в усилке, вы я так понимаю беспокоитесь за питание меги8, я ее запитаю от L7805, т.е 5 вольт, или там на шинах управления будет, что то выше 5-ти вольт.

Я больше боюсь за то, что эти 16 вольт при ошибке согласования земель долбанут по соединяющим линям так, что сгорит не только Мега8, но и программатор вместе с ней. Давайте, от греха подальше, все-таки поставим во все три линии сопряжения Меги8 с LC7821 резисторы 1 ком. В крайнем случае, они спасут.

P.S. Теперь, когда у вас появился 10-ый пост на форуме, ваш почтовый ящик открылся для пользования, и мы можем уйти в подполье. sm.gif Оттуда же можно писать на мыло.

Автор: Xenia May 5 2015, 00:45

Прошивку написала, но при попытке испытать ее на http://electronix.ru/redirect.php?http://77.72.19.18/Temp/avr-p28-sch-my.gif обнаружила, что мне нельзя выдавать напряжения на некоторые из тех пинов, которые я прежде назначила в схеме для работы со светодиодами (PD0, PD2). У меня там RS232-драйвер стоит и кнопка об землю. Причем, плата моя фирменная (http://electronix.ru/redirect.php?https://www.olimex.com/Products/AVR/Proto/AVR-P28-8MHz/) и изменить в ней печатный монтаж я не могу. А потому вынуждена просить у вас прощения за то, что резко изменю схему, махнув местами входные и выходные линии Меги8. Подстраиваться придется вам под меня, т.к. вы вольны изменить свой монтаж, а я нет. Зато в награду вам sm.gif я сделала на новой схеме поддержку всех 6 кнопок и сопряженных с ними светодиодов.

Обновленная схема выглядит теперь так:

Автор: love777888 May 5 2015, 03:05

Вот фьюзы


Вот прогер программатор я буду естественно оключать от самой меги соеденненного с усилком на время испытаний




и ПАНЕЛЬКА К НЕЙ где стомт кварц на 8 мгц

Все бегу на работу, до вечера

 

Автор: Xenia May 5 2015, 05:55

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

Нашла в интернете ее разборку/сборку:



- никакого другого чипа, кроме вставляемой в колодку ATmega8 там нет! Следовательно, то чистый аналог USBasp, в котором Mega8 НЕ ПРОШИВАЕТСЯ САМА, А ПРОШИВАЕТ ДРУГИЕ ЧИПЫ! Т.е. работает она КОНВЕРТОРОМ! При этом она присоединятся через USB-разъем к компьютеру, а прошивает другие чипы через 10-пиновое (5х2) гнездо. Именно в этот разъем разведены: земля, питание, SCK, MOSI, MISO и RESET.

При этом та ATmega8, которая продается в комплекте с программатором (вставлена в него) - не простая, а особенная! В ней уже зашита фирменное ПО для работы в качестве программатора (это прием/передача данных по USB-протоколу + выдача на внешний разъем сигналов SCK, MOSI, MISO и RESET в разной комбинации. А очень возможно, что там закодирован и весь протокол заливки прошивки в чип).

Очень возможно, что чип, прошитый с помощью этого программатора, можно потом вставить ВМЕСТО служебной Меги8 и использовать конструкцию, как отладочный набор. При этом служебная Мега лежит где-то в укромном месте, дожидаясь того часа, когда ее снова вернуть назад, чтобы использовать устройство в качестве программатора.

Чудес не бывает - САМА СЕБЯ ATMEGA8 ЗАПРОГРАММИРОВАТЬ НЕ МОЖЕТ! Только других! А если вы повредите прошивку служебной Меги8, то вашему программатору наступит хана.

Если у вас еще остались сомнения в моей правоте, то вставьте в ваш программатор любую другую Мегу8 и убедитесь, что компьютером это устройство уже не распознается, как девайс. Еще полезно FAQ прочитать про USBasp - там об этом же подробно написано.

Так что вам, так или иначе, придется покупать Мегу8 или Мегу88 для того, чтобы прошивать с помощью того программатора свои прошивки. Соответственно этому, у вас должен быть шлейф, у которого с одной стороны есть колодка, входящяя в гнездо программатора (5х2), а с другой стороны припаяна панелька с другой Мегой - уже той, куда требуется залить прошивку. И лишь потом, когда прошьете, вы можете заменить одну Мегу другой, чтобы использовать программатор по другому назначению. Или покупать сразу пару таких програматоров, чтобы с помощью одного из них прошивать чип, вставленный в другой.

P.S. Прошивка http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as1.zip (под новую схему!)

Автор: love777888 May 5 2015, 07:17

Ксения у меня есть юсб программатор который шьет без проблем мегу 8, и панелька к нему, минимальная отладочная, у которой есть разьемы как для связи с самим программатором, так и со всеми пинами, атмеги. программатор я проверял, сегодня утром показав вам скрин о вопросе с фьзами.

кстати фьюзы и биты оставлять нетронутыми, как с завода?

Автор: Xenia May 5 2015, 07:17

Цитата(love777888 @ May 5 2015, 10:06) *
Ксения у меня есть юсб программатор который шьет без проблем мегу 8, и панелька к нему, минимальная отладочная, у которой есть разьемы как для связи с самим программатором, так и со всеми пинами, атмеги. программатор я проверял, сегодня утром показав вам скрин о вопросе с фьзами.


Тогда берете прошивку и вперед sm.gif. Фузы оставьте заводскими, по даташиту это соответствует рабочей частоте 1 МГц.

Только в течение дня я могу "передумать" и обновить прошивку. Так что скачайте ее СНОВА, после того, как прочте этот мой пост (я ее только что обновила). В дальнейшем имена прошивок будут увеличиваться на единичку и путаницы не будет. Эта (as1.hex) - первая.

Там есть отладочные "хитрости". Сперва все светодиоды должны моргать частотой 1 раз в секунду. Это для проверки рабочей частоты. Проверьте, похожа ли частота на 1 Гц или нет.

После нажатия любой из кнопок моргание должно прекратиться и светодиоды должны управляться кнопками в режиме toggle (каждое нажатие+отпускание кнопки изменяет состояние сопряженного с ней светодиода на обратное). Кнопку нужно держать нажатой долго, не меньше секунды (каждое моргание соответствует опросу кнопок). Но это лишь пока - потом скорость опроса я ускорю (сейчас не могу - иначе вы не сможете оценить частоту морганий).

LC7821 не присоединяйте, пока не выясним работу светодиодов с кнопками. Но управление LC7821 там уже тоже прошито.

Автор: love777888 May 5 2015, 19:27

Ксения скачал я прошивку с 23-го сообщения, значит вспыхивают у меня через некоторое время просто 2 светодиода по портам PC4 и PC5, далее я нажимаю как вы сказали не менее 1 сек кнопки, каждая кнопка зажигает и гасит при последущем нажатии свой светодиод.
После 25 сообщения не увидел ссылки на прошивку где светодиоды мигают с частотой 1 Гц. пока что так...

Автор: Xenia May 5 2015, 19:35

Цитата(love777888 @ May 5 2015, 22:27) *
Ксения скачал я прошивку с 23-го сообщения, значит вспыхивают у меня через некоторое время просто 2 светодиода по портам PC4 и PC5, далее я нажимаю как вы сказали не менее 1 сек кнопки, каждая кнопка зажигает и гасит при последущем нажатии свой светодиод.
После 25 сообщения не увидел ссылки на прошивку где светодиоды мигают с частотой 1 Гц. пока что так...


В частотой пока непонятки, но то, что кнопки работают - уже хорошо. Значит, хватает им того подпора, который создает МК.

Теперь относительно LC7821. Ее кранами управляют 8 внутренних линий (помечены красным), но управление ими идет через shift-регистр, преобразующий последовательный код в параллельный.

Так вот сейчас сделано так, что состояние шести светодиодов (горит или не горит), должны (надеюсь на это) соответствовать младшим шести управлющим линиям внутри микросхемы LC7821 (тем, что покрашены красным). Т.е. каждый светодиод как бы показывает своим светом, состояние одной из тех линий, что управляют кранами.



Однако, линий 8 штук, а светодиодов/кнопок только 6, а потому мы можем проверить только 6 линий из 8-ми. К сожалению, в даташите на LC7821 неясно сказано о том, в какую сторону этот регистр сдвигает. А потому возможны два варианта (верхняя строка с красными цифрами или нижняя). Кроме того, может оказаться ошибка с полярностью сигналов. Поэтому, самым быстрым и простым решением было бы прозвонить краны, чтобы выяснить: изменяются ли их состояние от нажатия кнопок?

Для этого, полагаю, надо засветить оба крайних светодиода (1-ый и 6-ой), что должно вызвать изменение какой-то одной из крайних линий (1-ой или 8-ой). Если ни одна из них не изменится (т.к. управляемые ими краны своего состояния не изменят), то связи с LC7821 нет.

На крайний случай можно просто поиграться кнопками, зажигая и гася светодиоды по очереди, и следить за тем, как это сказывается на работе звуковухи. Т.к. если Мега8 действительно переключает краны, то это должно как-то сказаться на функциях этого устройства.

Автор: love777888 May 6 2015, 06:36

В общем не работает, видимо сигнаны SPI протокола не совпадают с сигналами даташита на микросхему.... Все каналы в ЛС7821 открыты при включении усилка, и не управляются с меги8, при выключении усилка сопротивление всех 8-ми вентилей резко становиться 1-2 мега ома. Так что понимаю микра ЛС7821 работает, да и еще если играться тремя шинами иногда бывает что включается 1 канал иногда 2 канала, микруха по видимому работает, но без управления живет своей жизнью. Вы адрес микросхемы правильно выставили, у меня он 0101, так как S пин сидит на земле. Может у вас есть протеус, с нашим проектом чтобы посмотреть, что твориться на этих трех шинах оссцилографом. Кнопками игрался в любом порядке, команды ЛС7821 не принимает.


Автор: Xenia May 6 2015, 07:47

Цитата(love777888 @ May 6 2015, 09:36) *
Вы адрес микросхемы правильно выставили, у меня он 0101, так как S пин сидит на земле.

Судя по картинке, правильно. Но вставила в прошивку еще одну попытку передачи, с другмм адесом (зеркально отображенным). В принципе можно было бы перебрать все адреса, т.к. их всего 16.

Цитата(love777888 @ May 6 2015, 09:36) *
Может у вас есть протеус, с нашим проектом чтобы посмотреть, что твориться на этих трех шинах оссцилографом. Кнопками игрался в любом порядке, команды ЛС7821 не принимает.

Протеус есть, но я на нем не умею, как следует, работать. Разве что совсем простые случаи, но никак не контроллер с программой. Или вы предлагаете мне на Протеусе эмулировать LC7821?

Новый вариант пошивки для исследования http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as2.zip (as2).

Вариант с перебором всех 16-ти возможных адресов (в надежде, что хоть один сработает) - http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as3.zip (as3).

Автор: Ydaloj May 6 2015, 08:11

Xenia, вы умница wub.gif

Автор: Xenia May 6 2015, 08:27

Цитата(Ydaloj @ May 6 2015, 11:11) *
Xenia, вы умница wub.gif


Неправда. Умницы умеют работать на Протеусе, а я нет. sm.gif

Автор: love777888 May 6 2015, 09:58

Я имел ввиду создать в протеусе макет где только одна мега с кнопками и светодиодами, в протеусе можно подключить осцилограф и там все увидеть, какой программный код на выходе трех шин, в виде изменяющегося напряжения. Насчет умницы это точно!!!! я был удивлен как девушка может шарить в этом всем. Да в протеусе я тоже несилен скачал, а толку ну вобщем вы поняли. Мож кто из заглядывающих в эту тему поможет?

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

Автор: Xenia May 6 2015, 10:03

Цитата(love777888 @ May 6 2015, 12:35) *
Я имел ввиду создать в протеусе макет где только одна мега с кнопками и светодиодами, в протеусе можно подключить осцилограф и там все увидеть, какой программный код на выходе трех шин, в виде изменяющегося напряжения. ... Да в протеусе я тоже несилен скачал, а толку ну вобщем вы поняли. Мож кто из заглядывающих в эту тему поможет?


Мегу + кнопки + светодиоды нет большого смысла эмулировать в Протеусе, т.к. там там и все так ясно. Смысл был бы эмулировать LC7821, только сомневаюсь, что она есть у Протеусе в виде элемента. В моей версии Протеуса (8.0) даже таких компаний, как Sanio и OnSemi нет.



Установки режима SPI, которые я делаю, соответствуют требованиям даташита LC7821 (прием данных по возрастающему фронту SCK). Тайминги у меня с запасом, частота - самая медленная, какую может установить Мега8 (для LC7821 на тайминги установлен только минимальный лимит, а максимальный не ограничен).

Код
SPCR = (1<<SPE) | (1<<MSTR) | (1<<SPR1) | (1<<SPR0);  // enable SPI + master + rising + 1/128 freq (MSB is transmitted first)
//       CPOL=0 : Leading Edge - Rising, Trailing Edge - Falling
//       CPHA=0 : Leading Edge - Sample, Trailing Edge - Setup

Хитрый момент есть лишь с адресами. SPI-интерфейс Меги8 позволяет отправлять только 8-битные посылки (1 байт), тогда как поле адреса 4-битно. Но я закладываю адрес в обе тетрады байта, потому к моменту подьема линии CE, в shift-регистре останет последняя тетрада, тогда как первую он забудет (в момент подъема CE он видит только последние 4 бита).

P.S. Вы проверяли прошивку as3 с полным перебором адреса?

Автор: love777888 May 6 2015, 12:25

Последнюю проверял, ничего не поменялось....Может сама 7821 тоже упалена? Сам себе ответ дать тоже не могу, так как подмены нет, а ждать новые из китая долго...Читал на польских форумах, что частая неисправность в открытых внутренних ключах микросхемы, хотя иногда она стоит закрытой...
Может реализовать на реле все шесть каналов, кнопок шесть на лиц.панели? Есть микросхема из сони, но гарантий 50 на 50. Завтра выпаяю.

Автор: Xenia May 6 2015, 12:50

Цитата(love777888 @ May 6 2015, 15:25) *
Последнюю проверял, ничего не поменялось....Может сама 7821 тоже упалена? Сам себе ответ дать тоже не могу, так как подмены нет, а ждать новые из китая долго...Читал на польских форумах, что частая неисправность в открытых внутренних ключах микросхемы, хотя иногда она стоит закрытой...
Может реализовать на реле все шесть каналов, кнопок шесть на лиц.панели? Есть микросхема из сони, но гарантий 50 на 50. Завтра выпаяю.


Не надо выпаивать! В http://electronix.ru/redirect.php?https://www.terraelectronica.ru/catalog.php?ID=1309&search=LC7821 в Москве такая стоит всего 120 рублей!

Опять же испытая еще не закончены. Могу попытаться сделать (через эти же провода) не через SPI, а вручную ногодрыгом прямо по графику.

Автор: love777888 May 6 2015, 13:03

А вот и нет микра 7821 похоже рабочая, я убрал с RESET питание и все ключи наглухо закрылись, так что проблема с управлением...


Автор: Xenia May 6 2015, 13:11

Цитата(love777888 @ May 6 2015, 16:03) *
А вот и нет микра 7821 похоже рабочая, я убрал с RESET питание и все ключи наглухо закрылись, так что проблема с управлением...


Я тоже так считаю. У программиста всегда есть соблазн считать испорченным железо, но я этот соблазн уже поборола sm.gif.

Автор: love777888 May 6 2015, 13:15

Как будем действовать?

Автор: Xenia May 6 2015, 13:30

Цитата(love777888 @ May 6 2015, 16:15) *
Как будем действовать?

Шейте http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as4.zip (as4). Это еще не ногодрыг, но кое-что проверить надо.

Стоп! Сейчас сменю!

Вот http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as5.zip (as5). Предыдущую не надо испытывать.

Чистый ногодрыг тут http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as6.zip (as6).

Если не пройдет ни один вариант, то попытаться чем-нибудь проверить, появляются ли импульсы в линиях CE, CL, DI в моменты нажатия кнопок.

Автор: love777888 May 6 2015, 15:52

Цитата
Если не пройдет ни один вариант, то попытаться чем-нибудь проверить, появляются ли импульсы в линиях CE, CL, DI в моменты нажатия кнопок.

Про импульсы в момент нажатия кнопок на шинах меняется напруга это я про предыдущие прошивки, и пропротеус там как раз можно все узреть включив три луча программного осцилографа! и про ногодрыг в чем заключается?

Автор: Xenia May 6 2015, 17:22

Цитата(love777888 @ May 6 2015, 18:52) *
Про импульсы в момент нажатия кнопок на шинах меняется напруга это я про предыдущие прошивки, и пропротеус там как раз можно все узреть включив три луча программного осцилографа!

Этого не может быть, поскольку в прошивках as1, as2, as3 была допущена ошибка - уровень CE выдавался не на ногу PB1, а на PB0. Ошиблась при подсчете ног, т.к. PB0 выводится у Меги8 с другой стороны. Ошибку узрела и исправила только, начиная с as4.

Цитата(love777888 @ May 6 2015, 18:52) *
и про ногодрыг в чем заключается?

Это в последний раз (as6), когда автомат SPI я отключила, а передачу бит в LC7821 вела вручную: нужный уровень DI установить, сделать задержку, уровень CL поднять, сделать задержку, уровень CL опустить... и т.д. по протоколу.

P.S. С Протеусом я возиться не стану - ищите себе другого помощника. Варианты прошивок http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as5.rar и http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as6.rar выкладываю (компилятор IAR EWARM 6.50.3). На все вопросы относительно програмного кода готова отвечать. На этом можете считать наше сотрудничество законченным.

Автор: love777888 May 7 2015, 05:48

УРА!!! Вобщем испытал AS5 прошивку, два канала L8R8 L6R6 в микросхеме открываются и закрываются, при нажатии кнопок соответственно PD3 и PD5. Все остальные каналы заперты...Светодиоды зажигаются в инверсии т.е. канал открыт светодиод потушен, надо бы поменять. Я очень надеюсь, что мы дальше продолжим сотрудничество, так как дело сдвинулось с места.

Автор: Xenia May 7 2015, 08:12

Цитата(love777888 @ May 7 2015, 08:48) *
УРА!!! Вобщем испытал AS5 прошивку, два канала L8R8 L6R6 в микросхеме открываются и закрываются, при нажатии кнопок соответственно PD3 и PD5. Все остальные каналы заперты...Светодиоды зажигаются в инверсии т.е. канал открыт светодиод потушен, надо бы поменять. Я очень надеюсь, что мы дальше продолжим сотрудничество, так как дело сдвинулось с места.


Передачу в LC7821 инвертировала.
А кнопки-то со светодиодами нормально работают? Т.е. в начальном проложении все они потушены? Зажигаются все? Долго держать кнопку нажатой больше не приходится?

Очередная прошивка http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as7.zip (as7). Сделана на базе as5 (раз уж она как-то заработала).
Только я перебор адреса убрала - оставила только 5-ый. Если работать не будет, то придется подбирать адрес (а это лишние 4 испытания).

P.S. Микросхема LC7821 вам не нужна? А то сегодня http://electronix.ru/redirect.php?https://www.terraelectronica.ru/catalog.php?ID=1309&search=LC7821 до 115 руб. Пусть не для этого Грюндика, а на вырост для автоматизации чего-нибудь еще? Она, кстати позиционируется, как "СИМС аудио".

Пока с выдачей полная неясность (неясно, куда подевалась PC0). Данные испытаний пока такие:



В дальнейшем желательно привязывать/соотносить работающие краны не с номерами кнопок PD, а с номерами светодиодов PC, т.к. на LC7821 поступают именно последние, тогда как номера у PD смещены на 2 единицы.

Автор: love777888 May 7 2015, 12:20

1. Кнопки со светодиодами работают нормально, но может можно повысить скорость включения/выключения.
В начальном включении диоды включены все, без миганий, далее можно потушить включить каждый...
САМОЕ ГЛАВНОЕ ОТЧЕТ:
Я буду описывать когда все светодиоды выключены и включены и соответственно какой светодиод открыл свой канал в м/с
Еще для легкости я рассматриваю только левые каналы так как правые такие же.



L1 и L2 должны включаться и выключаться кнопками PC0 и PC3, в тоже время L5 и L8 должны быть всегда открытыми это линейные выходы в усилителе на внешние устройства записи или усиления. Если не получиться я перепаяю ноги в мс, но резать дорожки не хочется, так как можно ввести паразитные емкости и соответсвенно наводки 50 Гц еще на входе усилителя.
Далее прошу вас изменить логику управления, т.е. кнопка нажатая должна включить соответствующий вход ну к примеру вход DVD, и затем если выбрать вход CD, то автоматом гаснет вход DVD и активным становится вход CD.
Вы меня извините мож я вас сильно обременяю этой затеей?

Автор: Xenia May 7 2015, 14:26

Цитата(love777888 @ May 7 2015, 15:20) *
Кнопки со светодиодами работают нормально, но может можно повысить скорость включения/выключения.

Да, можно повысить за счет ускорения частоты таймера, по которому производится опрос. Но если бы это была не Мега8, а Мега88, то опрос бы не понадобился, т.к. у последний для этого есть "сигнализация".

Цитата(love777888 @ May 7 2015, 15:20) *
В начальном включении диоды включены все, без миганий, далее можно потушить включить каждый...

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

Цитата(love777888 @ May 7 2015, 15:20) *
Я буду описывать когда все светодиоды выключены и включены и соответственно какой светодиод открыл свой канал в м/с

Это с какой прошивкой? С as5 или as7. Было бы полезно, чтобы вы явно указывали ту прошивку, которая испытывается, без подразумевания того, что эта последняя, т.к. могут быть накладки. Вот и сейчас я гадаю, угадала я адрес или нет. т.е. успели вы подменить as5 на as7 или не успели.

Цитата(love777888 @ May 7 2015, 15:20) *
Вы меня извините мож я вас сильно обременяю этой затеей?

Я сама имею виды на использование этой микросхемы, а потому и взялась вам помогать. Ну, может быть не именно LC7821, но находилась в поисках. А тут ваш пост и подвернулся. Я посмотрела даташит и решила, что для моих целей LC7821 годится. Вот и стала вам помогать делать для нее управление, т.к. оно нужно и мне самой.

Автор: love777888 May 7 2015, 14:46

прошу прощения речь шла о последней as7.

И еще забыл со всем С ДНЕМ РАДИО ПОЗДРАВЛЯЮ!!!

Автор: love777888 May 7 2015, 20:22

Добавляю протеус где видно что первые каналы работают независимо включены свдиоды или нет. В протеусе тоже при запуске вспыхивают все диоды.




Сама модель протеуса
 switcher.rar ( 13.99 килобайт ) : 49

Перед тем как запустить модель нажмите редактировать на самой атмеге и загрузите AS7

Автор: Xenia May 7 2015, 21:10

Та картинка, которую вы прислали, противоречит вашему более раннему утверждению:

Цитата(love777888 @ May 7 2015, 08:48) *
... два канала L8R8 L6R6 в микросхеме открываются и закрываются, при нажатии кнопок соответственно PD3 и PD5. Все остальные каналы заперты./quote]т.к. L8К8 переключает все-таки PC0,а не PС1. Т.е. на картинке правильно, а в цитате неверно.


По моим представлениям вперед пока идти рано, надо разобраться до конца, прежде чем программировать аудио-режимы. Протестируйте http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as8.zip. Если будет "слушаться руля", то результат будет в корне отличный про предыдущих (я инвертировала поток бит на противоположный).
Посл испытаний напишите, что изменилось.

Автор: love777888 May 8 2015, 05:06

Ксения ОТЧЕТ ПО AS8
Запускается схема с ВЫКЛЮЧЕННЫМИ СВЕТОДИОДАМИ, что есть хорошо
Прикладываю рисунок. СИНИМ ЦВЕТОМ УПРАВЛЯЕМЫЕ КАНАЛЫ


КАНАЛЫ L7R7 & L8R8 ВСЕГА ОТКРЫТЫ
ПРИКЛАДЫВАЮ ПРОТЕУС

ПОКАЗАН МОМЕНТ ВКЛЮЧЕНИЯ

ПОКАЗАН МОМЕНТ ГДЕ ВСЕ КАНАЛЫ ВКЛЮЧЕНЫ

ПОКАЗАН РАНДОМ ЧЕРЕЗ ОДИН ВКЛЮЧЕНЫ КАНАЛЫ

Автор: Xenia May 8 2015, 08:33

Цитата(love777888 @ May 8 2015, 08:06) *
Ксения ОТЧЕТ ПО AS8
Запускается схема с ВЫКЛЮЧЕННЫМИ СВЕТОДИОДАМИ, что есть хорошо
Прикладываю рисунок. СИНИМ ЦВЕТОМ УПРАВЛЯЕМЫЕ КАНАЛЫ



Ур-р-ря! Это как раз то, что доктор прописал! Т.е. то, как и задумывалось.

Теперь можно приступить в аудио-функционалу. Тут к вам такой вопрос: можно ли утверждать, что у каждого крана есть только ОДИН светодиод-начальник? То, сколько у светодиода в подчинении кранов, меня не интересует, а интересует только подчиненность кранов. Т.к. бывает ли так, что состояние данного крана (открыт-закрыт) зависит не от одного светодиода, а сразу от нескольких? Типа сложной зависимости, например, когда "кран "открыт только в том случае, если горят светодиоды 3,6,7, но 4 погашен?

Вне зависимости от ответа на предыдущий вопрос, вы можете начинать составлять таблицу функционала:
L1R1 должен быть включен когда [какие светодиоды горят]
L2R2 должен быть включен когда [какие светодиоды горят]
L3R3 должен быть включен когда [какие светодиоды горят]
L4R4 должен быть включен когда [какие светодиоды горят]
L5R5 должен быть включен когда [какие светодиоды горят]
L6R6 должен быть включен когда [какие светодиоды горят]
L7R7 должен быть включен когда [какие светодиоды горят]
L8R8 должен быть включен когда [какие светодиоды горят]
(светодиоды называем именами: PC0, PC1, ..., PC7)

Автор: love777888 May 8 2015, 09:03

можно ли утверждать, что у каждого крана есть только ОДИН светодиод-начальник? ДА КАЖДОМУ СВЕТОДИОДУ ПРИСУЩ СВОЙ КАНАЛ
Другими словами КАЖДЫЙ КАНАЛ должен включаться как захочет пользователь. Т.е. я например нажимаю L1 (кнопка PC0), открывается вентиль, загорается светодиод ЭТОГО КАНАЛА, но при этом все остальные каналы должны быть ЗАПЕРТЫ, Далее надо мне открыть вентиль L2, я нажимаю кнопку (PC1), происходит автоматически ОТКЛЮЧЕНИЕ вентиля L1 и его светодиода, затем включается вентиль L2 и его светодиод.
УСЛОВИЕ ТАКОВО ПРИ РАБОТЕ ОДНОГО ИЗ ВЕНТИЛЕЙ, ВСЕ ОСТАЛЬНЫЕ ДОЛЖНЫ БЫТЬ ЗАПЕРТЫ. ТОЖЕ САМОЕ С ИНДИКАЦИЕЙ РАБОТАЕТ 1 ВСЕ ОСТАЛЬНЫЕ ПОГАШЕНЫ. МЫ НЕ ДЕЛАЕМ МИКШЕРНОЕ УСТРОЙСТВО! А КОММУТАТОР ВХОДОВ УСИЛИТЕЛЯ! Эт я про себя.
ИСКЛЮЧЕНИЕ!!!!
ПРИ ВКЛЮЧЕНИИ СХЕМЫ В РАБОТУ ДОЛЖНЫ БЫТЬ ВСЕГДА ОТКРЫТЫ ВЕНТИЛИ L5 и L8, в схеме на усилитель это ЛИНЕЙНЫЕ выходы и должны быть всегда ОТКРЫТЫ.
Еще для красоты можно было бы включение подверждалось тройным морганием и последущим свечением активного канала?

Автор: Xenia May 8 2015, 09:11

Цитата(love777888 @ May 8 2015, 12:03) *
УСЛОВИЕ ТАКОВО ПРИ РАБОТЕ ОДНОГО ИЗ ВЕНТИЛЕЙ, ВСЕ ОСТАЛЬНЫЕ ДОЛЖНЫ БЫТЬ ЗАПЕРТЫ. ТОЖЕ САМОЕ С ИНДИКАЦИЕЙ РАБОТАЕТ 1 ВСЕ ОСТАЛЬНЫЕ ПОГАШЕНЫ. МЫ НЕ ДЕЛАЕМ МИКШЕРНОЕ УСТРОЙСТВО! А КОММУТАТОР ВХОДОВ УСИЛИТЕЛЯ! Эт я про себя.
ИСКЛЮЧЕНИЕ!!!!
ПРИ ВКЛЮЧЕНИИ СХЕМЫ В РАБОТУ ДОЛЖНЫ БЫТЬ ВСЕГДА ОТКРЫТЫ ВЕНТИЛИ L5 и L8, в схеме на усилитель это ЛИНЕЙНЫЕ выходы и должны быть всегда ОТКРЫТЫ.
Еще для красоты можно было бы включение подверждалось тройным морганием и последущим свечением активного канала?


Правильно ли я вас поняла, что на пульте не может одновременно гореть более одного светодиода? Или все-таки бывает случай, когда горят два или более?

P.S. Тогда вам придется не ограничиться объяснением, а все-таки заполнить табличку, хотя и другого вида:
PC0 когда горит, включены краны [какие]
PC1 когда горит, включены краны [какие]
PC2 когда горит, включены краны [какие]
PC3 когда горит, включены краны [какие]
PC4 когда горит, включены краны [какие]
PC5 когда горит, включены краны [какие]
А то микроконтроллер объяснений не понимает, а понимает только таблички.

Автор: love777888 May 8 2015, 12:52

На клавиатуре ДОЛЖЕН ГОРЕТЬ ОДИН ДИОД и АКТИВЕН ТОЛЬКО ОДИН КАНАЛ!!!
ТАБЛИЦА:
PC0 когда горит, включены краны [L1R1]
PC1 когда горит, включены краны [L2R2]
PC2 когда горит, включены краны [L3R3]
PC3 когда горит, включены краны [L4R4]
PC4 когда горит, включены краны [L6R6]
PC5 когда горит, включены краны [L7R7]
ИСКЛЮЧЕНИЕ
БИТЫ ОТВЕЧАЮЩИЕ ЗА L5R5 & L8R8 ДОЛЖНЫ БЫТЬ ВКЛЮЧЕНЫ ВСЕГДА ПРИ ЛЮБОМ РАСКЛАДЕ ЭТО ЛИНЕЙНЫЕ ВЫХОДЫ УСИЛИТЕЛЯ!

Автор: Xenia May 8 2015, 13:00

Цитата(love777888 @ May 8 2015, 15:52) *
На клавиатуре ДОЛЖЕН ГОРЕТЬ ОДИН ДИОД и АКТИВЕН ТОЛЬКО ОДИН КАНАЛ!!!
ТАБЛИЦА:
PC0 когда горит, включены краны [L1R1]
PC1 когда горит, включены краны [L2R2]
PC2 когда горит, включены краны [L3R3]
PC3 когда горит, включены краны [L4R4]
PC4 когда горит, включены краны [L6R6]
PC5 когда горит, включены краны [L7R7]
ИСКЛЮЧЕНИЕ
БИТЫ ОТВЕЧАЮЩИЕ ЗА L5R5 & L8R8 ДОЛЖНЫ БЫТЬ ВКЛЮЧЕНЫ ВСЕГДА ПРИ ЛЮБОМ РАСКЛАДЕ ЭТО ЛИНЕЙНЫЕ ВЫХОДЫ УСИЛИТЕЛЯ!


Тогда для микроконтроллера табличка будет выглядеть так:
PC0 когда горит, включены краны [L1R1, L5R5, L8R8]
PC1 когда горит, включены краны [L2R2, L5R5, L8R8]
PC2 когда горит, включены краны [L3R3, L5R5, L8R8]
PC3 когда горит, включены краны [L4R4, L5R5, L8R8]
PC4 когда горит, включены краны [L6R6, L5R5, L8R8]
PC5 когда горит, включены краны [L7R7, L5R5, L8R8]
когда ничего не горит включены краны [L5R5, L8R8]
Так?

Автор: love777888 May 8 2015, 14:38

Тогда для микроконтроллера табличка будет выглядеть так:
PC0 когда горит, включены краны [L1R1, L5R5, L8R8]
PC1 когда горит, включены краны [L2R2, L5R5, L8R8]
PC2 когда горит, включены краны [L3R3, L5R5, L8R8]
PC3 когда горит, включены краны [L4R4, L5R5, L8R8]
PC4 когда горит, включены краны [L6R6, L5R5, L8R8]
PC5 когда горит, включены краны [L7R7, L5R5, L8R8]
когда ничего не горит включены краны [L5R5, L8R8]
Так?
ДА ТАК.
ДЛЯ НАГЛЯДНОСТИ ВЫКЛАДЫВАЮ КАК ДОЛЖНО СВЕТИТЬСЯ НА ПАНЕЛИ УСИЛИТЕЛЯ В СМЫСЛЕ ДИОДЫ, ВИДИТЕ НА ЛИЦЕВОЙ ПАНЕЛИ ШЕСТЬ ВХОДОВ, СВЕТИТЬСЯ ОДИН.


СТОП ЕЩЕ НА УСИЛИТЕЛЕ ВСЕГДА ДОЛЖЕН БЫТЬ ПРИ ВКЛЮЧЕНИИ ВКЛЮЧЕН КАКОЙ НИБУДЬ КАНАЛ НУ НАПРИМЕР PCO, СОСТОЯНИЯ КОГДА ВСЕ ВЫКЛЮЧЕНО ТАКОГО НЕТ.
И ЕЩЕ ПРИ ПЕРЕХОДЕ НАПРИМЕР PCO НА ДРУГОЙ КАКОЙ НИБУДЬ КАНАЛ НАПРИМЕР PC5, ГАСНЕТ СВЕТОДИОД И СТАНОВИТЬСЯ НЕАКТИВНЫМ PC0, А PC5 СВЕТИТЬСЯ И ЧЕРЕЗ ЭТОТ КАНАЛ ПОСТУПАЕТ ЗВУК. МОЖЕТ ЛИ БЫТЬ ЧТО ВКЛЮЧЕНИЕ ЛЮБОГО КАНАЛА СОПРОВОЖДАЛОСЬ ТРОЙНЫМ МИГАНИЕМ СВЕТОДИОДА ПРИМЕРНО 1ГЦ? НЕПЛОХО БЫЛО БЫ ЧТО БЫ ПОСЛЕДНЕЕ СОСТОЯНИЕ ПОМНИЛ КОНТРОЛЛЕР Т.Е. ПОСЛЕДНИЙ ВКЛЮЧЕНЫЙ КАНАЛ. НУ ЭТО КАК У ВАС ПОЛУЧИТЬСЯ...

Автор: Xenia May 8 2015, 15:42

Цитата(love777888 @ May 8 2015, 17:38) *
ДЛЯ НАГЛЯДНОСТИ ВЫКЛАДЫВАЮ КАК ДОЛЖНО СВЕТИТЬСЯ НА ПАНЕЛИ УСИЛИТЕЛЯ В СМЫСЛЕ ДИОДЫ, ВИДИТЕ НА ЛИЦЕВОЙ ПАНЕЛИ ШЕСТЬ ВХОДОВ, СВЕТИТЬСЯ ОДИН.
СТОП ЕЩЕ НА УСИЛИТЕЛЕ ВСЕГДА ДОЛЖЕН БЫТЬ ПРИ ВКЛЮЧЕНИИ ВКЛЮЧЕН КАКОЙ НИБУДЬ КАНАЛ НУ НАПРИМЕР PCO, СОСТОЯНИЯ КОГДА ВСЕ ВЫКЛЮЧЕНО ТАКОГО НЕТ.
И ЕЩЕ ПРИ ПЕРЕХОДЕ НАПРИМЕР PCO НА ДРУГОЙ КАКОЙ НИБУДЬ КАНАЛ НАПРИМЕР PC5, ГАСНЕТ СВЕТОДИОД И СТАНОВИТЬСЯ НЕАКТИВНЫМ PC0, А PC5 СВЕТИТЬСЯ И ЧЕРЕЗ ЭТОТ КАНАЛ ПОСТУПАЕТ ЗВУК. НЕПЛОХО БЫЛО БЫ ЧТО БЫ ПОСЛЕДНЕЕ СОСТОЯНИЕ ПОМНИЛ КОНТРОЛЛЕР Т.Е. ПОСЛЕДНИЙ ВКЛЮЧЕННЫЙ КАНАЛ. НУ ЭТО КАК У ВАС ПОЛУЧИТЬСЯ...


Теперь понятно. Вы правильно сделали, что выложили фото приборной панели, теперь многое прояснилось.

Осталось неясно, что будет (должно быть), если нажать кнопку там, где светодиод уже горит. Он не должен выключаться?

Автор: love777888 May 8 2015, 16:50

НЕТ ЕСЛИ ПОВТОРНО НАЖАТЬ ВСЕРАВНО ОН ДОЛЖЕН ГОРЕТЬ, ТРИГГЕРНОГО ВКЛЮЧЕНИЯ ТУТ НЕ ДОЛЖНО БЫТЬ, Я ВЫБРАЛ ВХОД AUX ЗНАЧИТ ОН АКТИВЕН И ГОРИТ ЕСЛИ ДАЖЕ ПОВТОРНО НА НЕГО НАЖАТЬ, НАЖАЛ TUNER ВКЛЮЧИЛСЯ-ЗАГОРЕЛСЯ ВХОД ТЮНЕРА, А АУКС ПОГАС. И.Т.Д.

Не надо писать всё сообщение в верхнем регистре, это неуместно. Во-первых, не добавляет ему никакого веса, во-вторых, ассоциируется с криком.

Автор: Xenia May 9 2015, 13:43

Готово! Встречайте http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as9.zip. Можете тестировать Протеусом - я не обижусь sm.gif.

Автор: love777888 May 9 2015, 20:24

КСЕНИЯ ВЫ ТАЛАНТИЩЕ! a14.gif
Все работает как надо, прикладываю proteus:





Теперь вопросы
Можете ли вы сюда прикрепить пду?
Задержку включения выходных реле усилителя?
Может необходимо менять контроллер, на более распинованый ту же 162 серию? Или добавлять еще одну атмегу8 (она у меня есть).

Автор: Xenia May 10 2015, 01:12

Цитата(love777888 @ May 9 2015, 23:24) *
КСЕНИЯ ВЫ ТАЛАНТИЩЕ! a14.gif

Это я и сама давно знаю. sm.gif

Цитата(love777888 @ May 9 2015, 23:24) *
Все работает как надо, прикладываю proteus:

1) А на железе вы это тестировали?
2) Начальное состояние (после включения в сеть до нажатия каких-либо кнопок) устанавливается верно?
3) L5R5 и L8R8 включены всегда?
4) Скорость опроса кнопок нормальная? Долго держать нажатой не приходится?

Цитата(love777888 @ May 9 2015, 23:24) *
Теперь вопросы
Можете ли вы сюда прикрепить пду?

Боюсь, что не могу. Все пульты разные, а такого, как у вас, у меня нет. Поэтому дистанционная работа с ним по переписке затянулась бы на годы.

Причем, меня смущает не кодировка команд, а разница в "несущей частоте", т.е. той частоте, с которой поступают импульсы. Т.к. никакой линии синхронизации здесь нет, а потому остается надежда только на то, что импульсы следуют с периодом, о котором передающее и принимающее устройство уже предварительно договорились. Впрочем, я твердо не уверена, что протокол RC5 использует временную сигнализацию, однако сильно сомневаюсь, что при приеме приходится измерять время между соседними импульсами.

Например, у Philips она такая:

но у других фирм может быть иной. Но я не могу исключить и того, что период 1.778 ms может быть каким-то международным стандартом.

Цитата(love777888 @ May 9 2015, 23:24) *
Может необходимо менять контроллер, на более распинованый ту же 162 серию? Или добавлять еще одну атмегу8 (она у меня есть).

Нынешняя прошивка использует только 13% флеши (памяти кода), а потому места в этой Меге8 еще много. Ножки INT0 (PD2) и INT1 (PD2), способные у Меги8 реагировать на внешнее прерывание, уже заняты кнопками. Переносить эти кнопки в другое место сильно не хочется, т.к. тогда они не будут расположены на порту PD в порядке последовательного возрастания номеров битов. Но если сильно припрет, то в принципе можно сделать и сортировку бит, добывая их из хаотического порядка.

Однако, в интернете нашла две схемы. http://electronix.ru/redirect.php?http://avrproject.ru/publ/protokol_rc5_bascom_avr/1-1-0-30 использует в качестве входа от фотодатчика линию INT0 (PD2), которая у нас занята:


http://electronix.ru/redirect.php?http://kibermaster.net/priem-komand-s-pulta-distantsionnogo-upravleniya/ использует в качестве входа от фотодатчика линию ICP (PB0), которая у нас свободна:

А потому, вторая схема нам бы подошла. Однако вытянуть из этой статьи программный код мне не удалось. Те же куски программы, которые там обсуждают, относятся к программированию реакции на уже расшифрованный RC5-код. А именно, берут его уже готовым из структуры "rc5.command" после появления признака готовности "rc5.dataOK". Сам же код приема и дешифровки, похоже, зарыт в в файлах rc5.h + rc5.c, который автор программы включает извне.

Посмотрите эту статью сами! Возможно, вам удастся найти файлы rc5.h и rc5.c для этого случая, тем более что в комментариях идут разговоры, подразумевающие, что комментаторы этим кодом воспользоваться смогли - т.е. знали, откуда их надо качать.

Цитата(love777888 @ May 9 2015, 23:24) *
Задержку включения выходных реле усилителя?

Про это объясните подробнее - между какими двумя событиями эта задержка и какой продолжительности она должна быть.

P.S. Впрочем, бывают аппаратные RC5-декодеры, например, http://electronix.ru/redirect.php?http://www.sunrom.com/media/files/p/81/ST3617-datasheet.pdf. Только в продаже я их никогда не видела.

Автор: demiurg1978 May 10 2015, 05:20

Цитата(Xenia @ May 10 2015, 07:12) *
Про это объясните подробнее - между какими двумя событиями эта задержка и какой продолжительности она должна быть.

Реле коммутируют динамики. После включения питания уселка через несколько секунд должны включиться реле. Это делается для того, чтобы не было громких щелчков в динамиках при включении усилителя. 10 с за глаза.

Ксения, здравствуйте. Хотел бы попросить у вас какой-нибудь проект с опросом кнопок, матричной клавиатуры, символьным дисплеем.
1 - Посмотреть на ваш стиль.
2 - Как у вас реализованы: взаимодествие модулей. Организация таймеров.

Ну и этот проект, если не трудно...

Автор: Xenia May 10 2015, 05:38

Цитата(demiurg1978 @ May 10 2015, 08:20) *
Ксения, здравствуйте. Хотел бы попросить у вас какой-нибудь проект с опросом кнопок, матричной клавиатуры, символьным дисплеем.
1 - Посмотреть на ваш стиль.
2 - Как у вас реализованы: взаимодействие модулей. Организация таймеров.
Ну и этот проект, если не трудно...


Вы верно смеетесь? Какие модули, если в программе всего 40 строк кода, относящихся к делу? Да и мой стиль оттуда никак не следует.

Таймер пока используется только один (Timer 1) и то только для периодического опроса состояния кнопок (с периодом 10 мс). Хотя в данной задаче можно было бы опрашивать кнопки в главном цикле main(), не используя таймер.

Матричной клавиатуры и символьным дисплеем я обычно не пользуюсь, за отсутствием таковых sm.gif. Однако интенсивно пользуюсь UART'ом: я это дело не афишировала, но даже в этом проекте Мега8 ведет диалог по UART'у с ПК, работающим в роли терминала (программа Terminal), через которую я "вижу", как работает алгоритм. Именно поэтому я встала горой, чтобы не использовать PD0 и PD1 под кнопки (там TX и RX находятся).

Когда проект будет готов, я вам его исходники пришлю. А промежуточные варианты кода вы можете найти в этой теме (ссылки на rar-архивы в сообщении #41).

Автор: demiurg1978 May 10 2015, 05:43

Цитата(Xenia @ May 10 2015, 11:38) *
Вы верно смеетесь? Какие модули, если в программе 40 строк кода? Да и мой стиль оттуда никак не следует.

Никто не смеется. Хотел бы посмотреть какой-нибудь ваш проект. Отсюда - модули. Интересуют: определения, макросы пинов МК. Применение программных таймеров. Взаимодействие модулей. могу дать контакты, чтобы выложить архив.

Автор: Xenia May 10 2015, 05:49

Цитата(demiurg1978 @ May 10 2015, 08:43) *
Никто не смеется. Хотел бы посмотреть какой-нибудь ваш проект. Отсюда - модули. Интересуют: определения, макросы пинов МК. Применение программных таймеров. Взаимодействие модулей. могу дать контакты, чтобы выложить архив.


Если просто посмотреть, то я вам покрупнее проект пришлю (многомодульный). Послала в личку.

Автор: love777888 May 10 2015, 06:48

Ксения добрый день.
1) Да на железе все работает и поет.
2) Начальное состояние после включения в сеть устанавливается верно, горит один диод, при повторном включении в сеть тот же горит
3) L5R5 и L8R8 включены всегда.
4) Скорость опроса кнопок нормальная.
5) А почему бы нам не обучать командам пульта микроконтроллер? , я хочу Вам предложить две интересные ссылки, http://electronix.ru/redirect.php?http://forum.cxem.net/index.php?showtopic=141257, http://electronix.ru/redirect.php?http://cxem.net/sound/soundpred/soundpred28.php.
Там есть исходники.
6) Задержка нужна на время переходных процессов в самом усилителе при включении сетевой кнопки, чтобы не было хлопков в АС, я думаю секунд 5 хватит.
7) Повторюсь если надо у меня есть еще три Атмеги8, если реализация станет из за недобора ножек, или пойти купить 162-ю?

Автор: Xenia May 10 2015, 08:01

Цитата(love777888 @ May 10 2015, 09:48) *
5) А почему бы нам не обучать командам пульта микроконтроллер? , я хочу Вам предложить две интересные ссылки, http://electronix.ru/redirect.php?http://forum.cxem.net/index.php?showtopic=141257, http://electronix.ru/redirect.php?http://cxem.net/sound/soundpred/soundpred28.php.
Там есть исходники.

Я уже объясняла этот момент - оба предложенных вами варианта используют для присоединения фотодатчика ногу INT0 (PD2), а у нас она занята кнопкой.

Цитата(love777888 @ May 10 2015, 09:48) *
6) Задержка нужна на время переходных процессов в самом усилителе при включении сетевой кнопки, чтобы не было хлопков в АС, я думаю секунд 5 хватит.

Это понятно, но что должны делать светодиоды втечение этих 5-ти секунд? (про LC7821 ясно - все ее краны пока закрыты).

Цитата(love777888 @ May 10 2015, 09:48) *
7) Повторюсь если надо у меня есть еще три Атмеги8, если реализация станет из за недобора ножек, или пойти купить 162-ю?

Ничего покупать пока не надо, т.к. фотодатчик для своего присоединения требует всего лишь одну единственную ногу, которую у Меги8 в общем-то сыскать можно, если постараться. Именно поэтому мне больше нравится вариант с ногой PB0, которая у нас свободна. Исходник я добыла.

Какой у вас фотодатчик есть в наличии? В схеме стоит TSOP1736 (он как раз на 36 Кгц, как у Philips). TSOP31236 видимо тоже годится. У вас что-нибудь из этого есть?

P.S. Взгляните на статью в Википедии "http://electronix.ru/redirect.php?https://ru.wikipedia.org/wiki/%D0%9F%D1%83%D0%BB%D1%8C%D1%82_%D0%B4%D0%B8%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9C.D0.BE.D0.B4.D1.83.D0.BB.D1.8F.D1.86.D0.B8.D1.8F" в разделе "Модуляция". Какой у вас пульт? Т.е. нам сейчас надо отгадать его частоту, т.к. от этого будет зависеть выбор фотодиода.

Автор: love777888 May 10 2015, 11:27

1) Про задержку...под эти нужды нам необходимо выделить отдельный порт, который будет управлять базой транзисторов включающего отдельные два реле. Два этих реле это акустическая система А и акустическая система B. Поэтому шунтировать выходы LC7821 не надо. Прикладываю схему.


Про датчик...В Грундике стоит TFMS5360, частота 36 Кгц.

Автор: Xenia May 10 2015, 11:48

Цитата(love777888 @ May 10 2015, 14:27) *
1) Про задержку...под эти нужды нам необходимо выделить отдельный порт, который будет управлять базой транзисторов включающего отдельные два реле. Два этих реле это акустическая система А и акустическая система B. Поэтому шунтировать выходы LC7821 не надо. Прикладываю схему.

Зачем же целый порт, если там всего два провода?
Кстати, а нельзя ли их объединить между собой? Т.е. RSPK-A и RSPK-B? Или им разная задержка нужна?

Цитата(love777888 @ May 10 2015, 14:27) *
Про датчик...В Грундике стоит TFMS5360, частота 36 Кгц.

Хорошо, хоть с частотой есть определенность. А где я себе такой возьму, чтобы на нем тренироваться? sm.gif

Автор: love777888 May 10 2015, 12:03

1) Объединить можно и нужно, включаются они одинаково, по поводу порта я имел ввиду ножку атмеги...
2) Это вопрос, даже и не знаю что вам ответить, я бы вам помог, так как этого добра со старых теликов хватает, но нахожусь в Бресте...
3) Вопрос нельзя ли реализовать, кнопки на атмегу в таком виде, как в грундике, мы бы освободили с Вами некоторое количество ножек контроллера фото прикрепляю


Автор: Xenia May 10 2015, 12:16

Цитата(love777888 @ May 10 2015, 14:27) *
Про датчик...В Грундике стоит TFMS5360, частота 36 Кгц.

На кусок схемы посмотреть хочу, где TFMS5360 стоит. А лучше так уж всю схему мне прислать, если она в электронном виде у вас есть. sm.gif

Цитата(love777888 @ May 10 2015, 15:03) *
1) Объединить можно и нужно, включаются они одинаково, по поводу порта я имел ввиду ножку атмеги...

Если можно объединить, то объединенный провод можно бросить на ножку PB2, она пока свободна.

Цитата(love777888 @ May 10 2015, 15:03) *
3) Вопрос нельзя ли реализовать, кнопки на атмегу в таком виде, как в грундике, мы бы освободили с Вами некоторое количество ножек контроллера фото прикрепляю.

Откуда же у вас такая прорва кнопок? Целых 20 штук! А говорили, только шесть.

На счет определения нажатой кнопки по измерению напряжения на цепочке резисторов, то я от этой затеи не в восторге. И это еще слабо сказано. Туго представляю себе, что будет, если нажать несколько кнопок сразу. Да и малонадежно это. И, наконец, как я это у себя проверять стану? - Ведь у меня кнопок в такой связке нет.


Автор: love777888 May 10 2015, 12:45

1) Ножку PB2 я задействую с выходом новой прошивки.
2) Целых 20 штук, это все есть в схеме самого грундика там уйма кнопок и все они неработают так как упален процессор, я показал их для примера, что бы узнать ваше мнение. Но я понял что это будет не надежно, а надежность это первое, что нам надо.
3) Что делать будем дальше? Может протестим задержку?

Автор: Xenia May 10 2015, 13:02

Цитата(love777888 @ May 10 2015, 15:45) *
2) Целых 20 штук, это все есть в схеме самого грундика там уйма кнопок и все они не работают так как удален процессор, я показал их для примера, что бы узнать ваше мнение. Но я понял что это будет не надежно, а надежность это первое, что нам надо.

Но те 6 кнопок, которые на переднюю панель выведены (вы фото показывали), из числа этих 20-ти или они другие?

И как вы их на Мегу8 вывели, если они к резисторам припаяны? Отдирать пришлось?

Цитата(love777888 @ May 10 2015, 15:45) *
1) Ножку PB2 я задействую с выходом новой прошивки.
3) Что делать будем дальше? Может протестим задержку?

Да. Вот она - http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as10.zip. Линии RSPK-A и RSPK-B заводите на PB2.

P.S. Про TFMS5360 ответьте (1-ый вопрос моего предыдущего поста)!

Автор: demiurg1978 May 10 2015, 13:16

Кнопки матрицей подключены или общий провод и от каждой кнопки вывод? Я бы предложил такой вариант. Сесть, продумать, записать. Какие входы (кнопки, фотодатчик), какие выходы (светодиоды, управление звуковой МС) предполагаются по максисмуму. Будет ясно какой МК брать. Потом потихоньку добавлять функционал.

Автор: Xenia May 10 2015, 14:42

love777888, не вижу вашего ответа ответа на свой вопрос:

Цитата(Xenia @ May 10 2015, 11:01) *
Это понятно, но что должны делать светодиоды втечение этих 5-ти секунд? (про LC7821 ясно - все ее краны пока закрыты).

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

Цитата(demiurg1978 @ May 10 2015, 16:16) *
Кнопки матрицей подключены или общий провод и от каждой кнопки вывод? Я бы предложил такой вариант. Сесть, продумать, записать. Какие входы (кнопки, фотодатчик), какие выходы (светодиоды, управление звуковой МС) предполагаются по максисмуму. Будет ясно какой МК брать. Потом потихоньку добавлять функционал.

Сейчас каждая кнопка подключена к отдельному пину Меги8, при нажатии закорачивая его на землю. А про то, как эти кнопки были раньше соединены в Грюндике, о том меня в известность не ставили.

Дык, я с самого начала предлагала Мегу162 с 40-ногами, но ее достать не удалось (или не очень хотелось). Вот и приходится тесниться в Меге8. Тем паче, что аппетит приходит во время еды - по ходу дела вводятся новые требования/пожелания, о которых в начале разговора не было.

На AVR свет клином сошелся sm.gif из-за того, что в этом Грюндике питание 5-вольтовое, для них уже и программатор есть, и опыт работы с ним, и сам чип (ATmega8) в наличии. Поэтому дело сильно бы затянулось, если бы мы приступили к освоению нового с нуля. Т.е. мы бы тогда за это время даже с места не сдвинулись, а только лясы, да балясы точили. А сейчас уже большая часть дела сделана.

Автор: demiurg1978 May 10 2015, 15:05

Пусть ТС даст фото своего усилителя. Распишет все кнопки, светодиоды. С реле понятно, фотодатчиком тоже. Микросхема усилителя. В общем весь расклад.

Автор: love777888 May 10 2015, 15:08

Я извиняюсь.
1) По поводу LC7821, индикации, больше ничего не надо доделывать и придумывать...Тут все работает как часики.
2) Схему я выслал Вам на ваш адрес ловите.
3) Схему задержки протестирую, как можно скорее. Но только завтра не обижайтесь я на работе...
4) Все кнопки стоящие в усилителе я не использую, а если буду использовать то строго в соответствии с вашей схемой...мы же поставили атмега заместо родного процессора, поэтому все строго схема есть схема.
5) Я понимаю что весь функционал этого усилка нам не поднять, но сделанный коммутатор это уже что то
P.S Еще раз извиняюсь, может Скайп и.т,д. нам поможет, здесь неувязка происходит с ответами. Просто один раз переписаться и все выяснить, если что скиньте на мыло как с Вами связаться, адрес у вас должен быть как и схема на усь.

Автор: Xenia May 10 2015, 15:11

Цитата(demiurg1978 @ May 10 2015, 18:05) *
Пусть ТС даст фото своего усилителя. Распишет все кнопки, светодиоды. С реле понятно, фотодатчиком тоже. Микросхема усилителя. В общем весь расклад.


Так он и дал это фото, вот оно:

На нем 6 светодиодов и 10 кнопок. Но почему на схеме кнопок оказалось 20 штук - загадка природы. sm.gif

Автор: love777888 May 10 2015, 15:30

Я дал и показал именно то что мы делали на тот момент, снизу есть крышечка которая откидывается, там все кнопки, но самое главное уже сделано, это коммутация, о чем и велась речь...


На фото виден валкодер, он приводится в движение мотором постоянного тока через редуктор, схему управления я показывал, на 1-2 странице, только для этого мне нужен пду. И если получиться то включать выключать усилитель (переводить его в дежурный режим).

Пишите буду отвечать с телефона, я на работу

Автор: Xenia May 10 2015, 15:39

Цитата(love777888 @ May 10 2015, 18:30) *
Я дал и показал именно то что мы делали на тот момент, снизу есть крышечка которая откидывается, там все кнопки, но самое главное уже сделано, это коммутация, о чем и велась речь...

Ух ты! Ну никогда бы не подумала, что эта панель открывается - на вид весь низ литой. Верхушка бы еще поверила, что откидывается, но про низ никогда бы не подумала.

Автор: love777888 May 10 2015, 15:52

Я сам не знал при первом взгляде, когда его неиправным покупал. Вы схему смотрели?

Автор: Xenia May 10 2015, 16:04

Цитата(love777888 @ May 10 2015, 18:52) *
Я сам не знал при первом взгляде, когда его неиправным покупал. Вы схему смотрели?


Да.

Автор: love777888 May 10 2015, 16:06

надеюсь многое прояснилось?

Автор: Xenia May 10 2015, 16:22

Цитата(love777888 @ May 10 2015, 19:06) *
надеюсь многое прояснилось?


Прояснилось. Только не пойму, как вы эти кнопки к Меге8 присоединять будете (или уже присоединили?) - ведь они на этой цепочке резисторов очень неудобно для этого висят.

Автор: love777888 May 10 2015, 16:26

Все ненужные резисторы выкину, поэтому будем действовать строго по вашей схеме.

Автор: demiurg1978 May 10 2015, 16:51

Если рабочая программа уже есть, то переназначить пины не трудно. Поэтому переосмыслите функционал, что добавить, что поправить. И берите спокойно более жирный МК. Большое кол-во кнопок не страшно. Их можно подключить матрицей или к сдвиговым регистрам. Большое кол-во выходов тоже не страшно. В одном проекте у меня 24 дискретных входа и 16 дискретных выходов.. Реализовано на 74HC165 (входы) и 74HC595 (выходы). МК ATMEGA32A.

Автор: love777888 May 10 2015, 17:11

Поддерживаю завтра попытаюсь узнать есть ли 162 атмега у наших местных барыг.

Автор: Xenia May 10 2015, 17:38

Цитата(demiurg1978 @ May 10 2015, 19:51) *
И берите спокойно более жирный МК. Большое кол-во кнопок не страшно. Их можно подключить матрицей или к сдвиговым регистрам. Большое кол-во выходов тоже не страшно. В одном проекте у меня 24 дискретных входа и 16 дискретных выходов.. Реализовано на 74HC165 (входы) и 74HC595 (выходы). МК ATMEGA32A.

"Жирный" в каком смысле? sm.gif Логика в этой задаче примитивная - много памяти не надо и большая скорость не нужна. Там родной-то МК тоже был 8-битник, 24К флеша + 512 ОЗУ, но выполнял гораздо больше функций, чем те, на которые мы можем замахнуться. Отсюда получается, что "жирность" состоит только в числе ног sm.gif. У родного из было 80 штук, а у Меги8 их только 28. Отсюда и проблемы.

У Мег в DIP-корпусах максимально 40 ног, а в прочих можно и со 100 ногами найти, только тогда, чтобы с ней контачиться, пришлось бы печатную плату под нее делать. Тогда как для DIP-корпусных вся схема собирается прямо на панельке, куда этот DIP вставляется. Вот и получается, что золотая середина тут - 40-ногая Мега.

Что же касается расширителя вывода, то я бы с удовольствием MAX7301 взяла и на тех же проводах, что и LC7821, повесила (у него адрес другой, а потому и не будет конфликта), но когда глянула, сколько этот MAX7301 в магазине стоит, то осознала, что он где-то в полтора раза дороже Меги. А при таком раскладе выгоднее брать многоногую Мегу с небольшой памятью, чтобы подешевле было. А среди 40-ножек 8515-я и 8535-я уже устарели функционально, а 162-я в самый раз. Да и то - смотрю на ценик, дивлюсь - цена уже за 300 руб перевалила (в DIP-корпусе они отчего-то дороже стоят). Я когда-то за 80 руб покупала, да еще считала, что дорого.

Цитата(love777888 @ May 10 2015, 20:11) *
Поддерживаю завтра попытаюсь узнать есть ли 162 атмега у наших местных барыг.

Тогда и панельку для нее не забудьте купить.

Автор: love777888 May 10 2015, 17:44

Ок

Автор: Xenia May 10 2015, 18:00

Примерно так выглядел бы идеал для этой задачи (http://electronix.ru/redirect.php?https://www.terraelectronica.ru/catalog_info.php?CODE=176486):

но цена вовсе непотребная.

Это компания http://electronix.ru/redirect.php?http://www.chip45.com специализируется на том, чтобы разводить чипы микроконтроллеров на мелких палатах с контактами на краях с минимальной обвязкой. Общий список изделий такого рода можно посмотреть http://electronix.ru/redirect.php?http://www.chip45.com/suche.php. Порой бывает просто анекдотично, когда такую платку можно запихнуть ножками в панельку DIP-40. sm.gif

Самая дешевая из многоножечных AVR, видимо, эта - http://electronix.ru/redirect.php?http://www.chip45.com/products/crumb128-light_avr_atmega_module_board_atmega128.php (14.95 EUR):



Тут только кварц и штырьковый разъем для прошивки.

Впрочем, здесь на форуме полно умельцев, которые сами могут килограммами такие платы делать sm.gif, только я к их числу, к сожалению, не отношусь.

Автор: demiurg1978 May 10 2015, 20:11

Цитата(Xenia @ May 11 2015, 00:38) *
...

Жирный - в смысле, хотя бы DIP-40, памяти побольше. Аппарат все равно для себя делается, 50-200 рублей переплаты за "жирность" не деньги. Зато запас хороший есть.
Если DIP-40, тогда и цанговую панельку в придачу. Я всегда покупаю панельки, если DIP корпуса. Почему цанговые, потому что как-то я влетел с обычной. Снизу попала канифоль в контакты, и схема не работала. И я очень долго не мог понять в чем дело.

МС расширения ввода-вывода почему-то неоправданно дороги. Поэтому альтернатива - сдвиговые регистры. По поводу устаревания по функционалу. Смотря что делать. Какой функционал будет в девайсе. Я вам в личке ссылку на видео давал. В том проекте 1 (один) аппаратный таймер используется. TIMER0. Программные таймеры.

Платки такие дорого стоят. Намного проще на макетке спаять или вытравить ЛУТом. Но Для ЛУТа нужен законченый проект.

Автор: Xenia May 11 2015, 04:39

Пока предлагаю продолжить опыты на Меге8, тем более что алгоритм RC5, добытый из интернета, написан именно для нее.
Доделываем схему до состояния:

Предыдущая прошивка http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as10.zip уже содержит в себе поддержку фотодатчика с ноги PB0. По задумке пока лишь должно мигать лампочками без переключения LC7821. Надо проводить испытания.

P.S. Если управление от ПДУ заработает, то на кнопки можно было бы вообще рукой махнуть, отказавшись от их поддержки.

Автор: love777888 May 11 2015, 05:03

Ок будет сделано!
Тут неувязочка, скачиваю AS10, качается как AS9, в протеусе PB2 молчит, задержки а потом +5 вольт на пине PB2 нету, прошу перезагрузить файлик.

Автор: Xenia May 11 2015, 05:30

Цитата(love777888 @ May 11 2015, 08:03) *
Ок будет сделано!
Тут неувязочка, скачиваю AS10, качается как AS9, в протеусе PB2 молчит, задержки а потом +5 вольт на пине PB2 нету, прошу перезагрузить файлик.


Возьмите ссылку из моего предыдущего сообщения или из этого. Прошивка as9 этого не умела, нужна http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as10.zip .

А фотодатчик + RC5, как на ваш взгляд, возможно в Протеусе проверить или нет?

Автор: love777888 May 11 2015, 05:38

Что то не то, на пине РВ2 по прежнему ничего не происходит и добавился перезапуск микросхемы каждые 5 секунд, т.е зажигается диод включаются наши осцилограммы проходит 5 сек, перезапуск и опять по новой...


Канал D осцилографа присоединен к РВ2.

Автор: Xenia May 11 2015, 06:18

Цитата(love777888 @ May 11 2015, 08:38) *
Что то не то, на пине РВ2 по прежнему ничего не происходит и добавился перезапуск микросхемы каждые 5 секунд, т.е зажигается диод включаются наши осцилограммы проходит 5 сек, перезапуск и опять по новой...


Понятно. Это watchdog по умолчанию перезапускает контроллер - пауза в 5 сек воспринимается, как зависание. Сейчас попробую отменить.

Хотя странно это, по умолчанию watchdog должен быть отключен:
Цитата
Factory Default Settings for ATmega8.
Watchdog: Off

Опа-па! Сама виновата, поставила в программе watchdog на 2.1 сек. Понятно, что до 5-ти секунд он не дотягивает.

Автор: love777888 May 11 2015, 06:30

это по РВ2 из за него зависает весь контролер?

Автор: Xenia May 11 2015, 06:31

Цитата(love777888 @ May 11 2015, 09:30) *
это по РВ2 из за него зависает весь контролер?


Нет. Контроллер зависает на искусственно сделанной паузе в 5 сек. Однако сторожевой таймер, настроенный на время 2.1 сек (это у Меги8 его максимальное значение), пробивает тревогу раньше истечения паузы и перезапускает контроллер. До работы по программе дело вообще не доходит. Хотя контроллер на самом деле не виснет, а у него лишь сдают нервы от затянувшейся паузы. sm.gif

Отменила сброс по зависанию. Прошивка http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as11.zip.

Автор: love777888 May 11 2015, 06:50

Ксения я поправил вас задержка не нужна всему контроллеру, а только ножке. РВ2.

Автор: Xenia May 11 2015, 07:06

Цитата(love777888 @ May 11 2015, 09:50) *
Ксения я поправил вас задержка не нужна всему контроллеру, а только ножке. РВ2.


Я вас поняла, но мне было проще сделать именно так - поставить 5-секундную задержку перед началом работы по программе. Вы мне не объяснили причины, почему эта пауза не может быть распространена на работу контроллера в целом - ведь за 5 секунд вы едва ли успеете нажать какую-то кнопку, а если и успеете, то реакция на нее произойдет после окончания паузы, что не страшно. Если вас такая логика работы прошивки не устраивает, то вам придется мне объяснить подробнее, какие недостатки вы здесь видите.

Более того, я вас уже дважды спрашивала о том, что нужно делать во время этой паузы, но вы мне так и не ответили. А раз не ответили, то я ничего во время ее и не делаю - останавливаю работу контроллера.

Автор: love777888 May 11 2015, 07:23

Я все понял, делайте как вам удобней, вы руководитель проекта, о испытаниях отпишусь. Ответы я вроде давал, надо бы научиться пользоватья цитатами, чтобы подчеркивать ответ, вслед за вопросом. Не подумайте чего плохого никогда не пользовался.

Автор: Xenia May 11 2015, 07:51

Цитата(love777888 @ May 11 2015, 10:23) *
Я все понял, делайте как вам удобней, вы руководитель проекта, о испытаниях отпишусь. Ответы я вроде давал, надо бы научиться пользоватья цитатами, чтобы подчеркивать ответ, вслед за вопросом. Не подумайте чего плохого никогда не пользовался.


Пауза - вещь непринципиальная. Сейчас важно лишь показать, что в начале работы на PB2 уровень низкий, а после паузы становится высоким, и таким остается постоянно, пока включено питание. Если в будущем такая жесткая пауза станет мешать, то мы потом сделаем ее мягкой по таймеру. Но тут, к сожалению, остался свободным лишь короткий таймер (Timer 0), а он может дать задержку максимум на 1/4 секунды. Из этих четвертинок можно в принципе накопить 5 сек за 20 повторов, но я поленилась сейчас это делать, посчитав это занятие на данном этапе проекта неактуальным.

Прошивку as10 надо тестировать тщательнее, т.к. в ней по отношению к предыдущей as9, произошли очень большие подвижки. В частности, мне пришлось перенести опрос кнопок с таймера 1 на таймер 2 меньшей разрядности, чтобы освободить таймер 1 для работы с фотодатчиком (код алгоритма RC5 из интернета использует именно Timer1).

P.S. Вот если бы у нас была ATmega1284P (это самая новая и "жирная" Мега из DIP-корпусных), то у нас было бы 4 таймера sm.gif. Кстати, если у барыг можно купить такую в корпусе DIP40 (ATmega1284P-PU) за сходную цену, это было бы большой удачей. В моем ближайшем магазине 162-я сейчас стоит 314 руб, а 1284-я - 521 руб. Но что такое лишние 200 рублей за такую красоту? sm.gif

Автор: love777888 May 11 2015, 10:14

Да все теперь работает как надо задержка появилась, кнопки все работают, после переноса таймера, что я еще должен протестировать, я так понимаю взять пульт и понажимав клавиши направленый на ИР датчик, что должно быть?

Автор: Xenia May 11 2015, 11:18

Цитата(love777888 @ May 11 2015, 13:14) *
Да все теперь работает как надо задержка появилась, кнопки все работают, после переноса таймера, что я еще должен протестировать, я так понимаю взять пульт и понажимав клавиши направленый на ИР датчик, что должно быть?


Перенос таймера мог повлиять только на опрос кнопок и время, необходимое для их удерживания. Если кнопки работают, то новый таймер с работой справляется. Там сейчас идет опрос кнопок через каждые 10 мсек.

Для испытания IR-датчика ваше предположение верно - надо понажимать кнопки на ДПУ, в надежде, что от этого что-то изменится со свечением светодиодов (кто-то зажжется или погаснет).

Сейчас код от ПДУ, если он пришел и нормально декодировался (все 12 последовательных шагов прошли нормально), то поступает прямо на светодиоды. Это позволяет увидеть 6 младших бит кода. При этом LC7821 изменения в состоянии светодиодов пока игнорирует.

Но вероятность успеха мала sm.gif, т.к. сходу чужой код обычно не работает. После праздников куплю себе фотодиод, и тогда можно будет разбираться серьезно.

Автор: love777888 May 11 2015, 11:25

ok

Автор: love777888 May 11 2015, 12:33

Только что протестировал на железе, реле запускается с задержкой, а значит задача номер2 выполнена.
Теперь такое дело с пду, направлял я туда пульты, светодиод как горел так и остался гореть один, но если передавать команду с пульта, а затем нажать любую кнопку на клавиатуре вспыхивают, несколько или все светодиоды смотря какую цифру на пульте жмешь, есть закономерность при нажатии той же кнопки пду срабатывает та же группа светодиодов...От других пультов сработки не было, только от пультов протокола RC5, в моем обучаемом пульте записаны разные команды, так вот те кот зажигают после нажатия кнопки диоды, именно RC5 как я подозреваю, так как в недалеком прошлом управляли теликами филипс и еще какой то фирмы не помню, но контроллер управления в том телике то же стоял филипс.

Автор: Xenia May 11 2015, 12:36

Цитата(love777888 @ May 11 2015, 15:33) *
Теперь такое дело с пду, направлял я туда пульты, светодиод как горел так и остался гореть один, но если передавать команду с пульта, а затем нажать любую кнопку на клавиатуре вспыхивают, несколько или все светодиоды смотря какую цифру на пульте жмешь, есть закономерность при нажатии той же кнопки пду срабатывает та же группа светодиодов...От других пультов сработки не было, только от пультов протокола RC5, в моем обучаемом пульте записаны разные команды, так вот те кот зажигают после нажатия кнопки диоды, именно RC5 как я подозреваю, так как в недалеком прошлом управляли теликами филипс и еще какой то фирмы не помню, но контроллер управления в том телике то же стоял филипс.


Ура! Если на кнопки хоть как-то реагирует, то это уже большой успех.

Я сейчас поправлю прогу и успех закрепим.

Вот новый вариант: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as12.zip.

Автор: love777888 May 11 2015, 12:54

По поводу протеуса, я не могу найти готовый кодер RC5 на 36 кгц, там варианта готового я ненашел есть готовые проекты но на 40 кгц, что нас не особо устраивает, а писать программу на атмел или пик я не умею, чтоб синтезировать тот самый протокол, соединить готовый модуль, еще куда не шло, но пока в поиске может найду...
Еще чуть не забыл, 162 я не нашел, только заказ, а заказ это долго, мой продавец, поедет но только в конце месяца, как бы долго.
Пришла такая мысль, если нам использовать одну атмегу как пду с выходом SPI на LC7821 и вторую атмегу как клавиатуру из 6-ти (а может быть и больше)кнопок с тем же протоколом SPI на ту же 7821. Не будет ли конфликта если запаралелить шину SPI. К чему такая задумка, все просто найти недостающие ноги применив еще одну атмега 8. Жду Вашего мнения.

Автор: Xenia May 11 2015, 12:55

Проверяйте as12 на железе (ПДУ)!

Автор: love777888 May 11 2015, 13:08

Проверил диоды по разному зажигаются, при нажатии разных кнопок на пду, я даже незнаю как все это описать там разные комбинации вспыхивают, закономерность есть если жать ту же клавишу та же комбинация зажигается и светодиодов!

Автор: demiurg1978 May 11 2015, 13:11

2Xenia. Вот мой пример. IAR. Посмотрите. Нет проблемы с watch-dog. Пример быстренько сделал на основе другого примера. Частота кварца - 16 мгц. если частота будет 8 мгц, в sys_timer.c вместо 250 - 125. Системный тик 1 мс. В папке файл для AVR-Studio. Можно в студии погонять. МК в проекте ATMEGA8.

 TEMPLATE_FOR_XENIA.rar ( 56.84 килобайт ) : 8
 

Автор: Xenia May 11 2015, 13:15

Цитата(love777888 @ May 11 2015, 15:54) *
По поводу протеуса, я не могу найти готовый кодер RC5 на 36 кгц, там варианта готового я не нашел есть готовые проекты но на 40 кгц...

Возможно проект на 40 МГц годился бы. У меня в прошивке уставлен TOLERANCE=10%, следовательно частоту 36+36/10=39.6 Мгц она могла бы прочитать. В конце концов, мне ничего не стоит заменить в прошивке число 10% на 15%. Точно так же, не сложно заменить частоту 36 Кгц любой другой, установив таймеру другой период (сейчас там 1.778 мсек). Т.е. потокол RC5 везде один и тот же, а разница заключается лишь в периодичности "фотографирования" битов.

Цитата(love777888 @ May 11 2015, 15:54) *
Еще чуть не забыл, 162 я не нашел, только заказ, а заказ это долго, мой продавец, поедет но только в конце месяца, как бы долго.

Я может будет проще, если я вам ее куплю и пришлю? Тем более что мне все равно идти в тот магазин за фотодатчиком.

Цитата(love777888 @ May 11 2015, 15:54) *
Пришла такая мысль, если нам использовать одну атмегу как пду с выходом SPI на LC7821 и вторую атмегу как клавиатуру из 6-ти (а может быть и больше)кнопок с тем же протоколом SPI на ту же 7821. Не будет ли конфликта если запаралелить шину SPI. К чему такая задумка, все просто найти недостающие ноги применив еще одну атмега 8. Жду Вашего мнения.

Сходу сказать не могу - надо подумать. Но я все больше склоняюсь к тому, что можно было бы, не разрушая схему кнопок в Грюндике, работать с ними так, как работал родной контроллер (т.е. измерял напряжение на резисторной цепи).

Как-нибудь на досуге измерьте напряжение, которое поступало на процессор (т.е. после резистора 1.5 КОм) при нажатии на каждую конпку. Табличку придется написать, а кнопки жать в том порядке, как они на схеме нарисованы - сперва нижний этаж, потом верхний. В принципе можно это и в Протеусе смоделировать, но авометром будет проще. Напряжения нужны с точностью до сотых вольта. Когда посмотрим ту таблицу на предмет близости этих напряжений друг к другу, тогда и решим, что делать.

Цитата(love777888 @ May 11 2015, 16:08) *
Проверил диоды по разному зажигаются, при нажатии разных кнопок на пду, я даже не знаю как все это описать там разные комбинации вспыхивают, закономерность есть если жать ту же клавишу та же комбинация зажигается и светодиодов!

Здесь тоже составляйте таблицу: "имя кнопки на ДПУ - комбинация светящихся светодиодов". Например так:
"1" - 110101
"Menu" - 001010
т.е. это значит, что светодиоды 6 5 4 3 2 1 горят там, где 1, и потушены там, где 0.
Слева 6-ой, справа 1-ый.
Т.е. надо определить, можно ли различить все кнопки пульта по 6-ти младшим битам кода или надо доставать два старших (которые на светодиодах не видны).

Автор: love777888 May 11 2015, 13:28

Ксения, конечно я ее куплю 162, дело во времени, а вдруг вы кинете эту затею, я понимаю вы то же занятой человек, такие люди просто так не сидят сложивши руки, а работают на крутых фирмах и у них свои обязанности, мне можно сказать обычному телемастеру и так повезло с вами...
Что мне делать с комбинацией светодиодов? Записать и Вам предоставить?

Автор: Xenia May 11 2015, 13:33

Цитата(love777888 @ May 11 2015, 16:28) *
Ксения, конечно я ее куплю 162, дело во времени, а вдруг вы кинете эту затею...

Вы боитесь напрасно деньги свои потерять за Мегу162? Типа того, что купите ее, а я вас "брошу"? Тогда давайте я вам ее бесплатно пришлю, за свой счет. Тогда вы ничем не рискуете.

Цитата(love777888 @ May 11 2015, 16:28) *
Что мне делать с комбинацией светодиодов? Записать и Вам предоставить?

В прошлом посте написала.

Автор: love777888 May 11 2015, 14:37

Ничего я за деньги не боюсь, главное дело до конца довести, завтра еще одного торгаша протрясу мож у него есть, если нет буду заказывать.
Я не понимаю где у Вас по схеме 1 и 6 диод как вы считаете последовательность в схеме? поэтому присылаю Вам комбинацию по ножкам атмеги где подключены светодиоды, 1-включен диод, 0-выключен.
 ______________________.rar ( 3.57 килобайт ) : 65

Автор: Xenia May 11 2015, 14:44

Цитата(love777888 @ May 11 2015, 17:37) *
Ничего я за деньги не боюсь, главное дело до конца довести, завтра еще одного торгаша протрясу мож у него есть, если нет буду заказывать.
Я не понимаю где у Вас по схеме 1 и 6 диод как вы считаете последовательность в схеме? поэтому присылаю Вам комбинацию по ножкам атмеги где подключены светодиоды, 1-включен диод, 0-выключен.


Я же написала "Слева 6-ой, справа 1-ый." Т.е. порядок перечиcления такой:
Кнопка - PC5 - PC4 - PC3 - PC2 - PC1 - PC0

Впрочем уже видно, что младших 6-ти разрядов достаточно, чтобы различить все кнопки на ДПУ.
Э... Впрочем, кнопка "1" перекрывается по коду с кнопкой "Volume-".

Теперь заказываете, что какая кнопка на ДПУ что делать должна. Т.е. какой кнопкой ДПУ какие светодиоды зажигать надо.
Я-то думала, что надписи на ДПУ будут не как у телевизора, а соответствовать специфике Грюндика.

Автор: love777888 May 11 2015, 15:11

Пульта от грундика нет и небыло, по ходу перекрытия кнопки, там ошибочно я записал неправильную комбинацию
Вот правильный файл


 ______________________.rar ( 3.59 килобайт ) : 6
 

Автор: Xenia May 11 2015, 15:18

Цитата(love777888 @ May 11 2015, 18:11) *
Пульта от грундика нет и небыло, по ходу перекрытия кнопки, там ошибочно я записал неправильную комбинацию
Вот правильный файл


Я уже сама поняла, что в "volume-" была допущена ошибка. Вот отсюда:
http://electronix.ru/redirect.php?http://www.cyrusaudio.com/download/av5-av8-remotecodes
Согласно этому документу, в RC5 нет кодов, больших, чем 63, а потому 6 бит как раз хватает.

P.S. Вот вам новая прошивка: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as13.zip, которая должна клавишами 1-6 ПДУ нажимать кнопки 1-6 (D2-D7) на лицевой панели.
На этот раз LC7821 будет слушаться этих команд.

Если не пойдет as13 (вообще не будет слушаться кнопок), испытайте http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as14.zip.
Какая-то из двух должна работать - отличие только в полярности сигнала RC5, но какой вариант верный, сообразить затрудняюсь.

Автор: love777888 May 11 2015, 16:25

Не работает, не слушается коммутатор LC7821 и светодиоды стоят на месте, ничего не происходит. От кнопок все слушается светодиоды работают.

Автор: Xenia May 11 2015, 16:34

Цитата(love777888 @ May 11 2015, 19:25) *
Не работает, не слушается коммутатор LC7821 и светодиоды стоят на месте, ничего не происходит. От кнопок все слушается светодиоды работают.


И as14 тоже?

Автор: love777888 May 11 2015, 16:52

Простите не заметил 14-ю. Повторюсь ВЫ ТАЛАНТИЩЕ a14.gif
Все работает на УРА!!!! И клавиатура и пульт!!!

Автор: Xenia May 11 2015, 16:59

Цитата(love777888 @ May 11 2015, 19:52) *
Простите не заметил 14-ю. Повторюсь ВЫ ТАЛАНТИЩЕ a14.gif
Все работает на УРА!!!! И клавиатура и пульт!!!


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

Может быть, и "mute" задействуем? Например, для отключения PB2?

Автор: love777888 May 11 2015, 17:44

Это конечно, верно по поводу Mute, но тут несколько иная ситуация этот сигнал берется для шунтировапния левого и правого каналов усилителя, вот прикладываю фото с мануала, а РВ2 это сигнал задержки включения АС к самому усилителю...так что тут интересно как поведет себя усилитель если он например играл на процентов 80 по звуку, потом дали сигнал mute и потом его опять соединить с колонками..как поведут себя вых. транзисторы? Я считаю, что задержкой и одновременно mute, будет некорректно.



Одно условие это новый контроллер, либо обьединять две атмеги, я видел в мануалах что бывает и три микросхемы стоят и общаются по этим трем шинам. Или вариант управления по напряжению.

Автор: Xenia May 11 2015, 18:02

Цитата(love777888 @ May 11 2015, 20:44) *
Теперь расскажите про регулятор громкости.


Раньше вы объясняли, что его двигает мотор, да и я сама это на схеме вижу. Но вот неясности:
1. Откуда берутся сигналы "D" и "E", запирающие мультивибратор, подающий питание в мотор? Ну никак не могу я найти то место, которое эти два сигнала производит.
2. Где ограничитель у этого мотора? Что случится, если он упрется в ограничитель? И если не он сам, то регулятор громкости? Где отслеживается, что регулятор громкости (переменный резистор) дошел до своего крайнего положения?

Автор: love777888 May 11 2015, 18:56

Рассказываю про резистор громкости. Это резистор с тонконпенсацией, и приводиться он моторчиком постоянного тока,
Схема, там все видно:


На этих двух пинах родного процессора, должны быть земля когда управляется с пульта система громкости (на пинах должна быть земля для открытия транзисторов). Нажав на пду мы вращаем влево или вправо, сам переменник, вот только нужно ли нажимать много раз кнопки VOL+ & VOL- для того чтобы сдвинуть в ту или иную стороны регулятор, я незнаю, либо нужно нажать кнопку и держать ее нажатой, а в это время мотор крутит влево либо в право регулятор. Нужно два пина для реализации.
Ограничителя в моторе нет, сам слушатель визуально видит насколько сдвинулся регулятор при помощи светодиода в этом большом колесе. Насчет крайнего положения если он упрется я думаю там внутри стоит муфта и если усилие станет большим система просто начнет проскальзывать, скорее всего так, так как внешних концевиков там нет.

Автор: Xenia May 12 2015, 06:02

Цитата(love777888 @ May 11 2015, 21:56) *
На этих двух пинах родного процессора, должны быть земля когда управляется с пульта система громкости (на пинах должна быть земля для открытия транзисторов). Нажав на пду мы вращаем влево или вправо, сам переменник, вот только нужно ли нажимать много раз кнопки VOL+ & VOL- для того чтобы сдвинуть в ту или иную стороны регулятор, я не знаю, либо нужно нажать кнопку и держать ее нажатой, а в это время мотор крутит влево либо в право регулятор. Нужно два пина для реализации.


Правильно ли я поняла, что в начальном состоянии (сразу после включения) на линиях D и E должен быть высокий уровень? Тогда как нажатие кнопки VOL+ и VOL- делают на одной из этих линий низкий уровень?

Пока я поняла ваши разъяснения так:
Мотор стоит: D=High, E=High
Volume+: D=Low, E=High
Volume-: D=High, E=Low
Если не так, то поправляйте именно в этой записи, я же не смогла лучше перевести ваши слова на язык контроллера.

Пока же на ваши плечи ложится испытание следующего варианта:

Он отличается от предыдущего тем, что мы пытаемся использовать для управления мотором (линии D и E) ножки Меги8 - PB6 и PB7. Вообще-то эти ноги зарезервированы под кварц, и на моей плате он там и стоит. Именно в этом причина, что эти ножки мы до сих пор не использовали. Однако есть шанс, что в вашем случае, когда для задания тактовой частоты используется внутренний RC-генератор, этими ножками можно будет пользоваться, как обычными.

К сожалению, на своей плате я этого проверить не могу, т.к. у меня там кварц в это место впаян. А потому проверку придется делать вам.

Возьмите новую тестовую прошивку http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as15.zip. В момент включения она должна выдать на пины PB6 и PB7 высокий уровень. Это надо проверять, т.к. мысленными экспериментами здесь не отделаться. Протеус, вероятно, тоже в этом вам не поможет. А потому мерить придется на железе вольтметром. Только к линиям D и E Грюндика этих пинов пока не подключайте! - Это только тестовая программа.

Если нам повезет, и высокий уровень на пинах PB6 и PB7 появится, то понажимайте кнопки VOL+ и VOL-, по идее они должны вести себя так:
Volume+: D=PB6=Low, E=PB7=High
Volume-: D=PB6=High, E=PB7=Low
Останов пока не предвидится, а потому испытывать на реальном моторе не надо. Сейчас, в тестовом варианте, PB6 и PB7 не отключаются после опускания кнопок VOL+ и VOL-, а продолжают держать то состояние, которое вызвало нажатие последней кнопки.

Автор: love777888 May 12 2015, 07:17

Правильно ли я поняла, что в начальном состоянии (сразу после включения) на линиях D и E должен быть высокий уровень? Тогда как нажатие кнопки VOL+ и VOL- делают на одной из этих линий низкий уровень?

Пока я поняла ваши разъяснения так:
Мотор стоит: D=High, E=High
Volume+: D=Low, E=High
Volume-: D=High, E=Low

Все именно так, как Вы и написали!

Если нам повезет, и высокий уровень на пинах PB6 и PB7 появится, то понажимайте кнопки VOL+ и VOL-, по идее они должны вести себя так:
Volume+: D=PB6=Low, E=PB7=High
Volume-: D=PB6=High, E=PB7=Low
Останов пока не предвидится, а потому испытывать на реальном моторе не надо. Сейчас, в тестовом варианте, PB6 и PB7 не отключаются после опускания кнопок VOL+ и VOL-, а продолжают держать то состояние, которое вызвало нажатие последней кнопки.

Именно так и происходит, но добавилась одна неприятность, РВ2 отваливается при нажатии кнопок с пульта VOL+ & VOL-, и выходные реле обесточиваются, отключая колонки от усилителя...

Автор: Xenia May 12 2015, 07:57

Цитата(love777888 @ May 12 2015, 10:17) *
Именно так и происходит, но добавилась одна неприятность, РВ2 отваливается при нажатии кнопок с пульта VOL+ & VOL-, и выходные реле обесточиваются, отключая колонки от усилителя...


Это ерунда - мой недосмотр, что P2 пострадала из-за соседства с PB6 и PB7 на одном порту. Эту оплошность исправила.

Тестируйте исправленный вариант - http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as16.zip. В нем, кроме исправления ляпа с PB2, линии PB6 и PB7 взяты под контроль таймера, который отключает мотор (поднимает вверх обе линии D и E) через 1/4 секунды (это у оставшегося таймера №0 такой максимальный период). Будем надеяться, что за четверть секунды мотор успеет хоть чуточку сдвинуться с места. А если нет, то держите VOLUME нажатой непрерывно! Возможно, при непрерывном удержании кнопки VOLUME нажатой вам удастся заметить изменения напряжений на PB6 и PB7, но за четверть секунды - едва ли.

Если заработает, то можно уже подключать PB6 и PB7 к Грюндику, линиям D и E соответственно.

Автор: love777888 May 12 2015, 10:29

Не работает... атмега не просаживает напряжение базы PNP транзисторов по отношению эмиттера хотя бы на 0.7 вольта (точнее не подтягивает потенциал земли на выводы РВ6, РВ7). Тогда если не получиться с землей, я попрошу вас инвертировать выход, т.е при включении 0 вольт на РВ6 РВ7, а при нажатии на кнопки +5 вольт, я поставлю по одному транзистору NPN и они уже будут управлять базами PNP транзисторов. Вольтметром смотрел, все работает как по вашему предыдущему сообщению.

Автор: Xenia May 12 2015, 10:41

Цитата(love777888 @ May 12 2015, 13:29) *
Не работает... атмега не просаживает напряжение базы PNP транзисторов по отношению эмиттера хотя бы на 0.7 вольта (точнее не подтягивает потенциал земли на выводы РВ6, РВ7). Тогда если не получиться с землей, я попрошу вас инвертировать выход, т.е при включении 0 вольт на РВ6 РВ7, а при нажатии на кнопки +5 вольт, я поставлю по одному транзистору NPN и они уже будут управлять базами PNP транзисторов. Вольтметром смотрел, все работает как по вашему предыдущему сообщению.


Так просто я не сдамся! sm.gif Увеличила ток через PB6 и PB7 - http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as17.zip.

Автор: demiurg1978 May 12 2015, 12:09

Нужно сделать эксперимент. Какие импульсы должны идти на двигатель. Если реакция регулятора громкости мгновенная, значит, пока кнопку держим, двигатель крутится. Если реакция не мгновенная, значит экспериментальным путем вычисляем длительность импульса на управления двигателя.
Кстати, если кнопку пульта долго держать, как он отправляет кодовые посылки?

Ксения. Немаловажный момент: нужно обеспечить задержку между переключениями пинов управления двигателем. Чтобы исключить сквозные токи транзисторов управления двигателем. 20-40 мкс за глаза.

Автор: Xenia May 12 2015, 12:17

Цитата(demiurg1978 @ May 12 2015, 15:09) *
Нужно сделать эксперимент. Какие импульсы должны идти на двигатель. Если реакция регулятора громкости мгновенная, значит, пока кнопку держим, двигатель крутится. Если реакция не мгновенная, значит экспериментальным путем вычисляем длительность импульса на управления двигателя.

Там просто коллекторный двигатель, а управление примитив - ток либо включен, либо выключен. Еще направление тока влияет, куда мотор крутится.

Цитата(demiurg1978 @ May 12 2015, 15:09) *
Кстати, если кнопку пульта долго держать, как он отправляет кодовые посылки?

А кто его знает? sm.gif Надо полагать, что шлет непрерывно с какой-то периодичностью.

Цитата(demiurg1978 @ May 12 2015, 15:09) *
Погодите городить огород с управлением двигателем. Нужна родная схема управления двигателем. То что осталось от этой схемы. Будем исходить из того что есть.

Уже публиковалась в этой теме - в http://electronix.ru/forum/index.php?s=&showtopic=127714&view=findpost&p=1334354. Мотор включен между выходами MOT+ и MOT-. Управляющие сигналы D и E шли прямо от контроллера, который сгорел. Больше ничего там нет.

Автор: demiurg1978 May 12 2015, 12:19

Гляньте предыдущее сообщение.

Автор: Xenia May 12 2015, 12:27

Цитата(demiurg1978 @ May 12 2015, 15:09) *
Ксения. Немаловажный момент: нужно обеспечить задержку между переключениями пинов управления двигателем. Чтобы исключить сквозные токи транзисторов управления двигателем. 20-40 мкс за глаза.

Авось sm.gif, там диодики стоят. Да и невозможно с пульта сразу риверснуть мотор на обратный ход. Пока кнопу будешь жать, 1/4 секунды пройдет, и мотор к тому времени остановится.

Цитата
Посылка, содержащая адрес и команду передается однократно, но при удержании кнопки пульта дистанционного управления через каждые 110 мс излучается код повтора – пачка импульсов несущей частоты длительностью 9мс, пауза в 2.25 мс и пачка импульсов длительностью 560 мкс.
http://electronix.ru/redirect.php?http://chipenable.ru/index.php/how-connection/item/96-dekodirovanie-signalov-infrakrasnogo-pulta-distantsionnogo-upravleniya.html




Автор: love777888 May 12 2015, 12:56

Браво! ВЫ Талантище!!! После поднятия тока через пины вал крутиться, так как надо! Кстати по поводу крайнего положения подозрения мои оправдались там стоит муфта поэтому транзисторы не упалишь. Сколько держишь кнопку на пульте столько крутиться вал, от легкого нажатия на пульте тоже крутиться.

Автор: demiurg1978 May 12 2015, 13:02

Цитата(love777888 @ May 12 2015, 19:56) *
После поднятия тока через пины вал крутиться, так как надо!

Подозреваю, что у Ксении в прошлой версии просто выставлялись PORT без DDR. То есть без включения портов на выход. Поэтому термин "усиление тока" не верен. У МК AVR максимальный ток пина 40 мА.

Автор: Xenia May 12 2015, 13:19

Цитата(demiurg1978 @ May 12 2015, 16:02) *
Подозреваю, что у Ксении в прошлой версии просто выставлялись PORT без DDR. То есть без включения портов на выход. Поэтому термин "усиление тока" не верен. У МК AVR максимальный ток пина 40 мА.

Ну уж можно было бы и промолчать, не выдавая моей тайны sm.gif. Конечно же я просто забыла DDR выставить на новые биты.

Цитата(love777888 @ May 12 2015, 15:56) *
Сколько держишь кнопку на пульте столько крутиться вал, от легкого нажатия на пульте тоже крутиться.

А направление вращения верное? D и E не пришлось менять местами?

Автор: love777888 May 12 2015, 15:07

Направление поменял как мне надо, что дальше? Есть ли у нас свободные пины? Как насчет Mute?

Автор: Xenia May 12 2015, 15:13

Цитата(love777888 @ May 12 2015, 18:07) *
Направление поменял как мне надо, что дальше? Есть ли у нас свободные пины?


Ответьте, пожалуйста на мой вопрос: Пришлось ли менять местами линии D и E, против того, как было изображено на http://electronix.ru/forum/index.php?s=&showtopic=127714&view=findpost&p=1336405.

Автор: love777888 May 12 2015, 15:28

Volume+: D=PB6=Low, E=PB7=High
Volume-: D=PB6=High, E=PB7=Low
Ничего не менял, сейчас повнимательней посмотрел, какая разница какой я сигнал к транзисторам подведу с той или стой линии? Там все равно потенциал корпуса, что там что там. Когда соединял проводами то не обратил внимания. Или Вам это надо знать на перспективу?
Надо реализовать еще самое главное это дежурный режим, он будет даже по главней mute.

Автор: demiurg1978 May 12 2015, 15:30

Цитата(love777888 @ May 12 2015, 22:28) *
Надо реализовать еще самое главное это дежурный режим, он будет даже по главней mute.

Распишите, как должен работать дежурный режим.

Автор: Xenia May 12 2015, 15:43

Цитата(love777888 @ May 12 2015, 18:07) *
Направление поменял как мне надо, что дальше? Есть ли у нас свободные пины? Как насчет Mute?


На Меге8 пинов больше не осталось, а ради одного только Mute огород городить не хочется.

Вы вот что сделайте: пройдитесь по периметру сгоревшего контроллера и составьте списочек, чего там есть еще полезного, кроме Mute. Я сама уже пыталась это делать, но слишком много непонятных мне функций. Скажем, Stereo, которая рядом с Mute, это что?

Помимо этого, сгоревший контроллер управлял какими-то функциями не напрямую, а через транзисторы, которые рядом с ним изображены на схеме той же платы. Причем, некоторые из этих транзисторов работают не на выход, а на вход, что-то сообщая контроллеру.

Вот и хотелось бы составить представление о том, что там еще есть такого, чем можно управлять и о том, какую информацию контроллер может получать.

Я понимаю, что радио поднять у нас вряд ли хватит силенок (настройка частоты, поиск радиостанций и пр.), но что-то, вроде проигрывания СD-дисков, можно было бы попытаться реанимировать. Но вам самому было бы проще выставить приоритеты в этом списке, по рангу их полезности и актуальности. А мне больше хотелось бы посмотреть на полный список.

Автор: love777888 May 12 2015, 15:47

В схеме есть реле дежурного режима оно отключает силовой трансформатор тоесть сам усилок, сама дежурка питается от отдельного транса.
ПЕРВОЕ ВКЛЮЧЕНИЕ В СЕТЬ
Если нажалась кнопка сеть она механическая, то включается реле дежурки, включается силовой транс, далее задержка ас, все усилитель готов к использованию, т.к. все остальное уже реализовано при помощи Ксении.
ВЫКЛЮЧЕНИЕ С ПУЛЬТА (КНОПКА СЕТЬ ВКЛЮЧЕНА)
Выключаются АС по пину РВ2, выключается реле дежурки, тем самым мы обесточиваем сам усилок, тухнет вся индикация, все усилок стоит в дежурке.
ВКЛЮЧЕНИЕ С ПУЛЬТА (КНОПКА СЕТЬ НАЖАТА) ПЕРЕХОД С ДЕЖУРНОГО В АКТИВНОЕ СОСТОЯНИЕ
Включается реле дежурки, включается индикация(можно сделать тройное мигание всех диодов, но если напряжно делать ненадо), срабатывает задержка, все усилитель готов к использованию.
Ну выключение механической кнопкой понятно что к чему тут.


Если мы используем РD0, РD1, я конечно же помню что у вас там интерфейс с компом, но у меня то они не заняты...

Автор: Xenia May 12 2015, 16:11

Цитата(love777888 @ May 12 2015, 18:47) *
Если мы используем РD0, РD1, я конечно же помню что у вас там интерфейс с компом, но у меня то они не заняты...

Можно и их использовать. Только мне надо для этого знать, высоким или низким уровнем включается режим Mute.

Автор: love777888 May 12 2015, 17:59

Режим муте управляется высоким уровнем, т.е. +5 вольт включено муте, 0 вольт выключено муте.

Автор: Xenia May 12 2015, 18:13

Цитата(love777888 @ May 12 2015, 20:59) *
Режим муте управляется высоким уровнем, т.е. +5 вольт включено муте, 0 вольт выключено муте.


Присоединяйте Mute к PD1 (TXD), прошивка здесь: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as18.zip.

Автор: love777888 May 12 2015, 19:16

Все работает, функция кнопки MUTE имеет триггерный характер как и должно быть... Все работает было бы неплохо еще приделать дежурку...

Автор: Xenia May 12 2015, 19:21

Цитата(love777888 @ May 12 2015, 22:16) *
Все работает, функция кнопки MUTE имеет триггерный характер как и должно быть... Все работает было бы неплохо еще приделать дежурку...


Про дежурку я ваши объяснения не поняла. Попробуйте сформулировать "на языке контроллера" правило, как надо выставлять бит. Тем более что остался последний.

Автор: love777888 May 12 2015, 19:38

Ксения почитайте сообщение 142.

Автор: Xenia May 12 2015, 19:44

Цитата(love777888 @ May 12 2015, 22:38) *
Ксения почитайте сообщение 142.


А вы прочтите сообщение #147.

Поскольку ситуация патовая, я из проекта выхожу.

Автор: love777888 May 12 2015, 20:43

Ксения я не могу как программист на языке контроллера описать, что ему делать. Я все по действиями описал в 142 сообщении. Но как бы там нибыло вам огромное спасибо!

Автор: demiurg1978 May 13 2015, 02:02

Исходное состояние, после включения МК. Работает только прием RC5. Принимается только сигнал включения уселка. Словили код включения, включаем пин реле уселка, мигаем всеми светодиодами 3 раза, включается задержка включения колонок. Сработала задержка, включилось реле колонок, усилитель готов к работе. Можем принимать остальные коды пульта. Я правильно расписал?

Ксения, придется запускать псевопараллельность некоторых процессов и использовать автоматное программирование. Состояния: инициализация (так как компилятор вставляет блок очистки ОЗУ, нулевое состояние будет инициализацией ввода-вывода, переменных), дежурный режим, рабочий режим.

Автор: love777888 May 13 2015, 03:22

Еще раз попытаюсь ответить

В схеме есть реле дежурного режима оно отключает силовой трансформатор тоесть сам усилок, сама дежурка питается от отдельного транса.

ПЕРВОЕ ВКЛЮЧЕНИЕ В СЕТЬ
Если нажать кнопку сеть она МЕХАНИЧЕСКАЯ, то
1) Включается реле дежурки пин PD0, включается силовой транс,
2) Включается индикация, как у нас и есть (но если можно при включении чтобы мигала три раза все диоды)
3) Далее задержка PB2, и управление с пульта, все усилитель готов к использованию.
Тут момент такой, почему здесь не участвует пульт при включениив этом описании, все просто усилитель должен включаится использоваться как пультом так и без оного.

ВЫКЛЮЧЕНИЕ С ПУЛЬТА (КНОПКА СЕТЬ ВКЛЮЧЕНА)
1) Выключаются АС по пину РВ2,
2) Выключается индикация (можно если можно мигнув 1 раз всеми диодами)
3) Выключается реле дежурки PD0, тем самым мы обесточиваем сам усилок, все усилок стоит в дежурке. Пульт включен и слушается только кнопки POWER

ВКЛЮЧЕНИЕ С ПУЛЬТА (КНОПКА СЕТЬ НАЖАТА) ПЕРЕХОД С ДЕЖУРНОГО В АКТИВНОЕ СОСТОЯНИЕ НАЖИМАЕМ POWER
1) Включается реле дежурки PD0,
2) Включается индикация (тройное мигание всех диодов),
3) Далее задержка PB2, и управление с пульта, все усилитель готов к использованию. Срабатывает задержка РВ2, все усилитель готов к использованию.

Ну выключение механической кнопкой понятно что к чему тут.
Если что то не так пишите я отвечу...если опять что не так расписал.

Автор: demiurg1978 May 13 2015, 06:20

Ксения, что, мне теперь отдуваться? sm.gif

Автор: love777888 May 13 2015, 06:55

Я может не так ставлю задачи? Вы обьясните? Что не так? Не в обиду сказано.

Автор: demiurg1978 May 13 2015, 07:10

Цитата(love777888 @ May 13 2015, 13:55) *
Я может не так ставлю задачи? Вы обьясните? Что не так? Не в обиду сказано.

Ваша задача была и так непростая. Ксения вам сделала практически все. Есть одно но. Функционал расширяется. Добавление дежурного режима означает - пересматривать всю программу и переделывать, переписывать ее. Точнее, пересмотреть подход к проекту. Я сейчас делаю вам шаблон программы. Если Ксения согласится участвовать дальше, значит я отдам ей этот шаблон. Если нет, попробуем доделать программу вместе. МК ATMEGA32A. Когда программа будет готова, попробую перекомпилировать под ATMEGA8535, ATMEGA16, ATMEGA16A, ATMEGA162. Чтобы был выбор кристаллов.

Автор: love777888 May 13 2015, 07:16

А кто ж говорит, что простая задача здесь стояла. Я и так удивлен, что все получилось. Атмегу162 я уже заказал, вы мне предлагаете список микросхем которых у меня нет, но я поинтересуюсь, что есть в.продаже.

Автор: demiurg1978 May 13 2015, 07:35

Цитата(love777888 @ May 13 2015, 14:16) *
Атмегу162 я уже заказал, вы мне предлагаете список микросхем которых у меня нет, но я поинтересуюсь, что есть в.продаже.

ATMEGA162 у меня нет. Есть в наличии ATMEGA32A. Шаблон буду собирать для этого кристалла. Потом будет видно. Раз заказали 162, то пусть так и будет.

Автор: Xenia May 13 2015, 07:56

Цитата(demiurg1978 @ May 13 2015, 09:20) *
Ксения, что, мне теперь отдуваться? sm.gif

Я бы на вашем месте тоже дёру дала.

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

Пока человек просит сделать конкретные вещи, с ним можно работать или сотрудничать. Например, запросы типа: хочу на PB2 в момент пуска низкий уровень, а через 5 секунд сменить на высокий. Или чтобы на PD1 в момент пуска был низкий уровень, а при каждом нажатии кнопки "Tune" на ДПУ его уровень менялся на противоположный. И т.п. При этом даже необязательно самому выбирать, PB2 или PD1 это будет, а просто попросить, чтобы такой контакт был из числа свободных.

Но как только человек начинает что-то бубнить про усилки и дежурные режимы, умалчивая, что ему нужно от контроллера, то дело начинает приобретать опасный оборот. Тем более, когда остался-то всего лишь один последний свободный контакт PD0. Вот тут бы и сказать ясно, что он от этого контакта хочет. А вместо этого пространные рассуждения о дежурном питании и силовом трансе. И все это притом, что максимум, что я могу реально сделать - лишь подрыгать оставшимся свободным контактом.

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

Цитата(demiurg1978 @ May 13 2015, 10:35) *
ATMEGA162 у меня нет. Есть в наличии ATMEGA32A. Шаблон буду собирать для этого кристалла. Потом будет видно. Раз заказали 162, то пусть так и будет.

Я ему предлагала ATmega162 даже бесплатно прислать, но не удостоилась даже ответа на свое предложение.

Автор: demiurg1978 May 13 2015, 08:14

Цитата(Xenia @ May 13 2015, 14:56) *
...

Ладно, исполнитель и заказчик друг друга не поняли. Бывает. Бегством спасаться пока рано. Попробую постановку задачи сделать я. Надеюсь у нас понимание будет.
Задача. Пусть пин включающий реле питания уселка будет POWER_ON. Пин отвечающий за реле колонок SPEAKER. Кнопка PWR_BTN.

Switch-case, КА, если короче.

Состояния уселка:
0 - инициализация ввода-вывода, переменных. Установка состояния 1.
1 - Работает только опрос кнопок и приемник пульта. Реакция только на нажатие кнопки PWR_BTN и код пульта POWER. Нажали на кнопу уселка PWR_BTN или нажали на кнопу пульта POWER, включаем пин POWER_ON, установка состояния 2.
2 - Мигание светодиодами, задержка включения пина SPEAKER. Если у вас линейное мышление, можно сделать на@пку. 3 секунды на мигание. Остается 2 секунды на задержку SPEAKER. Как только закончилась задержка SPEAKER, инициализируем микросхему, все остальное, установка состояния 3.
3 - В этом режиме уже можно рулить уселком и следить за кнопами PWR_BTN и кодом POWER. Как только нажали на кнопу питания и поймали код POWER отключение пина POWER_ON, установка состояния 1.
Так понятно?

Автор: Xenia May 13 2015, 09:06

Цитата(demiurg1978 @ May 13 2015, 11:14) *
Так понятно?


Вы про LC7821 забыли, а это, между прочим, дает название всей теме.

Вот вы сходу можете ответить, лишится ли питания LC7821 после того, как "силовой транс" отключится? Т.е. питается ли LC7821 от дежурного источника или от силового? А ведь это вопрос не праздный, т.к. от него зависит момент, когда ее надо инициализировать. И инициализации она, по-видимому, требует, т.к. ранее было сказано, что L5R5 и L8R8 должны были постоянно включены.

В данном случае накладываются сразу три действия, относительный порядок которых строго не определен:
1. Краны L5R5 и L8R8 внутри LC7821.
2. PB2 - включение AC.
3. PD0 - включение силового трансформатора.

Положим, силовой трансформатор здесь первый в очереди, но тогда 5 секунд задержки с включением AC должны отсчитываться с этого момента, а не с момента старта. В какой момент надо включать краны L5R5 и L8R8 внутри LC7821 - вообще темный вопрос.

Я к тому, что всю последовательность того, какие рычаги и в каком порядке их надо нажимать, должна была бы описана самим ТС, т.к. именно ему лучше всего известно, что требует его Грюндик в работе. Причем, примитивных понятий об электричестве здесь вполне должно хватать, т.к. вся эта логика по своей сути релейная. Т.е. проблема тут не в программировании, а в том, чтобы выдавить из заказчика рабочую последовательность действий. А если он на этот счет упирается, то работать с ним невозможно.

Автор: love777888 May 13 2015, 09:14

Уважаемый demiurg 1978, Вы правильно описали моменты работы, но есть исключение, сетевая кнопка у меня с фиксацией и у нее нет дополнительного контакта или кнопки на усилке по типу того как вы написали pwr btn как это было сделано в немецких телевизорах, там был встроеный контакт прямо в сетевой кнопке кот шел прямо на процессор и делал пуск всего телевизора, поэтому для меня не понятно как можно будет без пульта запустить pwr on, когда пользователь нажал кнопку сеть, полностью обесточенного усителя до этого . Вот о чем я расписывал постами выше. Или сетевая кнопка всегда нажала, но тогда всегда нужен пульт для пуска в работу усилителя, или еще одна кнопка потайная для включения с клавиатуры на панели?
По поводу третьего состояния прежде чем переводить в off необходимо сделать отключение speaker.

Автор: demiurg1978 May 13 2015, 09:16

Про колонки да, я забыл. Поторопился написать сообщение. Я весь в вашем проекте. sm.gif Пока давайте разберемся с очень важным вопросом. Что у вас запитано от дежурного транса.

Автор: love777888 May 13 2015, 09:45

Ксения, я ничего не упираюсь, зачем мне это? Когда вы мне и так помогли. Просто я навереое совсем другим взглядом, на это смотрю, скорее ремонтник нежели программист, если я чего и забыл вам сказать, не обижайтесь. По поводу презента 162 для меня это просто неудобно, напрягать вас покупкой пересылкой... я заказал микросхему, но я думаю для моих целей еще понадобится, тем более такие чудеса можно делать на этих чипах.

Автор: demiurg1978 May 13 2015, 09:50

Модераторы. Удалите пожалуйста.

Автор: love777888 May 13 2015, 10:25

Demiurg от дежурного трансформатора, питался японский процессор, поэтому в нашем варианте будет питаться логика нашей атмеги.
Еще раз о алгоритме,
1) Включили в сеть кнопкой,
2) Срабатывает pwr on, на выходе этого пина с атмеги должен быть высокий уровень 5вольт самое то для управления ключем. и реле.
3) С этого мрмента нужно проводить задержку speaker, за эти 5 секунд мы мигаем всеми диодами три раза, и оставляем на задержку самих ас 2сек, как вы и описали.
4) Включаем по умолчанию каналы в Lc 7821.
5) После всего выше мы можем пользоваться Пду, и только сейчас, с пульта мы сможем перейти в дежурку. (это при нажатой механической кнопке сеть).
6) Нажали pwr btn на пульте (на усилителе нету этой кнопки, кроме той что полностью отулючакт усь), начинаем отключать Speaker тухнет вся индикация при этом мигнув один раз всеми диодами, отключаем 5вольт на пине атмега т.е. pwr оn -0. Сама атмега с этого момента слушается только кнопки pwr btn.
7) Захотели мы включить усилитель, нажимаем на пульте еще раз кнопку pwr btn, с этого момента все повторяется по пункту 2.
как то так, если все это делать трудно, я не обижусь буду кнопкой сеть отключать, но тут ньюанс, когда выключать кнопкой то происходит хлопок в ас из за разрядов конденсаторов по сему приходится валкодер полностью выкручивать влево, потому и нужна дежурка что бы грамотно все включать и отключать.
извиняюсь окончания телефон каверкает.

Автор: demiurg1978 May 13 2015, 10:28

Цитата(love777888 @ May 13 2015, 17:25) *
...

На видео (сообщение выше) я сымитировал код пду кнопой. Счет светодиодов справа налево. Первый светодиод - как бы ваши 6 светодиодов. Второй реле питания. Последний для отладки. Начало видео - включение уселка.
Все правильно?

Автор: love777888 May 13 2015, 10:53

В данный момент я нахожусь на работе, посмотреть не могу из за трафика

да вроде правильно, 1 светодиод справа на лево, все 6 диодов мигнули 3 раза, далее включилось реле pwr on 2-й светодиод. хорошо если я все правильно понял где speaker ? как увидеть код установки лс 7821?

Автор: demiurg1978 May 13 2015, 11:44

Поправил проект. Новое http://electronix.ru/redirect.php?http://www.youtube.com/watch?v=x2t1GTWv1kk.
Светодиоды справа налево: Реле включения уселка. Реле колонок. Ваши светодиоды.

Код для Ксении:

CODE

//========================================================================
__C_task main ()
{
wdt_enable (WDTO_15_MS);

init_sys_timer ();

__enable_interrupt ();

Init_Events ();

while (1)
{
__watchdog_reset ();

service_timers ();

proc_amplifier ();

Process_Events ();
}
}
//========================================================================


CODE

//========================================================================
void proc_amplifier (void)
{
static u08 _proc_amplifier;

if (_proc_amplifier != PROC_AMPLIFIER_INIT)
{
kbd_drv ();
}

switch (_proc_amplifier)
{
case PROC_AMPLIFIER_INIT: // Инициализация ввода-вывода, переменных.
// proc_amplifier_init (); // В этом блоке инициализация периферии. ПДУ, SPI, микросхема.

_proc_amplifier = PROC_AMPLIFIER_ON_DELAY_INIT;
break;

case PROC_AMPLIFIER_STANDBY_MODE: // Дежурный режим усилителя.
if (Get_Event (EV_ID_KEY_PRESSED) && (GetKeyCode () == KEY_POWER_ON_COD)) // Если код ПДУ POWER, то
{
_proc_amplifier = PROC_AMPLIFIER_ON_DELAY_INIT; // включение усилителя.
}
break;

case PROC_AMPLIFIER_ON_DELAY_INIT:
pwr_relay_on (); // Включение реле питания.

_blink_leds = 0; // Инициализация состояния модуля.
_delay_for_speaker = 0; // Инициализация состояния модуля.

_proc_amplifier = PROC_AMPLIFIER_ON_DELAY;
break;

case PROC_AMPLIFIER_ON_DELAY: // Мигание светодиодов. Задержка включения колонок.
if (Get_Event (EV_ID_SPEAKER_ON))
{
_proc_amplifier = PROC_AMPLIFIER_WORK_MODE;
return;
}

blink_leds (); // Мигание светодиодов.
delay_for_speaker (); // Задержка включения колонок.
break;

case PROC_AMPLIFIER_WORK_MODE:
if (Get_Event (EV_ID_KEY_PRESSED)) // Если код ПДУ
{
u08 key = GetKeyCode ();

switch (key)
{
case KEY_POWER_ON_COD:
_proc_amplifier = PROC_AMPLIFIER_OFF_DELAY_INIT; // POWER, то - дежурный режим усилителя.
break;

case KEY_VOLUME_UP_PRESSED_COD:
motor_vol_up_on ();
break;

case KEY_VOLUME_DOWN_PRESSED_COD:
motor_vol_down_on ();
break;

case KEY_VOLUME_UP_UNPRESSED_COD:
motor_vol_up_off ();
break;

case KEY_VOLUME_DOWN_UNPRESSED_COD:
motor_vol_down_off ();
break;

default:
break;
}
}
break;

case PROC_AMPLIFIER_OFF_DELAY_INIT:
speaker_relay_off (); // Отключение реле колонок.

set_timer (ST_SPEAKER_RELAY, NO_RERUN_TIMER, AMPLIFIER_OFF_DELAY);
_proc_amplifier = PROC_AMPLIFIER_OFF_DELAY;
break;

case PROC_AMPLIFIER_OFF_DELAY:
if (wait (ST_SPEAKER_RELAY))
{
pwr_relay_off (); // Отключение реле питания.
_proc_amplifier = PROC_AMPLIFIER_STANDBY_MODE;
}
break;

default:
break;
}
}
//------------------------------------------------------------------------

//========================================================================
void delay_for_speaker (void)
{
switch (_delay_for_speaker)
{
case 0:
set_timer (ST_SPEAKER_RELAY, NO_RERUN_TIMER, SPEAKER_DELAY); // 5 мс для отладки. 5000, 5 секунд.
_delay_for_speaker = 1;
break;

case 1:
if (wait (ST_SPEAKER_RELAY))
{
speaker_relay_on (); // Включение реле динамиков.
Set_Event (EV_ID_SPEAKER_ON, SET_CLR_EVENT);
_delay_for_speaker = 2;
}
break;

default:
break;
}
}
//========================================================================

//========================================================================
void blink_leds (void)
{
static u08 i;

switch (_blink_leds)
{
case 0:
all_leds_on ();

set_timer (ST_LEDS, NO_RERUN_TIMER, BLINK_LEDS_TIME);
_blink_leds = 1;
break;

case 1:
if (wait (ST_LEDS))
{
all_leds_switch ();

if (!(LED_1_DDR & (1<<LED_1)))
{
i++;

if (i >= 3)
{
i = 0;
_blink_leds = 2;
return;
}
}
set_timer (ST_LEDS, NO_RERUN_TIMER, BLINK_LEDS_TIME);
}
break;

default:
break;
}
}
//========================================================================

Автор: love777888 May 13 2015, 13:20

demiurg, все верно, я так понял диоды будут три раза мигать а далее, включается первый канал и по умолчанию 5 8 каналы плюс светиться диод первого канала,я правильно понимаю?

Автор: demiurg1978 May 13 2015, 13:32

Я сделал проект для Ксении, как должен работать дежурный режим. Плюс светодиоды мигать три раза, плюс задержка включения колонок и задержка между отключением колонок и уселка. Светодиоды справа налево: 1 - реле силового транса. 2 - реле колонок. 3 - как будто ваши 6 светодиодов.
Посмотрите на видео правильно ли реализовано включение и отключение уселка? Алгоритм: включаем питание уселка ШТАТНОЙ КНОПКОЙ питания. Дежурный транс включен, питает логику управления. Включается силовой транс (первый светодиод). Мигают ваши как будто шесть светодиодов 3 раза (третий светодиод). Через 5 секунд после включения включается реле колонок (второй светодиод). Усилитель готов к работе. Имитируем нажатие на кнопку ПДУ Power. Отключаются колонки (второй светодиод). Через 3 секунды отключается реле силового транса (первый светодиод). Теперь опять имитируем нажатие на кнопку ПДУ Power. Начинается заново. Включается реле транса, мигают светодиоды, включаются колонки.
Все верно?

Автор: love777888 May 13 2015, 13:47

Ну так об этом я постоянно писал в своих сообщениях, ну и как этот алгоритм записать в атмега 8, включив последний неиспользованный пин? я так понял Ксения не станет компилировать новую прошивку?

Автор: demiurg1978 May 13 2015, 13:55

Значит алгоритм верный? Если верный, то нужно определиться с набором функционала. Текущий набор вас устраивает или вы хотели бы еще что-то добавить? Какой кристалл будет в окончательной версии?
Ну а насчет того, будет ли она доделывать, зависит от нее. Ксения, вы получили ответ на свой вопрос? Я все сделал, чтобы заказчик и вы друг друга поняли sm.gif

Автор: love777888 May 13 2015, 14:21

Для начала спасибо вам большое! Да алгоритм правильный, в этом усилителе я бы еще хотел использовать такие команды, как defeat и loudness, но это я могу и сам сделать на обычной логике типа cd4013, так как я недумаю, что особый вес был в них с управления с пульта. У меня есть усилитель Sony вот там ситуация караул, в коммутаторе стоят 7823 7822, с разными адресами,куча кнопок, стоит процессор обработки 5.1 и как вы догадались, все командует контроллер, с той же шиной spi. который упален, после грозы. ну это к слову, о том что в сони если ставить то только 40 ножку, а в грундике, если Ксения прокомпилирует прошивку, то хватит, и атмега8. Так что надежда на гуру Ксению.

Автор: demiurg1978 May 13 2015, 14:24

Под другой МК перекомпилировать не проблема. Я буду переводчиком, посредником, если что sm.gif Ждем Ксению...

Автор: love777888 May 13 2015, 14:39

Только это и делаем ждемс..., в продаже есть 32я дип корпус, продавец не знает с буквой а или нет, или они в дипе вам все с буквой а?

Автор: demiurg1978 May 13 2015, 14:42

Забудьте про чип дип. Это зажравшиеся перепродаваны. Симметрон дилер ATMEL. Впрочем смотрите в вашем регионе, кто работает с ATMEL. efind.ru

Автор: Xenia May 13 2015, 14:57

Цитата(love777888 @ May 13 2015, 17:39) *
Только это и делаем ждемс..., в продаже есть 32я дип корпус, продавец не знает с буквой а или нет, или они в дипе вам все с буквой а?

Буква "А" после цифры - обновленная серия. Чуть меньше токопотребление, но архитектурно то же самое, что и без буквы "А".

Мега32 (или Мега32А) - это фактически та же Мега8 (Мега8А), только с памятью в 4 раза большей (32К вместо 8К). Ну и в корпусе DIP40 она бывает, а Мега8 нет.

Тем не менее, Мега162 лучше уже тем, что у нее есть "interrupt PCINT", т.е. способность реагирования на уровне железа на изменение состояния линий портов, тогда как на Меге8 приходиться опрашивать порты с периодичностью 10 мсек (чтобы не прозевать кнопки), что не только занимает один из таймеров, но делает алгоритм "некрасивым". Мега162 в этом отношении не уникум, но она самая дешевая из тех, кто имеет это "интеррапт" и выпускается в корпусе DIP40.

P.S. Вам надо было соглашаться на мой вариант - Мега162 уже давно бы прибыла к вам почтой и по цене ниже, чем у вашего продавца.

Автор: love777888 May 13 2015, 15:15

Ксения я сам из беларусии, как для меня яделаю заказы на.алиекспресс, там будет самым выгодным, покупать, эти атмелы , без переплат, в сравнении местный барыга предлагает 32 ю за 7$, в китае 5 32а стоит 9$. так что так делайте выводы, тем более что почта у вас в росии быстрее чем в беларусии, но 162 я заказал у местного цена будет порядка 12$ за одну в то время как в китае две будут столько стоить. но заказал из за времени сказал что скоро поедет в польшу за товаром.

Автор: Xenia May 13 2015, 15:23

Цитата(love777888 @ May 13 2015, 18:15) *
Ксения я сам из беларусии, как для меня яделаю заказы на.алиекспресс, там будет самым выгодным, покупать, эти атмелы , без переплат, в сравнении местный барыга предлагает 32 ю за 7$, в китае 5 32а стоит 9$. так что так делайте выводы, тем более что почта у вас в росии быстрее чем в беларусии, но 162 я заказал у местного цена будет порядка 12$ за одну в то время как в китае две будут столько стоить. но заказал из за времени сказал что скоро поедет в польшу за товаром.


Я полагаю, что 32-я вам не нужна, т.к. не стоит своих денег. А 162-я стоит в Москве 300 руб (6$), т.е. почти как в Китае. Я уж с тех пор, как предлагала вам посредничество, уже дважды в магазине была - купила себе LC7821 и TSOP31236 (фотодиод).

Автор: demiurg1978 May 13 2015, 15:27

Мой параллельный проект обрастает функционалом. Добавил громкость. http://electronix.ru/redirect.php?http://www.youtube.com/watch?v=AfPF1Jo_NpY. Какие у вас там еще кнопки? Mute, что еще?

Автор: Xenia May 13 2015, 15:30

Цитата(demiurg1978 @ May 13 2015, 18:27) *
Мой параллельный проект обрастает функционалом. Добавил громкость. http://electronix.ru/redirect.php?http://www.youtube.com/watch?v=AfPF1Jo_NpY. Какие у вас там еще кнопки? Mute, что еще?


Какой-то гнусный ваш проект sm.gif - больше одного диода одновременно гореть не должно.

Автор: demiurg1978 May 13 2015, 15:31

Цитата(Xenia @ May 13 2015, 22:30) *
Какой-то гнусный ваш проект sm.gif - больше одного диода одновременно гореть не должно.

? sm.gif

Автор: Xenia May 13 2015, 15:42

Цитата(love777888 @ May 13 2015, 13:25) *
Еще раз о алгоритме,
1) Включили в сеть кнопкой,
2) Срабатывает pwr on, на выходе этого пина с атмеги должен быть высокий уровень 5вольт самое то для управления ключем. и реле.
...


Предлагаю вам простенький вариант, сделанный на коленке sm.gif. А именно - оставить всё так, как есть сейчас, с одной лишь малюсенькой разницей, что на PD0 будет высокий уровень (5 вольт).

Кнопка Power на ДПУ будет "выключательной", т.е. при ее нажатии уровень на PD0 упадет и силовой трансформатор обесточится. Т.е. кнопка Power будет погружать Грюндик в спячку, но не требовать своего нажатия в момент механического включения питания. Мол, раз включили, то надо работать, а не спать.

Кстати, в описании протокола RC5 она как раз и называется STANDBY.

А вот из спящего режима (в который попадают после однократного нажатия Power) выводит ЛЮБАЯ (!) нажатая кнопка, не только ДПУ, но и кнопки на панели. В этом случае Мега8 делает сама себе Resеt, после которого снова наступит обычное состояние бодрствования.

Автор: demiurg1978 May 13 2015, 15:44

Цитата(Xenia @ May 13 2015, 22:42) *
...

O_O

Автор: Xenia May 13 2015, 16:02

Алгоритм, описанный в моем прошлом посте, закодирован здесь: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as19.zip.

P.S. Поправка!
В прошлом коде обнаружен недочет. Испытывать эту: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as20.zip.

Автор: demiurg1978 May 13 2015, 16:31

Задействован алгоритм с дежурным питанием. Кнопками сымитировано нажатие кнопки ПДУ Power. Регулировка громкости. Mute.

CODE

//========================================================================
void proc_amplifier (void)
{
static u08 _proc_amplifier;

if (_proc_amplifier != PROC_AMPLIFIER_INIT)
{
kbd_drv ();
}

switch (_proc_amplifier)
{
case PROC_AMPLIFIER_INIT: // Инициализация ввода-вывода, переменных.
// proc_amplifier_init (); // В этом блоке инициализация периферии. ПДУ, SPI, микросхема.

_proc_amplifier = PROC_AMPLIFIER_ON_DELAY_INIT;
break;

case PROC_AMPLIFIER_STANDBY_MODE: // Дежурный режим усилителя.
if (Get_Event (EV_ID_KEY_PRESSED) && (GetKeyCode () == KEY_POWER_ON_COD)) // Если код ПДУ POWER, то
{
_proc_amplifier = PROC_AMPLIFIER_ON_DELAY_INIT; // включение усилителя.
}
break;

case PROC_AMPLIFIER_ON_DELAY_INIT:
pwr_relay_on (); // Включение реле питания.

_blink_leds = 0; // Инициализация состояния модуля.
_delay_for_speaker = 0; // Инициализация состояния модуля.

_proc_amplifier = PROC_AMPLIFIER_ON_DELAY;
break;

case PROC_AMPLIFIER_ON_DELAY: // Мигание светодиодов. Задержка включения колонок.
if (Get_Event (EV_ID_SPEAKER_ON))
{
_proc_amplifier = PROC_AMPLIFIER_WORK_MODE;
return;
}

blink_leds (); // Мигание светодиодов.
delay_for_speaker (); // Задержка включения колонок.
break;

case PROC_AMPLIFIER_WORK_MODE:
if (Get_Event (EV_ID_KEY_PRESSED)) // Если код ПДУ
{
u08 key = GetKeyCode ();

switch (key)
{
case KEY_POWER_ON_COD:
_proc_amplifier = PROC_AMPLIFIER_OFF_DELAY_INIT; // POWER, то - дежурный режим усилителя.
break;

case KEY_VOLUME_UP_COD:
Set_Event (EV_ID_VOLUME_CHANGE, SET_CLR_EVENT);
set_volume_dir (VOLUME_UP);
break;

case KEY_VOLUME_DOWN_COD:
Set_Event (EV_ID_VOLUME_CHANGE, SET_CLR_EVENT);
set_volume_dir (VOLUME_DOWN);
break;

case KEY_MUTE_COD:
mute_switch ();
break;

default:
break;
}
}

proc_motor_vol ();
break;

case PROC_AMPLIFIER_OFF_DELAY_INIT:
speaker_relay_off (); // Отключение реле колонок.

set_timer (ST_PROC_AMPLIFIER, NO_RERUN_TIMER, AMPLIFIER_OFF_DELAY);
_proc_amplifier = PROC_AMPLIFIER_OFF_DELAY;
break;

case PROC_AMPLIFIER_OFF_DELAY:
if (wait (ST_PROC_AMPLIFIER))
{
pwr_relay_off (); // Отключение реле питания.
_proc_amplifier = PROC_AMPLIFIER_STANDBY_MODE;
}
break;

default:
break;
}
}
//------------------------------------------------------------------------

//========================================================================
static u08 _proc_motor_vol;
static u08 volume_dir;

void proc_motor_vol (void)
{
switch (_proc_motor_vol)
{
case 0:
if (Get_Event (EV_ID_VOLUME_CHANGE)) // Если код ПДУ
{
switch (volume_dir)
{
case VOLUME_UP:
motor_vol_up_on ();
break;

case VOLUME_DOWN:
motor_vol_down_on ();
break;

default:
break;
}

set_timer (ST_PROC_AMPLIFIER, NO_RERUN_TIMER, 200);
_proc_motor_vol = 1;
}
break;

case 1:
if (wait (ST_PROC_AMPLIFIER))
{
motor_vol_up_off ();
motor_vol_down_off ();

_proc_motor_vol = 0;
}
break;

default:
break;
}
}

void set_volume_dir (u08 dir)
{
volume_dir = dir;
_proc_motor_vol = 0;
}

Автор: love777888 May 13 2015, 16:34

Приду домой обязательно проверю, заказаную микросхему 162 буду ждать, послушаю гуру Ксению ,торопиться с 32 не буду.

Автор: Xenia May 13 2015, 16:41

Цитата(love777888 @ May 13 2015, 19:34) *
Приду домой обязательно проверю, заказаную микросхему 162 буду ждать, послушаю гуру Ксению ,торопиться с 32 не буду.


Вы точно уверены, что DIP40 заказали, а то бывают еще квадратные - TQFP44 и MLF44?

Автор: love777888 May 13 2015, 16:44

да дип40 про 44ножку тогда речи не шло.

Автор: Xenia May 13 2015, 16:48

Цитата(love777888 @ May 13 2015, 19:44) *
да дип40 про 44ножку тогда речи не шло.


Я тут обнаружила, что и панельки под DIP40 дорогими стали (дороже 50 руб в розницу). Кстати, из старых выброшенных телевизоров такую панельку можно выковырить. sm.gif Вам такие не встречались?

Автор: demiurg1978 May 13 2015, 16:53

Цанговые панельки SCLM-40 в розницу около 50 р. И это нормальная цена. Учитывая, что бакс подорожал.

Автор: Xenia May 13 2015, 17:20

Цитата(demiurg1978 @ May 13 2015, 19:53) *
Цанговые панельки SCLM-40 в розницу около 50 р. И это нормальная цена. Учитывая, что бакс подорожал.


А вот, поглядите какой ужас! - http://electronix.ru/redirect.php?https://www.terraelectronica.ru/catalog.php?ID=1115&search=sclm40

Автор: demiurg1978 May 13 2015, 17:24

Ксения, вот вам шаблон-проект. В состоянии PROC_AMPLIFIER_INIT инициализируете порты, ввод-вывод, SPI, микросхему и так далее. Опрос кнопок и прием кодов ПДУ в состояниях: PROC_AMPLIFIER_STANDBY_MODE и PROC_AMPLIFIER_WORK_MODE, увидите в коде. В состоянии PROC_AMPLIFIER_STANDBY_MODE прием только кода POWER. В состоянии PROC_AMPLIFIER_WORK_MODE все остальные коды. С этим проектом можно замахнуться и на более жирный МК, чем ATMEGA8 (мой проект скомпилирован и проверен на ATMEGA32A). К сожалению у меня нет в наличии пульта и приемника. Так что коды мне проверить попросту нечем. В моем проекте реализованы дежурный режим. Громкость. Mute. Дело осталось за вами. Если что, пишите здесь или в личку.

 TEMPLATE_FOR_XENIA.rar ( 87.17 килобайт ) : 6
 

Автор: Xenia May 13 2015, 17:29

Цитата(demiurg1978 @ May 13 2015, 20:24) *
Ксения, вот вам шаблон-проект. ... С этим проектом можно замахнуться и на более жирный МК, чем ATMEGA8 (мой проект скомпилирован и проверен на ATMEGA32A). К сожалению у меня нет в наличии пульта и приемника. Так что коды мне проверить попросту нечем. В моем проекте реализованы дежурный режим. Громкость. Mute. Дело осталось за вами. Если что, пишите здесь или в личку.


Так и мне не на чем его проверять. Скомпилите его для Мега8 и предложите love777888. Пусть он и выбирает, чей проект лучше. sm.gif

Автор: demiurg1978 May 13 2015, 17:32

Я не работал с RC5 никогда. Поэтому не зная каких-либо нюансов, в слепую, даже пытаться не буду. Впрочем, пусть ТС распишет все входы и выходы. Попробую...

Автор: Xenia May 13 2015, 17:45

Цитата(demiurg1978 @ May 13 2015, 20:32) *
Я не работал с RC5 никогда. Поэтому не зная каких-либо нюансов, в слепую, даже пытаться не буду. Впрочем, пусть ТС распишет все входы и выходы. Попробую...


Нет там никаких нюансов. Добавляете в проект rc5.c, а в программный модуль #include rc5.h

Инициализация (один раз):
Rc5_SetRx();
Работает автономно по прерыванию от Таймера 1.

А дальше в главном цикле периодически проверяете rc5.dataOK. Если не нуль, то код лежит в rc5.command
После использования rc5.dataOK обнуляете.

Код
if( rc5.dataOK)  //  если получены данные с ПДУ
{
  cmd = rc5.command; // забираем команду  

...

  rc5.dataOK = 0; // сбрасываем флаг
}

Коды команд в документе: http://electronix.ru/redirect.php?http://www.cyrusaudio.com/download/av5-av8-remotecodes

Автор: demiurg1978 May 13 2015, 18:00

Я в файлах rc5 что-то видел про расчеты вручную. У меня частота кварца 16 МГц. Проблем нет на этой частоте? И еще один вопрос. Насколько другие прерывания будут влиять на RC5?

Автор: Xenia May 13 2015, 18:10

Цитата(demiurg1978 @ May 13 2015, 21:00) *
Я в файлах rc5 что-то видел про расчеты вручную. У меня частота кварца 16 МГц. Проблем нет на этой частоте? И еще один вопрос. Насколько другие прерывания будут влиять на RC5?


Другие прерывания, не помешают. А частота (период 1.778 мс) там (в RC.c) установлена из расчета на рабочую частоту 1 МГц без кварца. Поэтому совершенно неважно, какой кварц у вас, а важно то, что у love777888 этот код работает правильно.

Автор: demiurg1978 May 13 2015, 19:07

ТС, давай расклад. Входы, выходы. Будем выходить на жирный МК. Или ты на ATMEGA8 хочешь закончить?

Автор: Xenia May 13 2015, 19:18

Цитата(demiurg1978 @ May 13 2015, 22:07) *
ТС, давай расклад. Входы, выходы. Будем выходить на жирный МК. Или ты на ATMEGA8 хочешь закончить?


Да зачем тут жирный нужен? После компиляции кода получилось всего 2121 байт, т.е. четверть от возможностей Меги8. И это еще вместе со всеми моими отладочными инструментами.

Автор: demiurg1978 May 13 2015, 20:04

Жирный по ногам. Мега8 все ноги заняты. У меня проект создан как конструктор. еще много чего можно добавить. Главное, чтобы со всей этой фигней взлететь sm.gif))

Автор: love777888 May 13 2015, 20:21

Ксения права, тут все главные функции по грундику уже все изложены, там фактически, ничего не осталось, как доделать дежурку по алгоритму который задуман мной и излагал Demiurg на своих видео. Как то так. Я могу всем предложить более сложный проект под названием SONY TA-VE610, в котором мне кажется только профи разберется, но на это все нужно время, кому интересно могу скинуть сервис мануал. А грундик, заслуживает своей атмега8, так как другие функции мы не восстановим, такие как радио, RDS, родную индикацию (люминисцент), там кнопок куча, но самые главные функции Вы Ксения воскресили, за что вам a14.gif . Прошивку AS19 еще не проверял, так как только освободился, но обязательно отпишусь, как протестирую. sm.gif

Автор: Xenia May 13 2015, 20:24

Цитата(love777888 @ May 13 2015, 23:21) *
Прошивку AS19 еще не проверял, так как только освободился, но обязательно отпишусь, как протестирую.


as20 проверяйте, в 19-ой ошибку второпях допустила.

Автор: love777888 May 13 2015, 20:26

Чето ссылки не вижу, в каком сообщении? Все нашел.

Автор: love777888 May 14 2015, 06:38

Отчет по AS20, при включении на оставшимся пине +5вольт, так и должно быть, горит светодиод ресет на отладочной платке, задержка ас работает как надо, управление с клавиатуры и с пульта работает в норме. Но есть одна особенность при нажатии на кнопку POWER, на пине исчезает потенциал +5 вольт, а вот повторное нажатие на кнопку с пульта никчему не приводит, пин не переходит в свое 1 логическое состояние, насколько я помню может ошибаюсь, но нажатие на любую кнопку с пульта и клавиатуры тоже не пробуждает пин PD0, о чем вы говорили в 183 сообщении. Но этого не происходит. Забыл сказать диод на отладочной платке тоже потух, и не зажигается пока не нажмешь на кнопку РЕСЕТ, или не выключишь питание самого грундика.

Автор: Xenia May 14 2015, 06:57

Цитата(love777888 @ May 14 2015, 09:38) *
Но есть одна особенность при нажатии на кнопку POWER, на пине исчезает потенциал +5 вольт, а вот повторное нажатие на кнопку с пульта никчему не приводит, пин не переходит в свое 1 логическое состояние, насколько я помню может ошибаюсь, но нажатие на любую кнопку с пульта и клавиатуры тоже не пробуждает пин PD0, о чем вы говорили в 183 сообщении. Но этого не происходит. Забыл сказать диод на отладочной платке тоже потух, и не зажигается пока не нажмешь на кнопку РЕСЕТ, или не выключишь питание самого грундика.


Попробуем побороть эту особенность. Для пробуждения сделаем вместо RESET мягкий рестарт: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as21.zip.

Автор: love777888 May 14 2015, 07:24

Ксения добавили вы мигание светодиодов Спасибо... Но пин PD0 по прежнему не просыпается, после нажатия кнопки POWER на пульте.

Автор: Xenia May 14 2015, 07:39

Цитата(love777888 @ May 14 2015, 10:24) *
Ксения добавили вы мигание светодиодов Спасибо... Но пин PD0 по прежнему не просыпается, после нажатия кнопки POWER на пульте.


И от нажимания кнопок на панели тоже не просыпается?

Еще ответьте на застарелый вопрос: LC7821 питает от дежурки или от силового транса? Дело в том, что она находится в другом блоке, чем процессорный, а потому вопрос о его питании остается открытым. Может быть я сейчас напрасно головой об лед бьюсь с кнопкой Power, если LC7821 мне не надо перезапускать после спячки?

Автор: love777888 May 14 2015, 08:08

Ксения питается 7821 от силового блока питания +15-15 вольт, управляется от атмеги, атмега запитана от дежурки 5 вольт. От нажатия кнопок что на клавиатуре пульта что на клавишах панели, не просыпается.

Автор: Xenia May 14 2015, 08:15

Цитата(love777888 @ May 14 2015, 11:08) *
Ксения питается 7821 от силового блока питания +15-15 вольт, управляется от атмеги, атмега запитана от дежурки 5 вольт. От нажатия кнопок что на клавиатуре пульта что на клавишах панели, не просыпается.


Тогда испытываем такой вариант: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as22.zip.

Автор: love777888 May 14 2015, 09:07

Да контроллер начал перезапускаться, после нажатия любой клавишы на пульте, происходит перезапуск появляется +5 вольт PD0, мигают диоды, задержка, все вроде работает, но я заметил еще один мой недочет по управлению 7821, по умолчанию у нас зажигается 1-н светодиод а канал по своей индикации (диод горит) у нас заперт, открыты только L5R5 и L8R8, прошу Вас открыть еще при старте L7R7.
Но логика переключения всех шести каналов сохраняется менять ничего не надо, L7R7 должен быть активным если светиться его диод.
Объясню еще так проморгав 5 раз у нас зажигается по умолчанию светодиод по ножке РС5, но канал внутри микросхемы L7R7 закрыт (открывает его кнопка по ножке PD7), что не соответствует, самой ситуации диод горит а канал заперт. Мой недочет только что заметил. Исправте плиз.

Скажите PB4 мы можем задействовать?

Автор: Xenia May 14 2015, 09:45

Цитата(love777888 @ May 14 2015, 12:07) *
... все вроде работает, но я заметил еще один мой недочет по управлению 7821, по умолчанию у нас зажигается 1-н светодиод а канал по своей индикации (диод горит) у нас заперт, открыты только L5R5 и L8R8, прошу Вас открыть еще при старте L7R7.
Объясню еще так проморгав 5 раз у нас зажигается по умолчанию светодиод по ножке РС5, но канал внутри микросхемы L7R7 закрыт (открывает его кнопка по ножке PD7), что не соответствует, самой ситуации диод горит а канал заперт. Мой недочет только что заметил. Исправте плиз.

Поправила это место: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as23.zip.

Цитата(love777888 @ May 14 2015, 12:07) *
Скажите PB4 мы можем задействовать?

Увы, нет. Линии MOSI и MISO работают, как встречные поезда при одном и том же синхроимпульсе SCK. Т.е. при каждом восходящем фронте SCK, в одну строну пропихивается бит по MOSI, а в другую сторону бит по MISO. Так уж автомат шины SPI работает. Если автоматом не пользоваться, то MOSI, MISO и SCK можно использовать, как обычные ножки. Но мне пришлось пойти на его использование, т.к. уж больно муторно обеспечить вручную последовательную передачу. Из-за этого PB4 (он же MISO) оказался задействанным на прием по шине SPI, а поскольку LC7821 немая, то и принимать ему нечего.

В принципе это существенный недостаток LC7821, т.к. более современные аналоги могут не только слушаться внешнего управления, но и передавать текущее состояние своих кранов. Тогда возможен контроль за тем, нормально прошла команда или нет. Т.е. будь такая возможность, то не пришлось бы звонить краны, а достаточно было бы спросить у переключателя, в каком он состоянии - держит ли то, что ему было велено, или позабыл из-за того, что питание силового трансформатора отключалось. Вот в таких случаях линия MISO используется для приема.

Тем не менее, PB4/MISO могла быть в принципе использована для приема данных из другого контроллера, если тот посадить на ту же шину SPI, параллельно LC7821.

Мне бы сейчас хотелось махнуть местами PB1 и PB2, т.к. линия SS формально относится к обслуживанию шины SPI, но боюсь это делать без вашего согласия.

Автор: demiurg1978 May 14 2015, 10:53

Ксения, здравствуйте. Я сегодня с работы заехал в магазин, купил фотоприемник, хочу попытать рс5. У меня кварц на 16 мгц, какие настройки мне применить? Я никогда не вникал, как работает этот протокол, хотел бы максимально быстро запустить прием с пду

Автор: Xenia May 14 2015, 11:19

Цитата(demiurg1978 @ May 14 2015, 13:53) *
Ксения, здравствуйте. Я сегодня с работы заехал в магазин, купил фотоприемник, хочу попытать рс5. У меня кварц на 16 мгц, какие настройки мне применить? Я никогда не вникал, как работает этот протокол, хотел бы максимально быстро запустить прием с пду


На моей плате 16.384 МГц - близко к вашей.

Суть в том, что Таймер 1 должен быть запрограммирован в режиме CTC с периодом 1.778 мсек. Почему на 1.778 мсек? А вот почему:

Видите на картинке, что по стандарту импульсы следуют с периодом 1.778 мсек? Вот на эту частоту и надо запрограммировать таймер.

Частота/период устанавливается в хидере rc.h в виде значения RC5_T, которое потом идет в OCR1A таймера. У меня оно вот как:

Код
#ifdef MYBOARD
  #define  RC5_T                0x71CA  // F_CPU=16.384 MHz, PRESCALER=1
#else
  #define  RC5_T                0x06F1  // F_CPU=1.000 MHz, PRESCALER=1
#endif
...
  OCR1A = RC5_T;

Для расчета использовала прогу AVRcalc.exe, но можно взять любую другую. А может быть, вам и моя константа подойдет - 16 МГц и 16.384 МГц довольно близко. PRESCALER=1 лучше не трогать.

P.S. Для ваших 16 МГц мой калькулятор показывает RC5_T = 0x6F1F.

Автор: demiurg1978 May 14 2015, 11:48

Цитата(Xenia @ May 14 2015, 18:19) *
P.S. Для ваших 16 МГц мой калькулятор показывает RC5_T = 0x6F1F.

Да, спасибо за наводку на avrcalc. Уже посчитал.

Автор: Xenia May 14 2015, 11:57

Цитата(demiurg1978 @ May 14 2015, 14:48) *
Да, спасибо за наводку на avrcalc. Уже посчитал.


Больше ничего, кроме константы RC5_T править не надо. А дальше просто пользуетесь - ждете когда наступит rc5.dataOK и забираете rc5.command, не забывая после этого обнулить rc5.dataOK.

Кстати, если сильно надо, то можно поставить на автомат: внутри rc5.c есть пустая функция ReceivingOver(), которая исполняется сразу же, как только приходит код с ДПУ.

P.S. Я вам в личке вопрос задала про то, какой фотоприемник вы купили. Ответьте пожалуйста.

Автор: demiurg1978 May 14 2015, 12:23

Такой же как у вас.
Гы. Вчера жена в гости уехала с детьми, поэтому появилось время накидать проект для уселка. Все, лафа закончилась, жена вернулась. Когда теперь появится возможность попаять, попрограммировать...

Автор: love777888 May 14 2015, 12:42

Ксения все работает, как всегда вы лучшая! Усилитель работает как надо, единственно то что не отключается пин РВ2, перед тем как пин PD0 уходит в дежурку, а так высший класс. Если надо можно махнуть линии местами PB1 и PB2. Я не знаю архитектуры атмеги, но раз вы настаиваете давайте сделаем, для меня перепаятся несложно.

Автор: demiurg1978 May 14 2015, 12:45

Цитата(love777888 @ May 14 2015, 19:42) *
Ксения все работает, как всегда вы лучшая!

А никто и не сомневается. Между прочим, Ксения - один из моих учителей по си.
У меня на руках ATMEGA8A. Наклевывался один заказ, я заранее купил кристалл. Притом отказ заказчика учитывался. Про запас останется. Заказ отложили, камень теперь на руках sm.gif Буду пытать на нем ваш проект. Фотоприемник прикручу. ТС, где у вас расписано, за что отвечают входы, выходы МК?

Автор: love777888 May 14 2015, 12:58

Смотрите схему
Кнопки выбор входов в 7821
Светодиоды активность того или иного входа (светиться когда активен)
Задержка РВ2
МУТЕ PD1
Реле вкл PD0
D E увеличить громкость уменьшить с пульта
Ну и шины SPI
Ну и все остальное понятно что куда прикручено

 

Автор: Xenia May 14 2015, 13:26

Цитата(demiurg1978 @ May 14 2015, 15:45) *
У меня на руках ATMEGA8A. Наклевывался один заказ, я заранее купил кристалл. Притом отказ заказчика учитывался. Про запас останется. Заказ отложили, камень теперь на руках sm.gif Буду пытать на нем ваш проект. Фотоприемник прикручу. ТС, где у вас расписано, за что отвечают входы, выходы МК?

Фотоприемник должен быть присоединен к ICP1 и никуда иначе! А остальные выводы МК используете по своему усмотрению, RC5 на них не претендует.

Цитата(love777888 @ May 14 2015, 15:42) *
Усилитель работает как надо, единственно то что не отключается пин РВ2, перед тем как пин PD0 уходит в дежурку, а так высший класс. Если надо можно махнуть линии местами PB1 и PB2. Я не знаю архитектуры атмеги, но раз вы настаиваете давайте сделаем, для меня перепаятся несложно.

Пин PD0 пред уходом в дежурку отключила, но линии PB1 и PB2 вам придется перепаять. К тому же есть риск, что от "перемены мест слагаемых" работа может разладиться. Т.е. внимания мне может не хватить для того, чтобы отследить все изменения в программе, которые эта перестановка вызовет. А потому и требуется испытание.

А перестановка нужна нам "на вырост", т.к. когда будем переходить на Мегу162 или какую-то другую, то там PB1 может быть занят на другие цели, а SS всегда присутствует, на каком бы пине он ни был. Т.е. лучше нам сейчас чуточку помучиться, когда у нас почти всё нормально работает, чем решать ребусы при переходе на другой МК.

Измененная прошивка здесь: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as24.zip. Схема теперь стала такая:

Автор: love777888 May 14 2015, 15:21

Да все работает, единственно необходимо, сделать, по алгоритму сначала отключаются ас (РВ1) затем основное питание усилителя(PD0). другими словами есть необходимость в задержке, между 1 и 2 операциями, хотябы 1 -2 секунды. Мультиметром не заметил задержки, давлю на кнопку на пульте сразу отключается АС и питание усилителя.

Автор: Xenia May 14 2015, 16:05

Цитата(love777888 @ May 14 2015, 18:21) *
Да все работает, единственно необходимо, сделать, по алгоритму сначала отключаются ас (РВ1) затем основное питание усилителя(PD0). другими словами есть необходимость в задержке, между 1 и 2 операциями, хотя бы 1-2 секунды. Мультиметром не заметил задержки, давлю на кнопку на пульте сразу отключается АС и питание усилителя.


Задержки и не было. Поставила 1.5 сек: http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as25.zip.

Автор: love777888 May 14 2015, 17:58

Ксения завтра опробую, уже на работе, спасибо.

Автор: demiurg1978 May 14 2015, 23:47

Код
#define  RC5_T                0x6F1F  // F_CPU=16 000 000, PRESCALER=1

#define    FAULT_TIME_RC5       RC5_T*17        // не должно быть более 65535


Warning[Pe061]: integer operation result is out of range F:\Work\Projects\ATMEL\IAR\C\TEMPLATE_FOR_XENIA\rc5.c 69

Как с этим быть?

Автор: Xenia May 14 2015, 23:51

Цитата(demiurg1978 @ May 15 2015, 02:47) *
Код
#define  RC5_T                0x6F1F  // F_CPU=16 000 000, PRESCALER=1
#define    FAULT_TIME_RC5       RC5_T*17        // не должно быть более 65535

Warning[Pe061]: integer operation result is out of range F:\Work\Projects\ATMEL\IAR\C\TEMPLATE_FOR_XENIA\rc5.c 69
Как с этим быть?


Поставьте divisor, такой, чтобы соблюдалось условие RC5_T*17>65535. Наобум кажется, что 16 подойдет. sm.gif

Но у меня компилятор почему-то такой ошибки не выдает.

Автор: demiurg1978 May 14 2015, 23:55

Цитата(Xenia @ May 15 2015, 06:51) *
Поставьте divisor, такой, чтобы соблюдалось условие RC5_T*17>65535. Наобум кажется, что 16 подойдет. sm.gif

? Не понял.

Автор: Xenia May 14 2015, 23:59

Цитата(demiurg1978 @ May 15 2015, 02:55) *
? Не понял.


Поставьте divisor=16 (он же prescaler), от этого RC_T уменьшится в 16 раз. Только надобно разобраться, в какой регистр этот дивизор вставлять.
Т.е. при ваших 16 МГц при divisor=16 величина RC5_T будет в точности такой же как у love777888, т.е. 0x06F1. Потому что у вас 16 МГц,а у него 1 МГц.

P.S. Прошу прощения, у таймере 1 в Меге8 не бывает divisor=16, а бывает только 8 или 64.
Значит берем divisor=8, для него получаем RC5_T=0x0DE3. Это число, будучи умноженным на 17, влезет в два байта:
0x0DE3 * 0x11 = 0xEC13
А дивизор 8 добавляем в строку:
TCCR1B = _BV(CS10) | _BV(ICNC1) | _BV(CS11);
Короче говоря, любыми средствами запускаем Timer1 с периодом 1.778 мсек. Если OCR1A получается слишком велико, то урезаем ее дивизором.

P.P.S. А если все равно ничего не выходит, то выставите фузами своей Меге8 режим работы от внутреннего осциллятора - тогда у вас станет как у love777888. Убедитесь, что RC5 работает, а потом вернитесь на кварц, одновременно увеличив дивизор на таймере.

Автор: demiurg1978 May 15 2015, 03:25

Ну да, придется начать с 1 МГц. Тем более что на 1 МГц все работает.

Автор: demiurg1978 May 15 2015, 04:52

Ксения, у вас в начале программы эти строки:

Код
// Timer


  TCCR1A = 0;
  TCCR1B = (1<<WGM12) | 0x2;  // CTC-mode + divisor=8 (fast)
//  TCCR1B = (1<<WGM12) | 0x4;  // CTC-mode + divisor=256
  TCNT1 = 0;
#ifdef MYBOARD
  OCR1A = 0x7CFF;  // period = 500 ms error = 0.000% at 16.364 MHz / 256 (fast = 125 ms)
#else
  OCR1A = 0x0F41;  // period = 500 ms error = 0.006% at  1.000 MHz / 256 (fast = 125 ms)
#endif


Не могли бы разъяснить?

Автор: Xenia May 15 2015, 04:55

Цитата(demiurg1978 @ May 15 2015, 06:25) *
Ну да, придется начать с 1 МГц. Тем более что на 1 МГц все работает.

Скажите, отчего вы не хотите ответить, какую марку фотоприемника вы себе купили? Я уж и в личку вам писала и в теме вопрос задавала:
Цитата(Xenia @ May 14 2015, 14:57) *
P.S. Я вам в личке вопрос задала про то, какой фотоприемник вы купили. Ответьте пожалуйста.

но вы упорно отвечать не хотите.
Ведь не исключено, что у вас не работает программа только потому, что фотоприемник выбран неверно.

Цитата(demiurg1978 @ May 15 2015, 07:52) *
Ксения, у вас в начале программы эти строки:
...
Не могли бы разъяснить?

Это мусор sm.gif, остался от прошлого применения Timer1, с тех времен, когда именно по нему опрашивались кнопки, а фотодатчика в схеме еще не было. В последних версиях программы я это место закомментарила. Однако вреда от него нет, поскольку в функции инициализации Rc5_SetRx() регистры этого таймера все равно получают новые значения. Именно поэтому я и проглядела, что в программе сохранился прошлый код. Т.е. сейчас в главном модуле программы (main.c) Timer1 вообще не упоминается, т.к. теперь он задействован в rc5.c.

Автор: demiurg1978 May 15 2015, 05:07

Я ответил еще вчера. Сообщение 217. Такой же как у вас.

Не могли бы разъяснить значение continue в этих строках?

Код
// Командный монитор
      switch( lastcmd)  // to upper case
      { case 0:
          continue;
        case 0x1B:  // Esc
          break;
        case 'R':
        case 'r':
          PushStr( "Restart\r\n");
          Flush();
          Restart();
          break;
        case 'S':
        case 's':
          Flag ^= Flag_Stop;
          PushStr( (Flag & Flag_Stop) ? "Stop\r\n" : "Start\r\n");
          break;
        case 'V':
        case 'v':
          PushStr( "Version "VERSION"\r\n");
          break;
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
          continue;
      }


Я ни разу не видел continue в switch-case.

Автор: Xenia May 15 2015, 05:13

Цитата(demiurg1978 @ May 15 2015, 08:07) *
Не могли бы разъяснить значение continue в этих строках?
Я ни разу не видел continue в switch-case.


А return и goto вы внутри switch-case видели? sm.gif Это вещь вполне допустимая, поскольку continue, return и goto не являются спецификой switch-case, а представляют собой обычные операторы, которыми могут быть заполнены блоки case.

В данном случае continue относится к внешнему циклу for, внутри которого оказалась вложена конструкция switch-case. Тут мне не хотелось, чтобы lastcmd обнулялся после выхода из switch, а хотелось, чтобы она сохранила код последнего нажатого символа, т.к. тот задействован в interrupt-процедуре опроса кнопок для их эмуляции с терминала.

Автор: demiurg1978 May 15 2015, 05:16

Return я и сам применяю. А вот насчет continue я не знал. То есть continue означает зацикливание внутри switch?

Автор: Xenia May 15 2015, 05:24

Цитата(demiurg1978 @ May 15 2015, 08:16) *
Return я и сам применяю. А вот насчет continue я не знал. То есть continue означает зацикливание внутри switch?


Да нет же! Этот continue - часть внешнего оператора for! Именно к нему он и относится. А то, что этот continue оказался внутри блока switch ничего не меняет. Ровно так же этот continue мог оказаться внутри блока if.

Автор: demiurg1978 May 15 2015, 05:27

Можно листинг main? Мне еще далеко до завершения. Прикручиваю в своем проекте RC5. Щас паять сяду.

Автор: Xenia May 15 2015, 05:30

Цитата(demiurg1978 @ May 15 2015, 08:27) *
Можно листинг main?

http://electronix.ru/redirect.php?http://77.72.19.18/Temp/as25.rar.

Цитата(demiurg1978 @ May 15 2015, 08:07) *
Я ответил еще вчера. Сообщение 217. Такой же как у вас.

Поняла, а то в теме я это место прозевала. У нас с вами другой фотоприемник, чем у love777888, но выбрала я именно его, поскольку TSOP31236 способен работать не только на 5-вольтовом питании, но и на 3-вольтовом (Supply voltage: 2.5 V to 5.5 V). А мой МК от 3.3 вольт питается.

Автор: love777888 May 15 2015, 06:50

Ксения все работает, задержка есть, что будем делать дальше?, для расширения требуется новый контроллер(функции DEFEAT, LOUDNESS, но не принципиально можно сделать на CD4013) новый контроллер скоро будет, но для грундика вроде все ясно, единственный ньюанс в выключенном состоянии, горит светодиод (один из наших 6-ти диодов). Если можно сделать при выключении чтобы все диоды мигнули один раз и выключились. Тоесть не логично усилитель в дежурке, а кроме сетевого диода горит еще наш один диод. Спасибо!

Автор: Xenia May 15 2015, 07:03

Цитата(love777888 @ May 15 2015, 09:50) *
Ксения все работает, задержка есть, что будем делать дальше?, для расширения требуется новый контроллер(функции DEFEAT, LOUDNESS, но не принципиально можно сделать на CD4013) новый контроллер скоро будет, но для грундика вроде все ясно, единственный ньюанс в выключенном состоянии, горит светодиод (один из наших 6-ти диодов). Если можно сделать при выключении чтобы все диоды мигнули один раз и выключились. То есть не логично усилитель в дежурке, а кроме сетевого диода горит еще наш один диод.


Думаю, что пока новый МК не подоспел, вам лучше заняться ревизией ножек сгоревшего японского процессора, с целью выяснения, чем там еще можно полакомиться. Ведь если это логические уровни (высокий или низкий) на прием или передачу, то ровно то же самое можем сделать и мы любым другим МК. Я ранее уже подначивала вас этим заняться, но вы не ответили.

Ну, а пока можно и поразвлечься, мечтая о схеме на новой Меге. Например, такой: sm.gif

Черненькие ножки хотелось бы пока зарезервировать (не использовать), а все остальные из свободных могут быть заняты делом. Таких 11 штук.

Автор: demiurg1978 May 15 2015, 07:37

Ну как-то так... http://electronix.ru/redirect.php?http://www.youtube.com/watch?v=bsXqCpRGBKA.
Правда всплыл нюанс. Пульт оправляет команды каждые 100 мс. Это видно по Mute. А всплыло на включении дежурного режима. "Уселок" включен. Нажимаю POWER. Он уходит в спячку и заново просыпается. Пока решил так, перед входом в дежурный или рабочий режим обнуляю DataOK. Сижу репу чешу, как обойти этот момент, повтор команд каждые 100 мс...

Автор: love777888 May 15 2015, 07:46

Вскоре я распишу полностью функционал всего усилка.

Автор: Xenia May 15 2015, 07:48

Цитата(demiurg1978 @ May 15 2015, 10:37) *
Ну как-то так... http://electronix.ru/redirect.php?http://www.youtube.com/watch?v=bsXqCpRGBKA.
Правда всплыл нюанс. Пульт оправляет команды каждые 100 мс. Это видно по Mute. А всплыло на включении дежурного режима. "Уселок" включен. Нажимаю POWER. Он уходит в спячку и заново просыпается. Пока решил так, перед входом в дежурный или рабочий режим обнуляю DataOK. Сижу репу чешу, как обойти этот момент, повтор команд каждые 100 мс...


Чего тут репу чесать? Поставьте паузу 1-2 сек после кнопки STANDBY, и лишь после этого обнулите DataOK. А при выходе из спячки вообще ничего предпринимать не надо, т.к. там и так 5 сек задержки есть при рестарте.

P.S. Обратите внимание, что в последней редакции структуру rc5 я внутри процедуры инициализации Rc5_SetRx() обнулила, чтобы при теплом рестарте в ней не оставались данных с прошлого раза.

Автор: demiurg1978 May 15 2015, 08:03

Всплыла эта фигня на включении дежурки. После дежурки сразу включается рабочий режим. Поправил. Всплыло на рабочем режиме. Включается рабочий режим, сразу дежурный. С Mute видно по видео. Судя по всему придется сделать следующее: отслеживать DataOK, если установлен, сбрасывать его. До тех пор, пока DataOK не придет обнуленным.

Автор: Xenia May 15 2015, 08:18

Цитата(demiurg1978 @ May 15 2015, 11:03) *
Судя по всему придется сделать следующее: отслеживать DataOK, если установлен, сбрасывать его. До тех пор, пока DataOK не придет обнуленным.


Судя по величине промежутка 100 мсек (по стандарту там должно быть 110 мсек), это вам не поможет - МК работает быстро, а потому за это время ни один раз успеет увидеть DataOK обнуленным.

P.S. Ваше видео доступно для погляда только вам, для остальных - "автор ограничил доступ к видео"

Автор: demiurg1978 May 15 2015, 08:43

Цитата(Xenia @ May 15 2015, 15:18) *
Судя по величине промежутка 100 мсек (по стандарту там должно быть 110 мсек), это вам не поможет - МК работает быстро, а потому за это время ни один раз успеет увидеть DataOK обнуленным.

Я не помнил точную цифру, округлил до 100 мс. В том-то и дело, что МК работает быстро. А у меня подход, никаких долгих циклов. Каждая задача разбивается условиями, флагами, состояниями. Такой подход себя давно оправдал тем, что проекты собираются быстро, как конструктор. Автоматное программирование исключает грубые ошибки. Ну а мелкие выявляются при отладке.
Цитата(Xenia @ May 15 2015, 15:18) *
P.S. Ваше видео доступно для погляда только вам, для остальных - "автор ограничил доступ к видео"

Сделано.

Кстати. Такой вопрос. Просто в данный момент мне некогда углубленно вникать. У меня на 16 МГц системный тик 1 мс. Одна итерация main должна с запасом впаковаться в системный тик. Как работает модуль RC5? Если в этом модуле зацикливание больше чем на 1 мс, тады ой...

Автор: Xenia May 15 2015, 08:56

Цитата(demiurg1978 @ May 15 2015, 11:43) *
Кстати. Такой вопрос. Просто в данный момент мне некогда углубленно вникать. У меня на 16 МГц системный тик 1 мс. Одни итерация main должна с запасом впаковаться в системный тик.

Не поняла, что вы называете "системным тиком".

Цитата(demiurg1978 @ May 15 2015, 11:43) *
Как работает модуль RC5? Если в этом модуле зацикливание больше чем на 1 мс, тады ой...

Он работает исключительно на двух обработчиках прерываний: TIMER1_CAPT_vect и TIMER1_COMPA_vect, в каждом из которых всего лишь по 4-6 строк кода. И только в момент готовности кода ДПУ, там чуть больше строк. Едва ли эти обработчики способны заметно на что-то повлиять, тем более, когда у вас МК на 16 Мгц.

Автор: demiurg1978 May 15 2015, 10:28

Цитата(Xenia @ May 15 2015, 15:56) *
Не поняла, что вы называете "системным тиком".

У меня очередь программных таймеров и обработчик. Аппаратный таймер настроен на 1 мс в случае применения 8 и 16 МГц кварца. 10 мс, если кварц для uart, 7,3728 МГц к примеру. 1 мс, 10 мс - это и есть системный тик.

Настройки для RC5 при 16 МГц:
Код
#define  RC5_T                0x006E  // F_CPU=16 000 000, PRESCALER=256

void Rc5_SetRx()
{
// TCCR1B|= _BV(CS10);   //без предделителя
// TCCR1B|= _BV(ICNC1);  //Вкл. подавитель шума на входе захвата
// TCCR1B&= ~_BV(ICES1); //Выбор детектируемого фронта на входе захвата
// Если ICESn =0, то падающий фронт приводит к захвату,  ICESn = 1, то нарастающий фронт.
  TCCR1B = _BV(CS12) | _BV(ICNC1);

// Регистр маски прерываний таймера-счетчика
// _BV(TICIE1) Разрешение прерывания по захвату состояния таймера-счетчика 1;
// _BV(OCIE1A);// Разрешение прерывания по совпадению
  TIMSK |= _BV(TICIE1) | _BV(OCIE1A);
  OCR1A = RC5_T;
  TCNT1=0;
}

Поехало с первого запуска. Точнее, со второго, но я просто поторопился и забыл переставить перемычку кварца на STK-500. sm.gif

Автор: Xenia May 15 2015, 10:57

Цитата(demiurg1978 @ May 15 2015, 13:28) *
Настройки для RC5 при 16 МГц:
#define RC5_T 0x006E // F_CPU=16 000 000, PRESCALER=256


Зря бы такой большой PRESCALER загнали. Модуль rc5.c измеряет длительность импульсов по захвату, а потому RC5_T*17 желательно растянуть на всю шкалу (16 бит) таймера, чтобы измерение было точнее. Отсюда понятно, почему оно не должно превышать 65535. Т.е. надо выбирать МИНИМАЛЬНЫЙ PRESCALER, обеспечивающим при OCR1A=RC5_T период 1.778 мсек.

А если вы ему макушку так сурово подрубили (0x006E*0x11=0x074E), то таймер не достает даже до 1/20 своей шкалы. Ведь как только он достигнет этой макушки, то автомат тут же сбросит его в ноль. Т.е. 19/20 шкалы таймера вы выбросили коту под хвост.

Я же специально для вас подробно написала, что при 16 МГц достаточно PRESCALER=8, и даже выражение RC5_T*17 в цифрах посчитала, показав, что оно в 65535 укладывается. Впрочем, мое дело сторона, хозяин - барин.

Автор: demiurg1978 May 15 2015, 11:11

Я отталкивался от того, что главное заставить таймер отщелкать 1,778 мс. Ща поправлю

Момент:

Код
#define    FAULT_TIME_RC5       RC5_T*17        // не должно быть более 65535


Warning[Pe061]: integer operation result is out of range F:\Work\Projects\ATMEL\IAR\C\TEMPLATE_FOR_XENIA\rc5.c 69
Warning[Pe068]: integer conversion resulted in a change of sign F:\Work\Projects\ATMEL\IAR\C\TEMPLATE_FOR_XENIA\rc5.c 69


Код
#define    FAULT_TIME_RC5       RC5_T*17U        // не должно быть более 65535


Total number of warnings: 0

Автор: Xenia May 15 2015, 11:27

Цитата(demiurg1978 @ May 15 2015, 14:11) *
Код
#define    FAULT_TIME_RC5       RC5_T*17U        // не должно быть более 65535


Вот это вы верно подметили, а я этого подвоха не заметила.

Автор: love777888 May 15 2015, 11:46

Функции грундика оставшиеся
Loudness - функция тонкомпенсации, включается "землей", выключается +5 вольт, триггерный характер работы
Defeat -подключает и отключает тембр блок, влючается "землей", отключается +5вольт, триггерный характер работы
Speaker A - акустическая система а, (на заднице усилка 1-я пара разьемов идущая на АС), влючается "землей", отключается +5вольт, триггерный характер работы
Speaker B - акустическая система b, (на заднице усилка 2-я пара разьемов идущая на АС), влючается "землей", отключается +5вольт, триггерный характер работы
Все остальные, это радио и навароты, типа присвоение имени станции, я думаю и без этого можно обойтись. Вобщем как то так Ксения.

Автор: Xenia May 15 2015, 12:05

Цитата(love777888 @ May 15 2015, 14:46) *
Функции грундика оставшиеся
Loudness - функция тонкомпенсации, включается "землей", выключается +5 вольт, триггерный характер работы
Defeat -подключает и отключает тембр блок, влючается "землей", отключается +5вольт, триггерный характер работы
Speaker A - акустическая система а, (на заднице усилка 1-я пара разьемов идущая на АС), влючается "землей", отключается +5вольт, триггерный характер работы
Speaker B - акустическая система b, (на заднице усилка 2-я пара разьемов идущая на АС), влючается "землей", отключается +5вольт, триггерный характер работы
Все остальные, это радио и навароты, типа присвоение имени станции, я думаю и без этого можно обойтись.


Это вы только про кнопки рассказываете, а меня интересуют прочие контакты японского процессора.
1. Контакты 9 и 10 через транзисторы управляют линиями B и C. Что это?
2. Контакт 20 - RC-OUT. Это что?
3. Что за деталь "VOLUME LED BOARD", к которой идет 22-нога процессора?
4. Нога 16, чем она управляет?
5. Ноги 13 и 24, что они чувствуют?
6. Весь левый край процессора, соединенный разъемом с "TUNER BOARD". Там кроме MUTE что-то полезное есть? STEREO, CL, CE, RDS_CLK, RDS_DATA - это что?
7. Ножки 7 и 11, управляющие через транзисторы линиями SPKA и SPKB - это куда пошло?
8. Вверху FUTABA c цифропоказывающими индикаторами. Схема на нее есть? Достать можно информацию, как ею управлять?

Автор: demiurg1978 May 15 2015, 12:08

ТС, у тебя триггерные включения четко работают? Посмотри пожалуйста видео, ссылка чуть выше. У меня Mute включается как бы дребезгом, из-за повтора команд с пульта каждые 100 мс. Попробуй на Mute нажать и держать, секунду, к примеру.

Автор: demiurg1978 May 15 2015, 13:34

Ксения, я решил проблему с повтором команд пульта.

CODE
static u08 _wait_rc5_data_ok_null;

//========================================================================
bool wait_rc5_data_ok_null (void)
{
u08 a = false;

switch (_wait_rc5_data_ok_null)
{
case 0:
a = true;
break;

case 1:
set_timer (ST_WAIT_RC5_DATA_OK_NULL, NO_RERUN_TIMER, 150);
_wait_rc5_data_ok_null = 2;
a = false;
break;

case 2:
if (wait (ST_WAIT_RC5_DATA_OK_NULL))
{
if (rc5.dataOK)
{
rc5.dataOK = 0;
set_timer (ST_WAIT_RC5_DATA_OK_NULL, NO_RERUN_TIMER, 150);
a = false;
}
else
{
_wait_rc5_data_ok_null = 0;
a = true;
}
}
break;

default:
a = false;
break;
}

if (a)
return true;
else
return false;
}
//------------------------------------------------------------------------
#pragma inline
void set_wait_rc5_data_ok_null (void)
{
_wait_rc5_data_ok_null = 1;
}


//========================================================================

//========================================================================
case PROC_AMPLIFIER_STANDBY_MODE: // Дежурный режим усилителя.
if (wait_rc5_data_ok_null ())
{
if (rc5.dataOK)
{
if (rc5.command == 12)
{
set_wait_rc5_data_ok_null ();
_proc_amplifier = PROC_AMPLIFIER_ON_DELAY_INIT; // включение усилителя.
}
rc5.dataOK = 0;
}
}
break;

case PROC_AMPLIFIER_WORK_MODE:
if (wait_rc5_data_ok_null ())
{
if (rc5.dataOK)
{
switch (rc5.command)
{
case 12:
rc5.dataOK = 0;
set_wait_rc5_data_ok_null ();
_proc_amplifier = PROC_AMPLIFIER_OFF_DELAY_INIT; // POWER, то - дежурный режим усилителя.
return;

case 13:
set_wait_rc5_data_ok_null ();
mute_switch ();
break;

case 16:
Set_Event (EV_ID_VOLUME_CHANGE, SET_CLR_EVENT);
set_volume_dir (VOLUME_UP);
break;

case 17:
Set_Event (EV_ID_VOLUME_CHANGE, SET_CLR_EVENT);
set_volume_dir (VOLUME_DOWN);
break;

default:
break;
}

rc5.dataOK = 0;
}
}


У нас два типа команд. Повтор не нужен (Mute к примеру). Повтор нужен (громкость к примеру). Думаю по коду все понятно будет. Сейчас работает четко как часы.

Автор: love777888 May 15 2015, 15:20

Это вы только про кнопки рассказываете, а меня интересуют прочие контакты японского процессора.
1. Контакты 9 и 10 через транзисторы управляют линиями B и C. Что это?
2. Контакт 20 - RC-OUT. Это что?
3. Что за деталь "VOLUME LED BOARD", к которой идет 22-нога процессора?
4. Нога 16, чем она управляет?
5. Ноги 13 и 24, что они чувствуют?
6. Весь левый край процессора, соединенный разъемом с "TUNER BOARD". Там кроме MUTE что-то полезное есть? STEREO, CL, CE, RDS_CLK. RDS_DATA - это что?
7. Ножки 7 и 11, управляющие через транзисторы линиями SPKA и SPKB - это куда пошло?
8. Вверху FUTABA c цифропоказывающими индикаторами. Схема на нее есть? Достать можно информацию, как ею управлять?

1) Это LOUDNESS И DEFEAT о чем я рассказывал Вам
2) Контакт 20 и 26 RC In & RC out я понимаю типа сервисной шины подключаются прямо на процессор через буфер.
3) "VOLUME LED BOARD" Да забыл учесть я думаю валкодер мигает во время своего передвижения влево или вправо а потом горит, когда останавливается, разумеется все должно мигать при работе с пульта ткогда мы жмем VOL+ VOL-.
4) Нога 16 это задержка колонок систем А и Б, в то время как существуют, два порта на процессоре которые управляют системами А и Б.
5) Ножка 13 это Mute в тембр блоке, но зачем там транзистор T615? в цифровой части? по этой шине?
Ножка 24 я понимаю отслеживает питание, если меньше нормы усилитель не пустишь, вроде Ресета.
6) Это шины управления тюнером он с RDS-ом, моно/стерео режим, МUTE там как раз таки свой, отдельной темой живущий именно в тюнере.
7) Это системы АС А и Б, в более жирной атмеге можно реализовать. Пока здесь обьеденив два этих пина управляю задержкой АС, но это пока.
8) Это люминисцентный индикатор попробую что нибудь найти на нее.


Мюте вроде работает в норме, повторно нажимаешь вкл выкл сам режим.

Автор: Xenia May 15 2015, 15:25

Цитата(love777888 @ May 15 2015, 17:37) *
1) Это LOUDNESS И DEFEAT о чем я рассказывал Вам
...
8) Это люминисцентный индикатор попробую что нибудь найти на нее.


Поняла, не очень жирный улов. Ожидала большего.

Или что-то возродить все-таки возможно? Хотя бы то, что попроще. Ведь японский процессор как-то все это запускал, то что нам мешает это сделать? Именно поэтому я и интересовалась ножками этого процессора, т.к. только ими он и мог управлять этой установкой.

А среди того, что вы по моей просьбе перечислили, я ничего из этих функций не вижу. Хотя и не вполне могу догадаться, что они делают. Скажем, режимы CD и TAPE - это что? Прогрывание дисков и ленты? Что такое DCC догадаться не смогла, а надпись над лампочкой CD и вовсе не разобрала - какое-то длинное слово там написано. Или всего этого в этом блоке нет, а есть только тюнер?

Поэтому хочу вас попросить перечислить все эти 6 режимов с комментариями, что из них возможно возродить, а что нет. И почему.

Автор: love777888 May 15 2015, 20:06

Ксения функцию коммутации и ее же индикацию я при вашей помощи восстановил это раз, включение АС с задержкой это два, регулировка громкости это три, отключение и включение дежурка это четыре, какое никакое ПДУ тоже приятно это пять, все эти функции являются стандартом для такого рода усилителей. Ну а то что мигает индикация тоже приятно нейкое украшенство.

А среди того, что вы по моей просьбе перечислили, я ничего из этих функций не вижу. Хотя и не вполне могу догадаться, что они делают. Скажем, режимы CD и TAPE - это что? Прогрывание дисков и ленты? Что такое DCC догадаться не смогла, а надпись над лампочкой CD и вовсе не разобрала - какое-то длинное слово там написано. Или всего этого в этом блоке нет, а есть только тюнер?

СD - диски, TAPE - правильно кассета, DCC сам не знаю, этого всего нету, это всего лишь усилитель HI-FI, к которому подключаются все эти сигналы, тобишь любое аудио устройство с линейным выходом, Да тюнер в нем есть но он тоже не управляется так как процессор сгорел.
Есть еще СОНИ в нем та же ситуация, только наверное там буду заказывать процессор, вроде он есть в продаже, потому что там все управление внутри, кроме обычных наших логических операций включить выключить, сделано по шине SPI, что для меня трудно, сам я не сделаю управление, или буду делать, (потому что той модели что у меня нет в списках), но это займет кучу времени пока научусь писать компилировать прошивки.

Автор: Xenia May 16 2015, 04:22

Цитата(love777888 @ May 15 2015, 23:06) *
СD - диски, TAPE - правильно кассета, DCC сам не знаю, этого всего нету, это всего лишь усилитель HI-FI, к которому подключаются все эти сигналы, тобишь любое аудио устройство с линейным выходом, Да тюнер в нем есть но он тоже не управляется так как процессор сгорел.


DCC = Digital Compact Cassette. Т.е. снова кассета. А точно, что ваш блок нельзя вставить ни кассету, ни CD?

Родной процессор сгорел, это верно, но тюнер-то жив. Может быть, этот тюнер не слишком сложно управляется со стороны процессора? Самое трудное узнать, как управлять частотой/длиной_волны принимаемой станции. Может быть найдете, за какую линию процессор дергал, чтобы эти две функции осуществлять?

Цитата(love777888 @ May 15 2015, 23:06) *
Есть еще СОНИ в нем та же ситуация, только наверное там буду заказывать процессор, вроде он есть в продаже, потому что там все управление внутри, кроме обычных наших логических операций включить выключить, сделано по шине SPI, что для меня трудно, сам я не сделаю управление, или буду делать, (потому что той модели что у меня нет в списках), но это займет кучу времени пока научусь писать компилировать прошивки.

А точно ли, что в заказанном вами процессоре будет фирменная прошивка для СОНИ? А то ведь очень часто бывает так, что в схемах выгорает процессор, его пытаются заменить на новый, но после этого по-прежнему ничего не работает. А дело в том, что старый/сгоревший процессор был с фирменной прошивкой, а новый - пустой. Аналогичная ситуация с автомобильными контроллерами.

Автор: demiurg1978 May 16 2015, 04:29

Нужны качественные фото потрохов уселка. На радиоприемнике должна быть своя микросхема. Узнаем, что за микросхема, будем знать как восстановить приемник. По поводу дисплея. Если дисплей самостоятельный модуль, то это просто прекрасно. Если же это просто VFD стекляшка, тогда все плохо. Нужно делать преобразователь для питания анодов и нитей накала. Управлять сегментами. В общем нужны качественные фото потрохов уселка.

Автор: love777888 May 16 2015, 05:49

Цитата(Xenia @ May 16 2015, 07:22) *
А точно ли, что в заказанном вами процессоре будет фирменная прошивка для СОНИ? А то ведь очень часто бывает так, что в схемах выгорает процессор, его пытаются заменить на новый, но после этого по-прежнему ничего не работает. А дело в том, что старый/сгоревший процессор был с фирменной прошивкой, а новый - пустой. Аналогичная ситуация с автомобильными контроллерами.

Так в том то и дело процессор с его парт номером есть в продаже, но ситуация двусмысленная нету в списке моделей моего усилителя, тоестть есть списки каких то тюнеров, а моего нет, вот стоит ли тратить 50 баксов, а в итоге повезет не повезет с прошивкой?, сам занимаюсь ремонтом всей этой техники время от времени, и с такой ситуацией сталкивался, что нужен именно этот контроллер именно с этого аппарата, а бывало что перепрошивка помогала, но тут боюсь что нековские процы шьются один раз и навсегда, а попытка чтения прошивы неуверен, но мне кажется приведет к блокирове проца, как это было с раскодировкой магнитол с моторолой на борту.

Блин да как вы пользуеиесь этими цитатами, пробую бред какой то.

Автор: demiurg1978 May 16 2015, 05:52

Цитата(love777888)
Блин да как вы пользуеиесь этими цитатами, пробую бред какой то.

Квадратные скобки
[] начало [/]конец

Автор: love777888 May 16 2015, 05:55

Цитата(demiurg1978 @ May 16 2015, 07:29) *
Нужны качественные фото потрохов уселка. На радиоприемнике должна быть своя микросхема. Узнаем, что за микросхема, будем знать как восстановить приемник. По поводу дисплея. Если дисплей самостоятельный модуль, то это просто прекрасно. Если же это просто VFD стекляшка, тогда все плохо. Нужно делать преобразователь для питания анодов и нитей накала. Управлять сегментами. В общем нужны качественные фото потрохов уселка.


Фото не обязательно, но можно выложить, там напряжение настройки, перекл диапазонов, и обратная связь для отслеживания частоты и подстройки гетеродина, есть рдс тобишь инфа идущая с частотой перед. станции, но без экрана это все бесполезно, дисплей это стекляшка как вы выразились, правильно нужно делать преобразователь для питания анодов и нитей накала. Управлять сегментами. А стоит ли если у меня есть внешний тюнер фирмы сони.

Автор: Xenia May 16 2015, 06:03

Цитата(love777888 @ May 16 2015, 08:49) *
Блин да как вы пользуеиесь этими цитатами, пробую бред какой то.


Вы забыли закрыть квадратную скобку после выражения:
[quote name='Xenia' date='May 16 2015, 07:22' post='1337651'
Попробуйте отредактировать, если не поздно.

Я же делаю цитаты так - жму Reply, который цитирует все сообщение целиком, а потом удаляю из него лишнее.

Автор: love777888 May 16 2015, 06:34

Цитата(Xenia @ May 16 2015, 09:03) *
Я же делаю цитаты так - жму Reply, который цитирует все сообщение целиком, а потом удаляю из него лишнее.

Все вроде научился.

Что дальше будем делать?Я просто про что говорю если даже тюнер восстанавливать, то нужен дисплей...

Автор: Xenia May 16 2015, 06:51

Цитата(love777888 @ May 16 2015, 09:34) *
Что дальше будем делать?Я просто про что говорю если даже тюнер восстанавливать, то нужен дисплей...


Я тоже без колебаний выбрала бы дисплей, т.к. это гораздо проще, чем возиться с тюнером. Даже, если тюнер не осилим, но на дисплее можно какое-нибудь матерное слово написать sm.gif для прикола, а потом гостей этим удивлять.

Судя по всему, питание на дисплей уже поступает, но лучше бы проверить, что у него на 1-ой и 38-ой ногах (это F1 и F2), а заодно и то, что приходит с -VFTD.

Сегментные индикаторы обычно управляются входами по штуке на сегмент + 1 дополнительный на десятичную точку. На вид левые две цифры именно такие. Что касается 8-ти штук крупных индикаторов (которые частоту кажут), то в них сегментов может быть больше.

Но самое странное, что выводов все равно не хватит на все сегменты, т.к. последних в сумме получается гораздо больше, чем проводов. Из-за этого закрадывается подозрение, что цифры управляются по очереди, а очередность задают контакты 27-34, подтянутые резисторами к -VFTD, которых тоже 8. Потенциал -VFTD крайне необходимо выяснить, надеюсь, что он не отрицательный.

А потом можно действовать методом тыка - заземлять по одной ножке те, что идут к процессору (пока за исключением подтянутых 27-34) и смотреть, зажигаются ли от этого какие-либо сегменты на индикаторе. Если да, то можно составить табличку, как ими манипулировать. а если нет, то заземлить одну из подтянутых линий (27-34) и испытать снова.

Всего от дисплея к процессору тянется 27 линий, а потому для управления дисплеем нам понадобится еще одна 40-ногая Мега sm.gif.


Автор: demiurg1978 May 16 2015, 07:02

Цитата(Xenia @ May 16 2015, 13:51) *
...

F1 F2 накальные нити. Я давно занимался этой темой. Точно не помню. Есть сетки. Аноды и катоды.

Автор: Xenia May 16 2015, 07:37

Цитата(demiurg1978 @ May 16 2015, 10:02) *
F1 F2 накальные нити. Я давно занимался этой темой. Точно не помню. Есть сетки. Аноды и катоды.


Сомневаюсь я, по цвету свечения сильно похоже на обычные светодиоды.

Автор: demiurg1978 May 16 2015, 07:44

Цитата(Xenia @ May 16 2015, 14:37) *
Сомневаюсь я, по цвету свечения сильно похоже на обычные светодиоды.

А я говорил, пусть ТС выложит фото потрохов своего аппарата.

Не могу пока победить повтор посылок. Полез разбираться с протоколом.
Цитата
Стартовые биты всегда равны 1. Бит Т(Toggle) меняет свое значение при каждом нажатии одной и той же кнопки пульта ДУ, что указывает на повторное нажатие кнопки. Если кнопка постоянно нажата, то периодически посылается одна и таже посылка и бит T в ней не меняется.

Посмотрел осциллографом. Действительно, есть такой бит. Меняет свое состояние при каждом нажатии одной и той же кнопки. Ксения, в модуле RC5 есть такой бит?

Автор: love777888 May 16 2015, 08:17

это люминисцентный японский индикатор, в нем нет светодиодов, это я могу гарантированно сказать. я бы больше склонялся к двустрочному индикатор типа хитачи 1602. сейчас полно поселок на этом двучтрочном индикаторе в интернете

Автор: Xenia May 16 2015, 08:22

Цитата(demiurg1978 @ May 16 2015, 10:44) *
Не могу пока победить повтор посылок. Полез разбираться с протоколом.
Посмотрел осциллографом. Действительно, есть такой бит. Меняет свое состояние при каждом нажатии одной и той же кнопки. Ксения, в модуле RC5 есть такой бит?

Что вы все время на модуль RC5 пеняете? В нем всего-то 25 строк, чем он разительно отличается от простыней кода вашего собственного сочинения, которые вы выкладываете для моего ознакомления sm.gif. Взяли бы, да сами в его код заглянули. Поди не я сама его сочиняла.

По-видимому, от rc5.command ждать более 6-ти битов не стоит, ибо остальное вырезано маской:
rc5.command = receive & 0x3F; // 0b 11 1111

Возможно нам мог бы помочь rc5.control_bit, но с его формированием, по-видимому, допущена ошибка:
rc5.control_bit = CheckBit(receive,11);
эквивалент:
rc5.control_bit = receive & (1<<11);
т.к. 11-ый бит не может поместиться в байте, отведенном для rc5.control_bit.

Поэтому советую вам заменить эту строку на:
rc5.control_bit = receive >> 6;
а потом поискать в rc5.control_bit бит повтора.

Похоже, что toggle-бит и в самом деле находится на месте единицы, сдвинутой на 11 позиций влево:

http://electronix.ru/redirect.php?http://techdocs.altium.com/display/FPGA/Philips+RC5+Infrared+Transmission+Protocol

Цитата(love777888 @ May 16 2015, 11:17) *
это люминисцентный японский индикатор, в нем нет светодиодов, это я могу гарантированно сказать. я бы больше склонялся к двустрочному индикатор типа хитачи 1602. сейчас полно поселок на этом двучтрочном индикаторе в интернете

Какой природы индикатор, для вашей задачи несущественно - делайте, что в #265 вам было сказано. sm.gif

Автор: love777888 May 16 2015, 09:38

Цитата(Xenia @ May 16 2015, 11:22) *
Какой природы индикатор, для вашей задачи несущественно - делайте, что в #265 вам было сказано. sm.gif

Вот более подробно распишу F1 F2 это накалы.
-VFTD-отрицательное напряжение кот берется с стабилизатора на T609 там будет порядка -30-33вольт судя по стабилитронам в базе.


Так и есть только померял -32.5 вольта (-VFTD)

Автор: demiurg1978 May 16 2015, 09:46

Цитата(Xenia @ May 16 2015, 15:22) *
Что вы все время на модуль RC5 пеняете?
rc5.control_bit = receive >> 11;
а потом поискать в rc5.control_bit бит повтора.

Для того, чтобы заниматься проектом, нужно знать что есть в наличии и исходить из этого. Я почитал о протоколе, с битом разобрались. Вчера я побаловался с пультом, посмотрел, какая реакция на каждую кнопу.
В общем, я кардинально пересмотрел подход к использованию модуля и проектированию задач с использованием RC5. Вчерашний пример хоть и заработал, но он меня не устраивал некоторыми моментами.
Итак. Создается отдельная функция, которая работает с модулем RC5. Требования: четкие однократные срабатывания без дребезга из-за повтора команд. Удержание, автоповтор. Команды пульта двух типов. Триггерные и с автоповтором. Поэтому создается таблица с перечислением команд и заданием типа для каждой команды. Функция принимает команды, перебирает таблицу, в соответствии с таблицей обрабатывает дальнейший прием команд. Это единственный верный вариант. Или в одном месте обрабатываем таблицу или мучаемся в каждом конкретном случае.

Автор: Xenia May 16 2015, 09:51

Цитата(love777888 @ May 16 2015, 12:38) *
Вот более подробно распишу F1 F2 это накалы.
-VFTD-отрицательное напряжение кот берется с стабилизатора на T609 там будет порядка -30-33вольт судя по стабилитронам в базе.
Так и есть только померял -32.5 вольта (-VFTD)

Не может такой высокое напряжение, да еще и в отрицательной полярности, подаваться на 74-ю ногу процессора!

Проверьте, попадает ли это напряжение (-32.5 вольта) на 74-ю ногу! (или точнее - туда, где раньше была 74-ая нога). Может быть это опечатка в схеме, и та линия, что идет к дисплею, не -VFTD, а что-то другое? Пощупайте напряжения на контактах дисплея относительно земли, что там?

Цитата(demiurg1978 @ May 16 2015, 12:46) *
В общем, я кардинально пересмотрел подход к использованию модуля и проектированию задач с использованием RC5. Вчерашний пример хоть и заработал, но он меня не устраивал некоторыми моментами.

Вы разобрались, а я нет. Поясните, пожалуйста, ситуацию с toggle-битом. Нашли ли вы его в реальности или только в книжках? И если да, то где он находится и с каких случаях появляется. Удалось ли его поймать через rc5.control_bit после модификации кода. Или вы этого не делали?

Автор: demiurg1978 May 16 2015, 10:14

Бит есть. Я выше в коде написал, сдвиг на 11 битов. Когда будет полностью готово, я дам вам проект. Имеется ввиду работа с RC5.

http://electronix.ru/redirect.php?http://vnnik71.narod.ru/rc_5.html

Проверка наличия бита:

Код
rc5.control_bit = (receive & 0x0800) >> 11;

         if (rc5.dataOK)
         {
            if (rc5.control_bit)
               set_bit (DDRB, 7);
            else
               clr_bit (DDRB, 7);

            rc5.dataOK = 0;
         }

Автор: Xenia May 16 2015, 11:27

demiurg1978, помогите разобраться с отрицательным напряжением -32.5 вольта, поступающим на процессор! А то мне одной не справиться.
Даташит на процессор http://electronix.ru/redirect.php?http://77.72.19.18/Temp/M3817x.pdf, остальные картинки в последних двух страницах темы..

Автор: demiurg1978 May 16 2015, 11:36

- 32 V относительно чего? что-то высоковато... Пусть ТС померяет относительно - 5 V. Объясняется просто. Технология изготовления МК. Открытый полевой транзистор проводит ток в обе стороны. Разрабы пошли по пути наименьшего сопротивления...

Автор: Xenia May 16 2015, 11:44

Цитата(demiurg1978 @ May 16 2015, 14:36) *
- 32 V относительно чего? что-то высоковато... Пусть ТС померяет относительно - 5 V. Объясняется просто. Технология изготовления МК. Открытый полевой транзистор проводит ток в обе стороны. Разрабы пошли по пути наименьшего сопротивления...


74-ая нога - это питание Vcc! Туда по определению отрицательное напряжение подаваться не может, а уж тем более -32.5 вольта. Тогда как линия -VFTD не вызывает сомнений в своей отрицательности - видите в какой полярности стоят конденсаторы при стабилизаторе на T609?

Автор: demiurg1978 May 16 2015, 11:48

Цитата(Xenia @ May 16 2015, 18:44) *
74-ая нога - это питание Vcc! Туда по определению отрицательное напряжение подаваться не может, а уж тем более -32.5 вольта. Тогда как линия -VFTD не вызывает сомнений в своей отрицательности - видите в какой полярности стоят конденсаторы при стабилизаторе на T609?

Поясняю еще раз, открытый полевой транзистор проводит ток в обе стороны. Скорее всего, это отрицательное напряжение относительно питания VFD. И плевать, что оно подается на + питания МК. Оно от него гальванически развязано. Открытые верхние ключи МК подают отрицательное напряжение на сетки VFD. Ну или на что там... Я последний раз баловался с VFD индикатором магнитофона МАЯК лет дцать назад.

Все правильно, все полярности соответствуют.

Автор: Xenia May 16 2015, 12:01

Цитата(demiurg1978 @ May 16 2015, 14:48) *
Поясняю еще раз, открытый полевой транзистор проводит ток в обе стороны. Скорее всего, это отрицательное напряжение относительно питания VFD. И плевать, что оно подается на + питания МК. Оно от него гальванически развязано.


Но я просила ТС померить это напряжение относительно земли. И даже жирно выделила слова "относительно земли" (сообщение #273). И если он замерил -32.5 вольта, то это напряжение относительно земли процессора, а не от какого-то другого блока.

Автор: demiurg1978 May 16 2015, 12:04

В принципе насчет полевиков я сказал правильно. Пусть ищет вторую точку питания.

Автор: love777888 May 16 2015, 12:16

Цитата(demiurg1978 @ May 16 2015, 14:48) *
Поясняю еще раз, открытый полевой транзистор проводит ток в обе стороны. Скорее всего, это отрицательное напряжение относительно питания VFD. И плевать, что оно подается на + питания МК. Оно от него гальванически развязано. Открытые верхние ключи МК подают отрицательное напряжение на сетки VFD. Ну или на что там... Я последний раз баловался с VFD индикатором магнитофона МАЯК лет дцать назад.

Все правильно, все полярности соответствуют.

Ве правильно расписано, там -32.5 вольта, индикатор не светиться, когда подаешь на сетки общий провод тобишь минус схемы сегменты засвечиваются, на аноды и на сетки поступает отрицательное напряжение, когда нам необходимо засветить сегмент, подается 0 или чуть выше положит. напряжение. Так что индикатор там такой FUTABA FV 614G



Цитата(Xenia @ May 16 2015, 15:01) *
Но я просила ТС померить это напряжение относительно земли. И даже жирно выделила слова "относительно земли" (сообщение #273). И если он замерил -32.5 вольта, то это напряжение относительно земли процессора, а не от какого-то другого блока.

Относительно земли ксения там -32.5 вольта, земля digital соеденина со всеми блоками так что общий провод он общий для всех внутренних блоков усилителя.

Автор: demiurg1978 May 16 2015, 12:21

Короче, Ксения, пусть вам такая схема мозг не взрывает. Открытый верхний ключ МК коммутирует отрицательное напряжение. Примите как данность. В следствии того, что открытый канал полевого транзистора проводит в обе стороны. Такое подключение я видел еще под сраку лет на советских магнитофонах МАЯК, к примеру. Вот эту http://electronix.ru/redirect.php?http://rw6ase.narod.ru/1987/majak233s20.jpg я давным-давно дрючил в хвост и в гриву...

Автор: love777888 May 16 2015, 12:28

Мне тоже нравились эти уровни, прямо заболел ими покупал именно аппаратуру деки усилители с этими прыгающими уровнями, классная штука прямо ностальгия.

Автор: Xenia May 16 2015, 12:31

Цитата(love777888 @ May 16 2015, 15:16) *
Ве правильно расписано, там -32.5 вольта, индикатор не светиться, когда подаешь на сетки общий провод тобишь минус схемы сегменты засвечиваются, на аноды и на сетки поступает отрицательное напряжение, когда нам необходимо засветить сегмент, подается 0 или чуть выше положит. напряжение.

Хорошо бы, если бы вы проставили запятые, а то смысл вашего предложения ровно такой же, как у "казнить нельзя помиловать".
Это два противоположных утверждения:
"индикатор не светиться, когда подаешь на сетки общий провод"
"когда нам необходимо засветить сегмент, подается 0"
вырезанные из вашего предложения. "Общий провод" это и есть 0! Так светятся они у вас в заземленном состоянии или нет?

Пожалуйста еще раз, четко и ясно без сращивания двух предложений в одно:
1. Какие напряжения на "сетках" индикаторов, когда он не горят? Т.е. когда контакты дисплея, ведущие в процессору, висят в воздухе. Сколько на них вольт относительно земли?
2. Зажигаются ли они, если эти контакты заземлить? Какой ток в цепи при этом идет?

Автор: demiurg1978 May 16 2015, 12:39

Токи мизерные. Считай лампа. Коммутируется отрицательное напряжение. Когда не горит, пин в HI-Z состоянии. Когда горит, открыт верхний ключ.

Автор: love777888 May 16 2015, 12:41

Цитата(Xenia @ May 16 2015, 15:31) *
Хорошо бы, если бы вы проставили запятые, а то смысл вашего предложения ровно такой как, "казнить нельзя помиловать".
Это два противоположных утверждения:
"индикатор не светиться, когда подаешь на сетки общий провод"
"когда нам необходимо засветить сегмент, подается 0"
вырезанные из вашего предложения. "Общий провод" это и есть 0! Та светятся они у вас в заземленном состоянии или нет?

Пожалуйста еще раз, четко и ясно без сращивания двух предложений в одно:
1. Какие напряжения на "сетках" индикаторов, когда он не горят? Т.е. когда контакты дисплея, ведущие в процессору, висят в воздухе. Сколько на них вольт относительно земли?
2. Зажигаются ли ли они, если эти контакты заземлить? Какой ток в цепи при этом идет?

Сейчас при сгоревшем процессоре на сетках -32.5 вольта, в воздух я ножки не подымал.
Я просто подавал землю (общий провод) и сигменты начинают светиться, правда светяться во всех разрядах, подозреваю что из-за подключеного сгоревшего процессора, сегодня его сдую паяльной станцией.
Ток сейчас померяю.

Автор: Xenia May 16 2015, 12:45

Цитата(demiurg1978 @ May 16 2015, 15:39) *
Токи мизерные. Считай лампа. Коммутируется отрицательное напряжение.

Но Меги не могут коммутировать отрицательные напряжения! И большинство МК этого не могут делать, т.к. не имеют отрицательного питания (им нечем запереть отрицательный ток даже в трехстабильном положении).

Если это все-таки так, и коммутировать придет отрицательные напряжения, то я пас.

Цитата(love777888 @ May 16 2015, 15:41) *
Я просто подавал землю (общий провод) и сигменты начинают светиться, правда светяться во всех разрядах, подозреваю что из-за подключеного сгоревшего процессора, сегодня его сдую паяльной станцией.

На ЧТО вы подавали землю, когда у вас "сегменты светятся во всех разрядах"? Речь идет о сегментах одной цифры или всех цифр дисплея?

Автор: demiurg1978 May 16 2015, 12:48

Цитата(Xenia @ May 16 2015, 19:42) *
Но Меги не могу коммутировать отрицательные напряжения! И большинство МК этого не могут делать, т.е. не имеют отрицательного питания (им нечем запереть отрицательный ключ даже в трехстабильном положении).

Если это все-таки так, и коммутировать придет отрицательные напряжения, то я пас.

Не надо пас. Если ТС не против, будем рассыпуху использовать. Ваше дело дать нам сигналы и все. Остается только определиться, какую рассыпуху использовать. И какие активные сигналы будут. Спокойно работайте дальше.

Так, Ксения. Дайте мне немного времени, я пороюсь у себя, возможно найду индикатор от МАЯКа. Тогда все будет понятно. По индикаторам у вас не должно быть вопросов.

Автор: Xenia May 16 2015, 12:50

Цитата(demiurg1978 @ May 16 2015, 15:48) *
Не надо пас. Если ТС не против, будем рассыпуху использовать. Ваше дело дать нам сигналы и все. Остается только определиться, какую рассыпуху использовать. И какие активные сигналы будут. Спокойно работайте дальше.


У меня нет опыта работы с "отрицательной логикой". Не представлю, как ее можно сопрячь с положительной.

Автор: demiurg1978 May 16 2015, 12:54

Забудьте пока об этом напрочь. Пусть это вас не беспокоит. Если будете заниматься дальше, занимайтесь остальным, я чуть позже дам вам всю необходимую информацию по дисплею. Дисплей есть пить не просит. Выдает только то, что ему дают. Так что можно заниматься другими делами. Предварительно, представьте, что это светодиодные индикаторы, которыми можно управлять мультиплексированием.

Автор: love777888 May 16 2015, 12:56

Цитата(Xenia @ May 16 2015, 15:45) *
Но Меги не могут коммутировать отрицательные напряжения! И большинство МК этого не могут делать, т.к. не имеют отрицательного питания (им нечем запереть отрицательный ток даже в трехстабильном положении).

Если это все-таки так, и коммутировать придет отрицательные напряжения, то я пас.


На ЧТО вы подавали землю, когда у вас "сегменты светятся во всех разрядах"? Речь идет о сегментах одной цифры или всех цифр дисплея?

Совершенно верно токи мизер миллиампера нет
Подавал на одну из сеток, зажигаются во всех разрядах цифрах дисплея. подозрение что сетки параллельны за счет сгоревшего проца. сегодня я его сдую чтоб не мешал.
Я вот о каком дисплее речь вел...

Автор: Xenia May 16 2015, 13:06

Цитата(love777888 @ May 16 2015, 15:56) *
Я вот о каком дисплее речь вел...


Такой дисплей и у меня есть, но он работает на положительных напряжениях. По крайней мере, платы, на которых такие стоят, не имеют отрицательного питания.

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

Автор: love777888 May 16 2015, 13:09

То что и нужно? чтобы не заморачиваться, с отрицательным U. Дисплей у меня есть.

Автор: Xenia May 16 2015, 13:16

Цитата(love777888 @ May 16 2015, 16:09) *
То что и нужно? чтобы не заморачиваться, с отрицательным U. Дисплей у меня есть.


Что толку, что у вас есть какой-то другой дисплей? Вы ведь не вставите его в Грюндик? А если вставили бы, то испортили ему весь вид.

Полагаю, что для коммутации отрицательных напряжений нужны ключи наподобие LC7821 (в биполярным питанием), которые способны коммутировать напряжения обеих полярностей. Но только что-нибудь попроще и подешевле - с параллельным интерфейсом.

Автор: love777888 May 16 2015, 13:22

Цитата(Xenia @ May 16 2015, 16:16) *
Что толку, что у вас есть какой-то другой дисплей? Вы ведь не вставите его в Грюндик? А если вставили бы, то испортили ему весь вид.

Полагаю, что для коммутации отрицательных напряжений нужны ключи наподобие LC7821 (в биполярным питанием), которые способны коммутировать напряжения обеих полярностей. Но только что-нибудь попроще и подешевле - с параллельным интерфейсом.

Может вы и правы но когда вариантов нет, то можно занятся аккуратным монтажем и смотрется тоже будет классно. Есть только но там стоит тонированое стекло и как будет видно через него 1602 дисплей это вопрос. Родной дисплей есть родной тут я с вами не поспорю.

Автор: Xenia May 16 2015, 13:27

Должны быть такие!
Еще в древности были http://electronix.ru/redirect.php?http://www.onsemi.com/pub_link/Collateral/MC14001B-D.PDF. А тут надо примерно такое же, но на 8 линий или больше.

Ну, не знаю я сортаментов современных микросхем - другая у меня специализация. Но уверена, что ключи с TTL входом, а выходом на +12 и -12 вольт, бывают. Например, при переходе от UART в RS232 такие используются.

Автор: demiurg1978 May 16 2015, 13:37

Цитата(Xenia @ May 16 2015, 20:16) *
LC7821

Хм... Токи мизерные. Вариант. Управление по SPI даже лучше. Меньше ног использовать.
У меня до сих пор макетка валяется. 3 сдвиговых входных регистра 74HC165. Панелька под МК типа ATMEGA8535 и так далее. 2 сдвиговых регистра 74HC595. Одно время на ней были ULN2008 и PNP аналог. Управлял светодиодной матрицей 8х8. Позже я выпаял ключи, припаял оптроны и MOSFET и эта макетка несколько месяцев управляла станком. sm.gif))

Автор: Xenia May 16 2015, 13:51

Цитата(demiurg1978 @ May 16 2015, 16:37) *
Хм... Токи мизерные. Вариант. Управление по SPI даже лучше. Меньше ног использовать.


Использовать аналоговый ключ вместо цифрового - все равно что микроскопом колоть орехи.

Хоть бы кто подсказал...

Автор: demiurg1978 May 16 2015, 14:14

Цитата(Xenia @ May 16 2015, 20:51) *
Использовать аналоговый ключ вместо цифрового - все равно что микроскопом колоть орехи.

Хоть бы кто подсказал...

Неверно мыслите. Сам индикатор - лампа. И применение сочетания сдвигового регистра и аналоговых ключей вполне оправдано. Я уже долгое время использую VFD FUTABA M204SD02AJ, он сейчас снят с производства, выпущен полный аналог M204SD08AA. Там применяются драйверы VFD дисплеев. А это означает, что специализированные микросхемы. Сочетание цифровой логики и высоковольтных ключей.

Автор: demiurg1978 May 16 2015, 17:21

Перелопатил работу с RC5. Устранен дребезг из-за повтора команд каждые ~ 114 мс. Команды перечислены в таблице и разделены на два типа. Триггер. Повтор. Реакция на команды которые работают с повтором (к примеру, громкость). Короткое нажатие - однократное срабатывание. Длинное нажатие - реакция при нажатии, при удержании кнопки более 1,25 секунды повтор каждые 125 мс от поступления очередной посылки команды.
http://electronix.ru/redirect.php?http://www.youtube.com/watch?v=Za_fGRUm-XA. Светодиоды справа налево:
1 - Реле питания.
2 - Реле колонок.
3 - Имитация индикаторов каналов.
4 - Громкость +.
5 - Громкость -.
6 - Mute.
8 - Светодиод на регуляторе громкости.

как ТС просил, при включении светодиоды мигают пять раз. При выключении светодиоды мигают один раз.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)