Порты ввода и вывода

Обсуждаем контроллеры компании Atmel.
Ответить
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

Народ обясните почему так, делаю по таймеру включение портов чтобы подключить бт модуль чтобы он включался всё включается порт мерю напряжение выдаёт как и на акуме 3.9в при подключении модуля напряжение падает до 2.2в в чём может быть проблема?

вот код как делал

Код: Выделить всё

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <string.h>
#include <string.h>
#include <util/delay.h>

volatile unsigned char  hours,minutes,seconds; 
volatile unsigned int time; 

#define PORT 6
#define PORT_ON PORTB|=1<<PORT
#define PORT_OFF PORTB&=~(1<<PORT)

ISR(TIMER0_OVF_vect) {

time++;

   if (time==488)     {asm("wdr");time=0;seconds++;}
   if (seconds==60)   {seconds=0; minutes++;  }
   if (minutes==60)   {minutes=0; hours++;    }

}


ISR(TIMER1_OVF_vect) {
   if(minutes==01){
PORT_ON;
}
   if(minutes==02){
PORT_OFF;
}
   if(minutes==03){
PORT_ON;
}
   if(minutes==04){
PORT_OFF;
   } 
}   

int main(void)
{
// Input/Output Ports initialization
PORTB=0xFF;
DDRB=0x00;

// Port C initialization
PORTC=0xFF;
DDRC=0x00;

// Port D initialization
PORTD=0xFF;
DDRD=0x00;

DDRB|=(1<<6); PORT_OFF;


// External Interrupt(s) initialization
// INT0: On
EICRA=0x00;
EIMSK=0x00;
EIFR=0x00;
PCICR=0x00;


// Clock value: 31.250 kHz
TCCR0A=0x00;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
TCCR1A=0x00;
TCCR1B=0x02;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
ASSR=0x00;
TCCR2A=0x00;
TCCR2B=0x00;
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;


 // Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x01;
// Timer/Counter 1 Interrupt(s) initialization
TIMSK1=0x01;
// Timer/Counter 2 Interrupt(s) initialization
TIMSK2=0x00;

UCSR0A=0x00;
UCSR0B=0x00;
UCSR0C=0x00;
UBRR0H=0x00;
UBRR0L=0x00;


// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

sei();

  while (1){ 	 
  }
}


Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

так проблема скорее всего не в программе, а в источнике питания. ;) Скорее всего он у Вас либо очень слабый (мощная нагрузка для него), либо разряжен. Попробуйте запитать от блока питания и посмотрите результаты. Это первое.
порты имеют определенную максимальную нагрузку по току. (смотрите в даташите) причем для разных портов и разных ног одного порта она может отличаться. обычно это не более 40 мА. При этом учитывайте, что ток через вывод Vcc контроллера также не должен быть больше определенного значения. (обычно 100мА для Tiny и 200мА для Mega). Т.е. Если вы на 6 ног повесили по 40 мА - у Вас уже превышение и контроллер может выйти из строя. Превышение на конкретной ноге может вывести из строя либо ногу (как правило), либо весь порт. Реже - может сдохнуть сам контроллер. Это второе.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Либо еще вариант - где-то неправильно подключаете и у Вас получается КЗ или близкое к тому. Поэтому сильно падает напряжение.
Мудрый кот
Аватара пользователя
Сообщения: 1811
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Вы питание на блю-туз модуль подаёте с ножек МК?
Если да, то модуль потребляет много больше 20-40мА. Да и при 40мА просадка напряжения будет существенной.
Вот это (просадка напряжения под нагрузкой) у вас и наблюдается.
Ставьте ключ на транзисторе.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

код у меня для меги168, а модуль HC-05 он вроде как по даташиту хавает 27-30ма.
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Ооооо! ))) Мега 168! ))) Моя любимая тема! ))))))) Kavka вон в курсе! ;)

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

P.S. Не верьте даташитам на все 100%. ;)

P.P.S. Проверь от блока питания.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

вы запитываете не светодиод, а целую электронную схему с встроенными конденсаторами, с разным током в момент излучения и приема и так далее - в момент включения ток на миллисекунды, но превышает допустимые нормы для порта в разы. средний ток - это не то, на что нужно ориентироваться а данном случае.
:)
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Ну... я не совсем согласен с последним постом.. У каждой схемы (и контроллер не исключение) есть пиковая нагрузочная способность, которая больше, и есть, как Вы говорите, "средняя". Я бы все-таки ориентировался на среднюю, но скажем для режима передачи.
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

а какой такой промежуточный транзистор он разве не понизит ток.
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

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

вбейте в гугл : транзистор. режим работы.

Вас интересует ключевой режим.

Пользуйтесь поисковиками. Они ответят гораздо быстрей и подробней.
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

спасибо ребята получилось с ключём из транзистора.
Ответить

Вернуться в «AVR»