Перейти к содержанию
    

Простейшая схема на Mega8L

Здравствуйте. Разбираюсь с Mega8L. Написал простой алгоритм winavr – бегущие огни, в stk500 светодиоды мигают (порты PC0..PC5). Собрал на макетке из радиодеталей, которые были под рукой, блок питания от мобилы. Схема на рисунке, код на Си приложен, все в архиве, на светодиод посадил только один выход PC5. Светодиод не мигает, а горит. К светодиоду вместо нуля подавал +, не работает. В чем ошибка?! Может конденсаторы, а может руки не оттуда растут.

Спасибо за внимание.

AVR_Project.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Разбираюсь с Mega8L. Написал простой алгоритм winavr – бегущие огни, в stk500 светодиоды мигают (порты PC0..PC5). Собрал на макетке из радиодеталей, которые были под рукой, блок питания от мобилы. Схема на рисунке, код на Си приложен, все в архиве, на светодиод посадил только один выход PC5. Светодиод не мигает, а горит. К светодиоду вместо нуля подавал +, не работает. В чем ошибка?! Может конденсаторы, а может руки не оттуда растут.

Спасибо за внимание.

Ну так и не должно работать, если собрано как на схеме. По крайней мере, полярность светодиода надо поменять. И при использовании БП от мобилы нужен хотя бы простой стабилизатор на КРЕН5. На ногу reset не плохо бы повесить конденсатор 0,01-0,1 мкФ.

А что, winavr понимает такое представление числа "DDRC = 0b111111;" ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По крайней мере, полярность светодиода надо поменять

Светодиод я по-разному вертел. В одном случае горит постоянно, в другом не горит. Так что думаю дело не в этом.

Блок питания от мобилы плохой выбор

Согласен, но собрал из того что было под рукой

И при использовании БП от мобилы нужен хотя бы простой стабилизатор на КРЕН5

Без крена не запуститься что ли?!

А что, winavr понимает такое представление числа "DDRC = 0b111111;

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

Изменено пользователем Владимир_2010

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В программе бежит ноль. Значит резистор около светодиода надо на +5 вольт, а не на землю.

Далее - проверяйте прошитые фузы. Внимательно.

Я бы еще увеличил резистор на сбросе до 10-20 ком и поставил бы небольшой конденсатор на землю.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Далее - проверяйте прошитые фузы. Внимательно.

Нельзя ли в этом месте поподробней?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Светодиод я по-разному вертел. В одном случае горит постоянно, в другом не горит. Так что думаю дело не в этом.

А его вертеть не надо. Светодиод имеет два электрода: анод и катод. И подключается светодиод вполне определенно: анод к положительному, а катод - к отрицательному потенциалу. Резистор, включенный последовательно со светодиодом образует простейший источник тока, в Вашем случае I = 5 / 390 = 0,013 А.

Без крена не запуститься что ли?!

А это зависит от фазы Луны, т.к. напряжение в зарядниках мобил не стабилизированное, да и не известно, как оно в плане чистоты (именно чистоты), т.е. есть ли шумы, фильрация и тп.

ИМХО КРЕН5 может не помочь, т.к. не все зарядники на выходе имеют более 5 вольт.

 

Нельзя ли в этом месте поподробней?!

У Вас подключен внешний кварц. Стало быть фьюзы CKSEL должны быть запрограммированы таким образом (посмотрите даташит), чтобы источником системной частоты был назначен внешний кварц. Бит CKOPT рекомендуют программировать, когда питание МК 5 В (если мне память не изменяет). При низковольтном питание (у Вас L серия), например 3 В, CKOPT можно оставить незапрограммированным. Все остальные фьюзы можно пока не трогать, а фьюз RSTDSBL (или что-то подобное, даташита нет под рукой) воообщеее не трогать! Иначе RESET превратиться в обычный пин порта ввода-вывода и перестанет работать SPI (уверен, что Вы шьете МК через этот интерфейс). Запрограммировать МК можно будет только с помощью параллельного программатора.

 

По программе. А какой у Вас версии WinAVR, вроде Вы не указали. Дело в том, что в версиях до 2007 года максимальная задержка определяется так

The maximal possible delay is 262.14 ms / F_CPU in MHz.

И для Вашего случая может быть такой 262.14 / 4 = 65.535 мс. В версиях с 2008 года это ограничение снято.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...