Страница 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
точно, написать забыл :oops:

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ую итерацию мцу.
Если делать это с помощью цикла, то непонятно, сколько времени идет на проверку условий и т.д.
Вообщем как-то так))