Пятница, 29.03.2024, 14:57
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | Дистанционное управление двумя нагрузками на ATtiny2313 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: ВитГо  
Форум » Разработка электронных устройств » Разрабатываю ! » Дистанционное управление двумя нагрузками на ATtiny2313 (расматриваю только кодер и декодер)
Дистанционное управление двумя нагрузками на ATtiny2313
uwrteyДата: Среда, 05.02.2014, 00:09 | Сообщение # 1
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Передатчик я собрал сразу без ошибок.

длина синхроимпульса 660 мкс

длина первого импульса ( если кнопка выключена ) 165 мкс
длина первого импульса ( если кнопка включена ) 330 мкс

длина второго импульса ( если кнопка выключена ) 165 мкс
длина второго импульса ( если кнопка включена ) 330 мкс

длина паузы между всеми импульсами 165 мкс
Прикрепления: transmit_2313.rar (18.8 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 05.02.2014, 00:34
 
uwrteyДата: Среда, 05.02.2014, 00:10 | Сообщение # 2
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
А вот с приемником какие-то баги.
Прикрепления: receiver2313.rar (23.7 Kb)


не успеваю за своими мыслями......
 
uwrteyДата: Среда, 05.02.2014, 00:22 | Сообщение # 3
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Как учил ВитГо, я решил сократить код до минимума содержащего ошибку.

И в итоге я пришел к вот такому сокращенному коду ( смотрите вложение )
И самое что интересное и непонятное - этот код не включает данные светодиоды!!!

А вот если закометировать команду:
Код


       ldi Temp,0b00000000  ; выводим лог_0 в порт "D" // Подтяжка на PD2 и PD7  отключена.  !!!!!!!!!!!!!!!!!!!!!!!!!!
       out PortD,Temp   ;

То тогда светодиоды включатся!
Как ? Почему ? Ни чего не понимаю.... cry

Что такого в этой команде такого? Она всего лишь выводит лог_0 на те ножки, которые настроены на вывод и отключает подтягивающие резисторы у тех ножек которые настроены на ввод!
Исключением тут является PD7 - его просто напросто нет в данном МК. Может в нем все дело ?
Хотя, когда я разрабатывал систему управления 20-тью нагрузками, то такой вариант работал!
В чем же тогда может быть дело ?
Прикрепления: 6621743.asm (3.4 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 05.02.2014, 01:03
 
uwrteyДата: Среда, 05.02.2014, 00:47 | Сообщение # 4
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Чип не бракованный, на другом такая-же фигня.
Фузы я выставил одинаково и для приемника и для передатчика


Задублировал вопрос тут - http://radiokot.ru/forum....1910808


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 05.02.2014, 01:07
 
ВитГоДата: Среда, 05.02.2014, 05:47 | Сообщение # 5
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата uwrtey ()
В чем же тогда может быть дело ?

как включены светодиоды ? с + питания на ногу контроллера ? - тогда все правильно, при лог.0 на ножке светодиод должен загореться

p.s. у тебя на схеме к портуD диоды не подключены.. поэтому я переспрашиваю как ты их включал


Виталий (аka ВитГо)
 
uwrteyДата: Среда, 05.02.2014, 08:05 | Сообщение # 6
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: 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
Репутация: 20
Статус: Offline
посмотри внимательно там JTAG не сидит ?
если сидит то отключи фюз-бит JTAGEN

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

так по крайней мере раньше меня учили, - это из за того что обычно ток при лог.0 больше тока при лог.1..

но в принципе для твоего случая это не должно иметь значения

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


Виталий (аka ВитГо)
 
uwrteyДата: Четверг, 06.02.2014, 00:07 | Сообщение # 8
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
В тини 2313 нет JTAG. С питанием порядок. Я же говорю - парадокс!

Добавлено (06.02.2014, 00:07)
---------------------------------------------
Я подозреваю фузы. Завтра попробую выставить по другому.
Если не поможет - попробую снизить частоту.


не успеваю за своими мыслями......
 
uwrteyДата: Пятница, 07.02.2014, 00:36 | Сообщение # 9
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Только-что попробовал сделать следующее:

1) отключил систему контроля питания ( через фуз_биты )
2) установил внутренний делитель частоты ( делитель на 8 )
3) написал подпрограмму задержки перед главным циклом

затем я проверил заработает ли тот блок, который я приводил выше - и он заработал

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

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

Ну тут я решил повысить частоту обратно ( убрать предделитель на 8 через фуз-биты )
Проделал этот фокус с приемником и передатчиком и опять разочаровался от того, что не работает!

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

Может прошивка слетела? - Прошиваю еще раз и приемник и передатчик - один фиг не робит!
Шью заново фуз-биты - не робит.
Я уже и не знаю на что подумать.. Похоже что МК глючный ?


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Пятница, 07.02.2014, 00:50
 
uwrteyДата: Пятница, 07.02.2014, 01:23 | Сообщение # 10
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Что я могу сейчас сделать?

1) попробовать снова запустить мигалку, если не заработает - то точно МК, а если будет работать, то снова попробовать запустить приемник декодер
2) поменять МК в приемнике и передатчике местами


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Пятница, 07.02.2014, 01:23
 
uwrteyДата: Пятница, 07.02.2014, 01:27 | Сообщение # 11
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: 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
Репутация: 11
Статус: Offline
Запустил мигалку на тактовой частоте 20 МГц - работает без сбоев.

А декодер (приемник) на такой частоте не работает.

Пытаюсь запустить декодер (приемник) на частоте деленной на восемь ( с помощью внутреннего делителя ) опять не работает!
А вот если сначала прошить МК "мигалкой" на частоте деленной на восемь.
Включить эту мигалку на пару секунд. А затем прошить МК "декодером" и при этом не трогать фуз биты - то декодер начинает работать как и положено.

Как так ?! Полтергейст! :)))

Это точно не глюк! Это точно не плохой монтаж и это точно не плохая схемотехника.
Так как "глючит" не в случайной последовательности, а очень даже закономерно!

Такое ощущение, что МК что то запоминает....

Как мне выяснить что это?
У меня что то на ум ни чего не идет. ( Сейчас для меня главное - это не сделать устройство, а найти причину "глюка" )

Во вложении лежат исходники кодера, декодера а так-же мигалки.

Прошиваю я с помощью ПониПрог в отдельной панельке
Из фуз-битов я устанавливаю или очищаю только бит SKDIV8
Фуз SPIEN - не активен и его я не трогаю
Остальные фузы то-же не трогал.
Кварц установлен на 20 МГц
Прикрепления: 1137714.zip (45.5 Kb)


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Суббота, 08.02.2014, 00:27
 
ВитГоДата: Суббота, 08.02.2014, 01:24 | Сообщение # 13
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
оперативную память еще не забывай инитить.. я как то тестил - помнит данные минут 5 после выключения питания !

Виталий (аka ВитГо)
 
uwrteyДата: Суббота, 08.02.2014, 10:28 | Сообщение # 14
Генерал-майор
Группа: Администраторы
Сообщений: 3256
Репутация: 11
Статус: Offline
Оперативку я не использую, хотя инициализацию ее делаю и даже одну двухбайтовую переменную задаю.

не успеваю за своими мыслями......
 
ВитГоДата: Суббота, 08.02.2014, 23:50 | Сообщение # 15
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
гм.. где то у тебя все таки ошибка, проверь дефиниции по inc файлу, может быть там что не так :-(

Виталий (аka ВитГо)
 
Форум » Разработка электронных устройств » Разрабатываю ! » Дистанционное управление двумя нагрузками на ATtiny2313 (расматриваю только кодер и декодер)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz