Дистанционное управление двумя нагрузками на ATtiny2313
| |
uwrtey | Дата: Среда, 05.02.2014, 00:09 | Сообщение # 1 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Передатчик я собрал сразу без ошибок.
длина синхроимпульса 660 мкс
длина первого импульса ( если кнопка выключена ) 165 мкс длина первого импульса ( если кнопка включена ) 330 мкс
длина второго импульса ( если кнопка выключена ) 165 мкс длина второго импульса ( если кнопка включена ) 330 мкс
длина паузы между всеми импульсами 165 мкс
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 05.02.2014, 00:34 |
|
| |
uwrtey | Дата: Среда, 05.02.2014, 00:10 | Сообщение # 2 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| А вот с приемником какие-то баги.
не успеваю за своими мыслями......
|
|
| |
uwrtey | Дата: Среда, 05.02.2014, 00:22 | Сообщение # 3 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Как учил ВитГо, я решил сократить код до минимума содержащего ошибку.
И в итоге я пришел к вот такому сокращенному коду ( смотрите вложение ) И самое что интересное и непонятное - этот код не включает данные светодиоды!!!
А вот если закометировать команду: Код
ldi Temp,0b00000000 ; выводим лог_0 в порт "D" // Подтяжка на PD2 и PD7 отключена. !!!!!!!!!!!!!!!!!!!!!!!!!! out PortD,Temp ; То тогда светодиоды включатся! Как ? Почему ? Ни чего не понимаю....
Что такого в этой команде такого? Она всего лишь выводит лог_0 на те ножки, которые настроены на вывод и отключает подтягивающие резисторы у тех ножек которые настроены на ввод! Исключением тут является PD7 - его просто напросто нет в данном МК. Может в нем все дело ? Хотя, когда я разрабатывал систему управления 20-тью нагрузками, то такой вариант работал! В чем же тогда может быть дело ?
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 05.02.2014, 01:03 |
|
| |
uwrtey | Дата: Среда, 05.02.2014, 00:47 | Сообщение # 4 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Чип не бракованный, на другом такая-же фигня. Фузы я выставил одинаково и для приемника и для передатчика
Задублировал вопрос тут - http://radiokot.ru/forum....1910808
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 05.02.2014, 01:07 |
|
| |
ВитГо | Дата: Среда, 05.02.2014, 05:47 | Сообщение # 5 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Цитата uwrtey ( ) В чем же тогда может быть дело ? как включены светодиоды ? с + питания на ногу контроллера ? - тогда все правильно, при лог.0 на ножке светодиод должен загореться
p.s. у тебя на схеме к портуD диоды не подключены.. поэтому я переспрашиваю как ты их включал
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Среда, 05.02.2014, 08:05 | Сообщение # 6 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Диоды у меня подключены точно так-же как изображено на схеме. Они подключены к порту "Б" ( К младшим битам ) Каждый диод одной ножкой сидит на земле, а другой ножкой подключен к порту "Б" через резистор.
При инициализации портов диоды должны выключится командой
Код ldi Temp,0b00000000 ; выводим лог_0 в порт "B" out PortB,Temp ;
Диоды должны включится в главном цикле командой Код
ldi Temp,0b00000011 ; включаем светодиоды out PortB,Temp ;
Но они не включаются.
Включаются только в том случае, если я закоментирую ( или удалю ) команду которая управляет портом "Д"
Код ldi Temp,0b00000000 ; выводим лог_0 в порт "D" // Подтяжка на PD2 и PD7 отключена. !!!!!!!!!!!!!!!!!!!!!!!!!! out PortD,Temp ;
Парадокс....
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 05.02.2014, 08:07 |
|
| |
ВитГо | Дата: Среда, 05.02.2014, 16:58 | Сообщение # 7 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| посмотри внимательно там JTAG не сидит ? если сидит то отключи фюз-бит JTAGEN
кстати, так включать светодиоды не совсем верно.. более правильно диод включать с плюса питания на вывод контроллера. и потом включать его подачей лог.0 на пин..
так по крайней мере раньше меня учили, - это из за того что обычно ток при лог.0 больше тока при лог.1..
но в принципе для твоего случая это не должно иметь значения
кстати, а ты точно на контроллер питание подал ?? а то меги любят иногда заводиться с паразитного питания.. - работать работают, но периферию уже не тянут зачастую...
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Четверг, 06.02.2014, 00:07 | Сообщение # 8 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| В тини 2313 нет JTAG. С питанием порядок. Я же говорю - парадокс! Добавлено (06.02.2014, 00:07) --------------------------------------------- Я подозреваю фузы. Завтра попробую выставить по другому. Если не поможет - попробую снизить частоту.
не успеваю за своими мыслями......
|
|
| |
uwrtey | Дата: Пятница, 07.02.2014, 00:36 | Сообщение # 9 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Только-что попробовал сделать следующее:
1) отключил систему контроля питания ( через фуз_биты ) 2) установил внутренний делитель частоты ( делитель на 8 ) 3) написал подпрограмму задержки перед главным циклом
затем я проверил заработает ли тот блок, который я приводил выше - и он заработал
Тогда я тут же решил проверить будет ли работать приемник и передатчик. Поправил фуз_биты для передатчика - что-бы он работал на той-же частоте что и приемник.
Включил оба устройства и разочаровался от того что не заработало! Но не тут то было! Оказывается на этот раз я воткнул ТИНЬКУ в передатчик вверх ногами! ( просто я прошивал в отдельной панельке ) Я быстро исправил ситуацию и обрадовался, что устройство работает! Приемник принимает команды с передатчика и включает соответствующие светодиоды!
Ну тут я решил повысить частоту обратно ( убрать предделитель на 8 через фуз-биты ) Проделал этот фокус с приемником и передатчиком и опять разочаровался от того, что не работает!
Решил вернуть предделитель на место где ему похоже и суждено быть, но устройство не заработало на деленной частоте!!!!!! Как так? Только что все работало! Проблема точно не в логике программы.
Может прошивка слетела? - Прошиваю еще раз и приемник и передатчик - один фиг не робит! Шью заново фуз-биты - не робит. Я уже и не знаю на что подумать.. Похоже что МК глючный ?
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Пятница, 07.02.2014, 00:50 |
|
| |
uwrtey | Дата: Пятница, 07.02.2014, 01:23 | Сообщение # 10 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Что я могу сейчас сделать?
1) попробовать снова запустить мигалку, если не заработает - то точно МК, а если будет работать, то снова попробовать запустить приемник декодер 2) поменять МК в приемнике и передатчике местами
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Пятница, 07.02.2014, 01:23 |
|
| |
uwrtey | Дата: Пятница, 07.02.2014, 01:27 | Сообщение # 11 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Менять МК местами не пришлось. Похоже, что глючный МК Прошил МК приемника декодера программой мигалкой - и она работает Прошил снова программой приемником декодером - и все работает, хотя только что не работало !!!
П.С. Мне тут товарищ PLOOP подсказал, что из за плохого питания, некачественного монтажа, не правильной разводки и т.п. МК может зависнуть. По его совету хочу попробовать запустить обычную мигалку на высокой тактовой частоте ( что бы проверить/ поэкспериментировать )
П.П.С. (http://radiokot.ru/forum/viewtopic.php?f=57&t=100269&p=1912641#p1912641)
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Пятница, 07.02.2014, 01:30 |
|
| |
uwrtey | Дата: Суббота, 08.02.2014, 00:23 | Сообщение # 12 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Запустил мигалку на тактовой частоте 20 МГц - работает без сбоев.
А декодер (приемник) на такой частоте не работает.
Пытаюсь запустить декодер (приемник) на частоте деленной на восемь ( с помощью внутреннего делителя ) опять не работает! А вот если сначала прошить МК "мигалкой" на частоте деленной на восемь. Включить эту мигалку на пару секунд. А затем прошить МК "декодером" и при этом не трогать фуз биты - то декодер начинает работать как и положено.
Как так ?! Полтергейст! :)))
Это точно не глюк! Это точно не плохой монтаж и это точно не плохая схемотехника. Так как "глючит" не в случайной последовательности, а очень даже закономерно!
Такое ощущение, что МК что то запоминает....
Как мне выяснить что это? У меня что то на ум ни чего не идет. ( Сейчас для меня главное - это не сделать устройство, а найти причину "глюка" )
Во вложении лежат исходники кодера, декодера а так-же мигалки.
Прошиваю я с помощью ПониПрог в отдельной панельке Из фуз-битов я устанавливаю или очищаю только бит SKDIV8 Фуз SPIEN - не активен и его я не трогаю Остальные фузы то-же не трогал. Кварц установлен на 20 МГц
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Суббота, 08.02.2014, 00:27 |
|
| |
ВитГо | Дата: Суббота, 08.02.2014, 01:24 | Сообщение # 13 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| оперативную память еще не забывай инитить.. я как то тестил - помнит данные минут 5 после выключения питания !
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Суббота, 08.02.2014, 10:28 | Сообщение # 14 |
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Статус: Offline
| Оперативку я не использую, хотя инициализацию ее делаю и даже одну двухбайтовую переменную задаю.
не успеваю за своими мыслями......
|
|
| |
ВитГо | Дата: Суббота, 08.02.2014, 23:50 | Сообщение # 15 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| гм.. где то у тебя все таки ошибка, проверь дефиниции по inc файлу, может быть там что не так :-(
Виталий (аka ВитГо)
|
|
| |
|