Страница 1 из 2
ATtiny 2313
Добавлено: Чт май 06, 2010 16:11:31
indi_88
Добрый день, возникли трудности с работой с МК. Это мой первый практический опыт в паянии и работе с МК.
Есть схема ультразвукового дальномера, пока собрал кусок: питание, кнопки управление, МК и 7сегм индикатор.
Столкнулся с проблемой, когда начал писать простенькую прошивку. Цель прошивки: просто отображать какие-то крякозяблы поочереди на 3х знакоместах (использую динамику). Пишу и шьюсь через винавр:
Код: Выделить всё
#include <avr/io.h>
#include <util/delay.h>
int main()
{
DDRB = 0xFF;
DDRD = 0xFF;
for(;;)
{
PORTB = 0b00110011;
PORTD = 0x40;
_delay_ms(1000);
PORTD = 0x0;
//
PORTB = 0b01010101;
PORTD = 0x20;
_delay_ms(1000);
PORTD = 0x0;
//
PORTB = 0b11001100;
PORTD = 0x10;
_delay_ms(1000);
PORTD = 0x0;
}
return(0);
}
Не могу понять почему, но информация отображается сразу на всех знакоместах. Проверял прошивку в Протеусе, там все работает. Следовательно, проблема со спаянной схемой.
Меня настараживает что моя тинька, когда на выводах лог 0, выдает 1,2-1,3 В !!!. Следовательно, напряжение после ограничивающих резюков перед транзисторами, колеблется от 0,74 В (когда на выводе PD6 (PD5 или PD4) лог 0) и до 0,82 В (когда лог 1). Думаю, что проблема в этом. То есть напряжения 0,74 и 0,82 способствуют постоянному открытию транзисторов.
Опыта мало, так что надеюсь на ваше помощь!
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 16:20:50
ooogo
проверте железо, если не найдете ошибок сделайте фото и выложите.
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 16:24:04
indi_88
Что можете сказать про напряжение лог 0?
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 18:20:20
DrWatson
либо транзисторы неправильно подключены (эмиттер с коллектором перепутаны), либо вместо BC547 поставил BC557
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 20:49:26
indi_88
Маркировку проверил: BC547B
Выводы транзисторов выбирал так:
если смотреть срез корпуса, то слева направо: к б э
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:15:48
ooogo
indi_88 писал(а):Что можете сказать про напряжение лог 0?
что-то не то!

Измеряли в схеме или порт МК болтался в воздухе?
по поводу транзистора
http://www.google.ru/imglanding?q=bc547 ... zM&start=0
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:17:29
indi_88
измерял в схеме, когда что-то выводилось на 7сегм
да, транзисторы юзал именно так
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:18:33
ooogo
так освободите порт МК от излишек и еще раз замерьте, сразу станет ясно.
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:20:09
ooogo
не могу схему открыть во весь размер, что бы посмотреть маркировку семисегментника, с общим анодом они у Вас или общим катодом?
на всякий случай прозвоните транзисторы.
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:23:11
indi_88
выпаял транзистор и прозвонил его, нигде не звенит (кэ кб эб).
7сегм с общим катодом
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:34:08
ooogo
надо прозвонить все транзисторы.
ставишь мультимер на прозвонку диодов и сначала красный провод на базу, а черный на коллектор потом на эмиттер должен показывать небольшое сопротивление, затем меняешь местами провода не должны звониться переходы вообще.
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 21:59:12
*Trigger*
А потом ещё к-э в обоих направлениях. звониться НЕ ДОЛЖНО
Re: ATtiny 2313
Добавлено: Чт май 06, 2010 22:02:54
ooogo
точно, написать забыл

Re: ATtiny 2313
Добавлено: Пт май 07, 2010 13:13:06
Modest
Чтобы отсеять проблемы с транзисторами, подключи индикаторы прямо на порты, и проверь. Только не зажигай много сегментов, один два на каждом, вполне хватит для проверки, порты без проблем выдержат.
И ещё: я CVAVRом пользуюсь инезнаю,
PORTD = 0x0; это нормальная запись
Может так PORTD = 0x00;
или так PORTD = 0;
Re: ATtiny 2313
Добавлено: Пт май 07, 2010 13:17:27
DrWatson
те же яйца, только в профиль. Ноль он и в африке ноль как его ни запиши.
Re: ATtiny 2313
Добавлено: Пт май 07, 2010 13:21:52
Modest
Ясно. Значит тот же х.. ээээ о чём это я.
Да, еслив протеусе всё работает значит проблема или в индикаторе, или пробуй вариант без транзисторов.
Re: ATtiny 2313
Добавлено: Пт май 07, 2010 13:24:50
DrWatson
Фотки платы в студию!
Re: ATtiny 2313
Добавлено: Пт май 07, 2010 17:52:53
indi_88
купил новый мк и транзисторы, сделаю новую разводку (старая корявая и делалась на скорую руку), вытравлю и припаяю. ерез пару дней отпишусь
Re: ATtiny 2313
Добавлено: Пт май 07, 2010 18:33:39
ARV
почитатйте это, возможно, что-то прояснится...
Re: ATtiny 2313
Добавлено: Ср май 12, 2010 15:41:28
indi_88
Собрал кусок схемы на новом мк и транзисторах, с новой разводкой. проблема ушла сама собой, так что уже и нипонятно, где она была)))
Возник другой вопрос:
Как мне сделать генерацию пачки импульсов (например, штук 25), изменяя состояние ноги мк PD0. Мне надо добиться частоты 40 кГц, мой внутренний тактовый генератор настроен ан 4 Мгц. Код должен выглядеть следующим образом:
Код: Выделить всё
PORTD |= 0b00000001;
// какая-то задержка
PORTD &= 0b11111110;
// задержка, которая дает частоту 40 кГц
Загвоздка в том, что я не очень понимаю одну вещь:
Если частота тактового 4 Мгц, то выполнение одной итерации мцу занимает 0,25*10^-6 c.
40 кГц дает период длительностью 25*10^-6 c.
Тогда импульсы должны появляться каждую 100ую итерацию мцу.
Если делать это с помощью цикла, то непонятно, сколько времени идет на проверку условий и т.д.
Вообщем как-то так))