|
|
  |
Чем или как создать управление микросхемой Lc7821 |
|
|
|
May 14 2015, 09:07
|
Местный
  
Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471

|
Да контроллер начал перезапускаться, после нажатия любой клавишы на пульте, происходит перезапуск появляется +5 вольт PD0, мигают диоды, задержка, все вроде работает, но я заметил еще один мой недочет по управлению 7821, по умолчанию у нас зажигается 1-н светодиод а канал по своей индикации (диод горит) у нас заперт, открыты только L5R5 и L8R8, прошу Вас открыть еще при старте L7R7. Но логика переключения всех шести каналов сохраняется менять ничего не надо, L7R7 должен быть активным если светиться его диод. Объясню еще так проморгав 5 раз у нас зажигается по умолчанию светодиод по ножке РС5, но канал внутри микросхемы L7R7 закрыт (открывает его кнопка по ножке PD7), что не соответствует, самой ситуации диод горит а канал заперт. Мой недочет только что заметил. Исправте плиз.
Скажите PB4 мы можем задействовать?
Сообщение отредактировал love777888 - May 14 2015, 09:09
|
|
|
|
|
May 14 2015, 09:45
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(love777888 @ May 14 2015, 12:07)  ... все вроде работает, но я заметил еще один мой недочет по управлению 7821, по умолчанию у нас зажигается 1-н светодиод а канал по своей индикации (диод горит) у нас заперт, открыты только L5R5 и L8R8, прошу Вас открыть еще при старте L7R7. Объясню еще так проморгав 5 раз у нас зажигается по умолчанию светодиод по ножке РС5, но канал внутри микросхемы L7R7 закрыт (открывает его кнопка по ножке PD7), что не соответствует, самой ситуации диод горит а канал заперт. Мой недочет только что заметил. Исправте плиз. Поправила это место: as23. Цитата(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, но боюсь это делать без вашего согласия.
|
|
|
|
|
May 14 2015, 11:19
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(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.
|
|
|
|
|
May 14 2015, 11:48
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Цитата(Xenia @ May 14 2015, 18:19)  P.S. Для ваших 16 МГц мой калькулятор показывает RC5_T = 0x6F1F. Да, спасибо за наводку на avrcalc. Уже посчитал.
|
|
|
|
|
May 14 2015, 11:57
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 14 2015, 14:48)  Да, спасибо за наводку на avrcalc. Уже посчитал. Больше ничего, кроме константы RC5_T править не надо. А дальше просто пользуетесь - ждете когда наступит rc5.dataOK и забираете rc5.command, не забывая после этого обнулить rc5.dataOK. Кстати, если сильно надо, то можно поставить на автомат: внутри rc5.c есть пустая функция ReceivingOver(), которая исполняется сразу же, как только приходит код с ДПУ. P.S. Я вам в личке вопрос задала про то, какой фотоприемник вы купили. Ответьте пожалуйста.
|
|
|
|
|
May 14 2015, 12:45
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Цитата(love777888 @ May 14 2015, 19:42)  Ксения все работает, как всегда вы лучшая! А никто и не сомневается. Между прочим, Ксения - один из моих учителей по си. У меня на руках ATMEGA8A. Наклевывался один заказ, я заранее купил кристалл. Притом отказ заказчика учитывался. Про запас останется. Заказ отложили, камень теперь на руках  Буду пытать на нем ваш проект. Фотоприемник прикручу. ТС, где у вас расписано, за что отвечают входы, выходы МК?
Сообщение отредактировал demiurg1978 - May 14 2015, 12:49
|
|
|
|
|
May 14 2015, 12:58
|
Местный
  
Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471

|
Смотрите схему Кнопки выбор входов в 7821 Светодиоды активность того или иного входа (светиться когда активен) Задержка РВ2 МУТЕ PD1 Реле вкл PD0 D E увеличить громкость уменьшить с пульта Ну и шины SPI Ну и все остальное понятно что куда прикручено
Сообщение отредактировал love777888 - May 14 2015, 12:59
Эскизы прикрепленных изображений
|
|
|
|
|
May 14 2015, 13:26
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 14 2015, 15:45)  У меня на руках ATMEGA8A. Наклевывался один заказ, я заранее купил кристалл. Притом отказ заказчика учитывался. Про запас останется. Заказ отложили, камень теперь на руках  Буду пытать на нем ваш проект. Фотоприемник прикручу. ТС, где у вас расписано, за что отвечают входы, выходы МК? Фотоприемник должен быть присоединен к ICP1 и никуда иначе! А остальные выводы МК используете по своему усмотрению, RC5 на них не претендует. Цитата(love777888 @ May 14 2015, 15:42)  Усилитель работает как надо, единственно то что не отключается пин РВ2, перед тем как пин PD0 уходит в дежурку, а так высший класс. Если надо можно махнуть линии местами PB1 и PB2. Я не знаю архитектуры атмеги, но раз вы настаиваете давайте сделаем, для меня перепаятся несложно. Пин PD0 пред уходом в дежурку отключила, но линии PB1 и PB2 вам придется перепаять. К тому же есть риск, что от "перемены мест слагаемых" работа может разладиться. Т.е. внимания мне может не хватить для того, чтобы отследить все изменения в программе, которые эта перестановка вызовет. А потому и требуется испытание. А перестановка нужна нам "на вырост", т.к. когда будем переходить на Мегу162 или какую-то другую, то там PB1 может быть занят на другие цели, а SS всегда присутствует, на каком бы пине он ни был. Т.е. лучше нам сейчас чуточку помучиться, когда у нас почти всё нормально работает, чем решать ребусы при переходе на другой МК. Измененная прошивка здесь: as24. Схема теперь стала такая:
|
|
|
|
|
May 14 2015, 23:47
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Код #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 Как с этим быть?
Сообщение отредактировал demiurg1978 - May 14 2015, 23:47
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|