Перейти к содержимому
Форум журнала практической электроники «Датагор»

Оригинал микро-ПК Raspberry Pi 3 Model B+ (Broadcom 1.4GHz quad-core 64 bit processor, Wifi, Bluetooth, USB)

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км! Охота, поход, торговый центр и т.п.

TrueRMS мультиметр UNI-T UT139A с автодиапазонами

Паяльнник 80W с терморегулятором и LCD-дисплеем, популярные жала серии 900M

Рекомендованные сообщения

Проблема в следующем

Пытаюсь подключить 7-ми сегментник к АТ8 - даже не моргнёт,падла такая.

Вроде по книжкам делал, мож подробность какую упустил?

 

Вордовский док не хАТИт глотать, по этому открытым текстом.....

 

 

Chip type : ATmega8

Program type : Application

AVR Core Clock frequency: 8,000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

 

#include <mega8.h>

#include <delay.h>

#include <stdio.h>

 

char digit_out[2], cur_dig;

 

flash char buf[] = { //массив с цифрами

0b00000011, //0

0b10011111, //1

0b00100101, //2

0b00001101, //3

0b10011001, //4

0b01001001, //5

0b01000001, //6

0b00011111, //7

0b00000001, //8

0b00001001, //9

0b11111111

};

 

void hc164_wr(unsigned char dig){ //подпрограмма вывода данных в регистр

unsigned char a;

for(a=0; a<8; a++){ //цикл для вывода 8 бит данных из массива

PORTB.0 = buf[dig] & 1<<a; //выводим в линию DATA текущий бит

PORTB.1=0; //опускаем линию CLK в лог.0

PORTB.1=1; //поднимаем линию CLK в лог.1

}

}

 

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void)

{

 

switch (cur_dig){

case 0:{PORTC.0=0; PORTC.1=0; hc164_wr(digit_out[cur_dig]); PORTC.0=1; break;}; //первая цифра

case 1:{PORTC.1=0; PORTC.0=0; hc164_wr(digit_out[cur_dig]); PORTC.1=1; break;}; //вторая цифра

}

cur_dig++;

if (cur_dig==2) cur_dig=0;

 

 

}

 

// External Interrupt 1 service routine

interrupt [EXT_INT1] void ext_int1_isr(void)

{

// Place your code here

 

}

 

// Declare your global variables here

 

void main(void)

{

unsigned char f;

 

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0x00;

DDRB=0xFF;

 

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0xFF;

 

// Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTD=0xFF;

DDRD=0x00;

 

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: 125,000 kHz

TCCR0=0x03;

TCNT0=0x00;

 

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

// Mode: Normal top=0xFFFF

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x03;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

 

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x03;

TCNT2=0x00;

OCR2=0x00;

 

// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

// INT1: On

// INT1 Mode: Falling Edge

GICR|=0xC0;

MCUCR=0x0A;

GIFR=0xC0;

 

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x02;

 

// USART initialization

// USART disabled

UCSRB=0x00;

 

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

 

// ADC initialization

// ADC disabled

ADCSRA=0x00;

 

// SPI initialization

// SPI disabled

SPCR=0x00;

 

// TWI initialization

// TWI disabled

TWCR=0x00;

 

// Global enable interrupts

#asm("sei")

 

while (1)

{

for(f=0; f<100; f++){

delay_ms(50);

digit_out[0]=f/10;

digit_out[1]=f%10;

 

}

};

}

 

Ошибка где?

подскажите, пожаЛЛста :unknown:

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


Ссылка на сообщение
Поделиться на других сайтах
... даже не моргнёт,падла такая. ...
Желательно видеть схему. Во-первых, в схеме могут быть ошибки. Во-вторых, используется вход внешних прерываний и без схемы непонятно, что за сигнал на него подаётся. В третьих, программа может не соответствовать схеме. В четвёртых, без схемы нельзя понять, как выводятся знаки. В функции hc164_wr выводится последовательный код с тактом. Куда выводится? У вас индикатор с последовательным входом? Изменено пользователем Lexter

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


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

Понял.

Я сам сдурил - схему нарисовал 74С595 - балбес, что скажешь....

Николай, тогда вопрос шкурный - все мои извраты в данный момент связаны с следующим

Хочу на AVR-ке сделать управление оконечником.

Алгоритм следующий:

1 - Подали сетевое - усь в ожидании (stendbai)

2 - Нажали кнопку - включилось рэле подключающее питалово на силовой транс, появляется индикация (4-х разрядный 7-ми сегментник) -- уровень громкости на момент выключения.

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

Если есть возможность помочь в данном проекте - буду очень благодарен.

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


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

Кстати в добавок к алгоритму - при подаче "стороннего" сигнала на один из входов контроллера, усил должен так же включиться ( при использовании отдельного преда).

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


Ссылка на сообщение
Поделиться на других сайтах
... проект в протеусе ...
К сожалению, в протеусе помочь не смогу. Я в нём не работаю и у меня его нет, так что даже открыть посмотреть нечем.

Так как после переделки, проект "задышал"?

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


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

Вот и схема добытая непосильным трудом из протеуса.

 

 

Узнать бы ещё назначения кнопок.

 

 

post-32484-0-83872000-1518362882_thumb.jpg

Изменено пользователем goldmen8

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


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

кнопки свеху 1,2,3,4,

1 - вкл

2 - +

3 - -

4 - нажал - есть + на PD0 , ещё раз - нету.

Переделал всё и всё равно тихо.

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


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

Перенастроил порты - индикатор засветился....... весь......все сегменты.......

На нажатие не реагирует, сдвиг.рег. молчит.

Хреново когда недоучь.....

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


Ссылка на сообщение
Поделиться на других сайтах
... появляется индикация (4-х разрядный 7-ми сегментник) -- уровень громкости на момент выключения. ...
А не много будет уровень громкости в 4-е разряда?

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


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

индикацию хочу сделать "dB" - 127, а с прибавлением или убавлением.....

Буквы с индикатора отдельно сделаю...

Пыжусь с чужих решений "свести" в кучу всё - ума, блин, не хватает, блин....

Может кто ссылочку скинет как правильно выводить цыфры через 595-ю в CodeVision-е?

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


Ссылка на сообщение
Поделиться на других сайтах
... как правильно выводить цыфры через 595-ю ...
Для этого полезнее один раз разобраться, чем каждый раз искать чьи-то кривые примеры. :smile:

Берётся даташит на нужную микросхему (ссылка на даташит 74HC595: _http://www.ti.com/lit/ds/symlink/sn74hc595.pdf ).

Микросхема состоит из двух регистров - входного регистра сдвига и выходного регистра-защёлки. Чтобы во время передачи кода на выходах микросхемы не проскакивали промежуточные значения (чтобы цифры на подключеном индикаторе не моргали), сначала последовательный код побитно записывается в сдвиговый регистр, потом одним тактом перезаписывается в регистр-защёлку, после чего новые данные появляются на выходах микросхемы.

Зная, к каким портам контроллера какие выводы микросхемы подключены, просто пишутся соответствующие действия в программе:

Исходно управляющие входы микросхемы надо установить в следующие состояния:

OE (13) = 0 (выходы микросхемы активны);

RCLK (12) = 0 (исходное состояние входа записи в регистр-защёлку);

SRCLK (11) = 0 (исходное состояние входа записи в сдвиговый регистр);

SRCLR (10) = 1 (сброса в 0 сдвигового регистра нет);

SER (14) - вход последовательных данных, любое состояние, так как нужное установится при первом выводе.

 

В подпрограмме вывода кода цифры выполняются следующие действия:

На SER (14) устанавливается первый бит выводимого кода.

На SRCLK (11) устанавливается 1, затем 0, т.е. формируется фронт такта, по которому бит со входа SER записывается в сдвиговый регистр.

Эти операции повторяются, пока в сдвиговый регистр не будут записаны все биты кода.

После записи в регистр сдвига всего кода (в данном случае - кода знака цифры на индикаторе), на его выходе получается параллельный код, который надо переписать в выходной регистр.

Для этого на RCLK (12) надо установить 1 (по этому фронту данные запишутся в выходной регистр и появятся на выходах), затем 0 (вернуть в исходное состояние). При динамической индикации эта операция делается в другом месте (см. ниже).

Всё. Новое число установлено на выходах микросхемы. Бит, выведенный последним, окажется на выходе QА (15), остальные биты - по порядку на остальных выходах.

 

Дальше надо разобраться с динамической индикацией. У вас 4 знака, в которые надо выводить число по-очереди циклически. В каком порядке - не имеет значения. Чтобы обеспечить наиболее быстрое переключение, последовательность такая:

 

1. В 595-й регистр выводится последовательный код следующего символа по алгоритму, написанному выше. В выходной регистр пока не пишется (состояние RCLK (12) не меняется). Во время длительной операции последовательного вывода на индикаторе всё ещё горит предыдущий символ.

 

2. Текущая линия выбора знака (на вашей схеме это PC0 - PC3 контроллера) выключается. Знак при этом гаснет.

Каким уровнем (0 или 1), зависит от того, какой у вас индикатор - с общим анодом или общим катодом.

 

3. На выводе RCLK (12) формируется фронт записи в выходной регистр. На выходах микросхемы при этом появляется код следующего знака.

 

4. Устанавливается активной следующая линия выбора знака. Знак при этом "зажигается".

 

Для четырёхразрядного светодиодного индикатора "перебирать" знаки надо с частотой 60 - 120 Гц, чтобы не было заметно мерцания. Делать частоту выше не стоит - будет уменьшаться яркость.

 

По поводу схемы подключения индикатора.

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

Выводы PC0 - PC3 контроллера перегружены по току. Может быть включено одновременно все 7 сегментов (цифра 8), соответственно посчитайте, какой ток требуется с вывода порта PC, и посмотрите в даташите, какой максимальный допустим.

Изменено пользователем Lexter

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


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

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

Вы сможете оставить комментарий после входа



Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • Сообщения

    • Это значит, что резистор подбирается при настройке. Вполне может быть, что выкусил его настройщик, так как параллельно ему стоит R346 номиналом 51 Ом. Проверьте, что он стоит. При изменении R345 от 620 Ом до 1 кОм, суммарное сопротивление параллельных R345 и R346 меняется всего от 47,1 до 48,5 Ом, что для режима работы данного каскада -  "ловля блох", не говоря о том, что есть подстроечник R351, и говорит лишь о том, что настройщик грамотнее разработчика этой схемы.     Схема, где стоит этот R345, - обычный стабилизатор напряжения с таким вот дебильным "настраиваемым" (и нафиг не нужным) ограничением тока, так как работает на аккумулятор. Кстати, прибор может не работать потому, что эти аккумуляторы (Б1 и Б2) в нём ещё стоят, и давно сдохли.   В этом техническом описании есть таблицы с напряжениями на выводах транзисторов - "Карта напряжений на электродах транзисторов и микросхем", "Карта сопротивлений" для проверки омметром в выключенном состоянии, осциллограммы в контрольных точках.  Это поможет вам найти место неисправности. Перед началом рекомендую проверить исправность всех электролитических конденсаторов. Прибор старый, срок их эксплуатации давно истёк.
    • Доброго времени суток Николай!!!! Огромное спасибо за подсказку!!!! Я не мог чётко прочитать последний символ на плате так как резистор был откусан вместе с краской и как я  теперь выяснил с Вашей помощью, он не R 348 как я предполагал по оттиску от краски а R 345 как показано на схеме на которую Вы указали. За что ещё раз огромное спасибо за вашу помощь. Из таблиц узнал что  там должен быть ОМЛТ-025 - 910 Ом±5% но в примечании напротив стоит значение 620 Ом...1 кОм . Я давно не занимался подобными делами и многое позабыл. Предполагаю придется селекционировать???
    • На первой странице этой темы, в первом посте, в приложенных файлах есть полная документация на этот прибор, со схемами. В ней написано, что резистор R348 - 33 кОм, 0,25 Вт.   Кроме схем, настроить и проверить прибор вам помогут имеющиеся в этой документации техническое описание, методика поиска неисправностей, таблицы напряжений, сопротивлений и т. д.
    • Всем доброго времени суток!!!  У меня появился прибор Р5-10. Свиду без повреждений, даже какие то пломбы на месте.Попробовал включить в розетку (заменив вилку) лампочка питания горит но прибор не работает. Настройки не трогал и решил разобрать посмотреть что внутри. В самом измерителе всё цело, а вот в блок питания кто то залез и выгрыз резистор под номером 348 номинал его я и хочу узнать чтоб его купить и установить. Схемы с номиналом не нашёл поэтому надеюсь на то что кто нибудь посмотрит у себя и сообщит мне. Из за это никону не нужного резистора не хочу разбирать прибор в лом и на эксперименты. Заранее всем спасибо)))))
    • Александр, с точки зрения шумов и других неприятностей, лучше со средней точкой силовой или...? В схемах одного и того же усилителя то мост стоит, то со средней точкой. Влияет на что? 
    • Добрый день! Имеется пара широкополосников 150гдш35-8. Хочу собрать под эти динамики усилитель. Посоветуйте со схемой и доступными комплектующими. 150ГДШ35-8.zip
    • Каждый создает этот "кладезь знаний" для себя сам. Поскольку Ваши запросы весьма общие и довольно таки обширные, без конкретики, то и начинать посоветуют с учебников...Когда один не хочет "зря терять время", то кто-то должен это сделать за него
    • Спасибо за информацию. Можно считать, что дроссель уже есть. Вот ещё иметь информацию об основных правилах подбора железа для выходных трансформаторов. Соотношение сторон магнитопровод а для той или иной мощности, достаточность окна для намотки.. Как мотать, секционирование и тд здесь много обсуждается. Неплохо бы создать этакий "кладезь знаний"… чтобы посмотреть табличку и иметь ясность хотя бы ориентировочно и меньше задавать вопросы. Те же ВАХи самых применяемых ламп, режимы их работы. Согласитесь, лазанье по всему интернету, или в своей "копилке".. Иногда жаль терять время. 
    • Ув. geshka55, все правильно Вы прикинули, обычно дросселя так и делают, чтобы намотка была под завязку, лишнее место там ни к чему. Индуктивности Вам должно хватить с головой, также и сечение провода, выбранное по току для данного случая,  достаточно. Насчет зазора, то даже в выходных трансформаторах, где токи в разы больше, часто применяют лист бумаги 0,1 мм, в сумме 0,2 мм. У меня такая прокладка применена в дросселе, через который питается полностью весь усилитель. Тоже приблизительно около 2 тыс. витков, фильтрация замечательная! 
    • Скажите пожалуйста. Очень много железа, провода, и т д и т п... Универсальный трансформатор для усилителя - тоже нет однозначного ответа. А вот можно ли как-то систематизировать знания о трансформаторном железе и описать оптимальные параметры. Я имею ввиду отношение сторон сечения магнитопровода, размер окна, и какова может его зависимость от мощности.. Читая статью о трансах на любые случаи жизни, постоянно есть отговорки, типа маловато, но можно придумать. Может такой вариант снимет многие вопросы на чем мотать? Как мотать - это уже что-то конкретное к данной лампе, к данному режиму.   
    • Вот пока почитал умных советов, решил сам провести расчет дросселя для усилителя.  В схеме: индуктивность 8 Гн. Питаются 3 лампы 6Н1П. Принял для расчетов ток 50мА. По таблицам пошарил нужные коэффициенты. И вот что получилось: железо - УШ 16х25 с окном 10х28. кол-во витков 2000 &#8709; провода 0,18 зазор 0,25. При проверке заполнения окна получилась площадь 2,6 см2 и как-бы "в притирочку", сопротивление обмотки 136 ом, что означает 6.8 вольт падения на дросселе. Также проверка показала, что индуктивность 7.7-7.8 Гн, что и требовалось доказать. Но вот с зазором. Проложить картон 0,25 под "зуб", или 0,1? перечитал что-ли.. ? он должен быть равен половине заложенного в расчет? Помогите рассеять мысли о плохом. Может у кого опыт был намотки .. Сравните, как у меня - как у вас. Приблизительно хоть у цели я? Если все так, то с утра пойду в электроцех. Есть оборудование для намотки, пропитки и т.д... обещали помочь и с проводом и научить пользоваться станком. Блин, мало 15 типов станков, так еще и намоточный освою.
    • Есть трансформатор без опознавательных знаков... Слегка видно "3050...0.2...380в.. Ш- железо 16х32 высота намотки 40мм.. Эта обмотка как раз целая. Хватит ли применить вот это" чудо" в качестве дросселя? Там, куда он нужен, дроссель 6 гн. Напряжение 475в, ток ну где-то до 350ма. Или потрошить и доматывать, если не перематывать полностью. Спасибо    
    • Если вопрос актуален, вот и схема.https://yadi.sk/d/oMHKET9244a0UQ
    • Судя по формулировке вопроса - вариант один: сдать в ремонт.
    • Александр, прошу прощения, значит изготовление начнется с полным "опустошением" катушек? (на всякий случай спросил, но сам понял, что все с изнова). Но хочу поблагодарить за выдержку и терпение об"яснять нам что такое Z-соединение и делиться личным опытом.
    • Спасибо я решил проблему изменив схема биполярным транзистором)
    • В вашей схеме конденсатор может только зарядится. Нужно, что бы он мог разрядится. Либо резистор высокоомный параллельно конденсатору, или диод параллельно светодиоду в обратном включении. Попробуйте.
    • Добрый день.У меня возник вопрос как создать простейший тестер для определения работоспособности кулеров. Мне пришла партия 4ех контактных кулеров и ситуация с товаром странна. У кулеров через раз работают датчики Холла и собственно вопрос такой у меня есть схемка нарытая на просторах интернета которую хотелось бы доработать для тестов тех же кулеров.Помогите в общем.)
    • Здравствуйте. Телефон Explay не включается. Подсоединил зарядное устройство, но ничего не произошло! Проверяю мультиметром, напряжение есть, а батарея на 100% заряжена, проверял на другом устройстве. Один раз включился, а потом выключился и все. Долго лежал в тумбочке! Везде проверял мультиметром и везде напряжение не меньше 20 Ма, что делать?
    • Уважаемые форумчане, подниму тему. Есть такой тюнер с неработающем одним каналом. Что сделано, поменял полностью все электролиты, заменил выходные на IRF540N. Без выходных канал работает, только тихо, при подключении греются выходные. Подскажите может у кого есть мануал со схемой где указаны замеры напряжения? Буду рад если вышлите на почту sdvpilkin@yandex.ru.
    • Если не трудно прошу ответить на такой может и смешной вопрос: на ТС200-1М блок можно использовать имеющиеся обмотки для выходного транса? Или перематывать? 1-3 и 5-6 почти равны.Хорошо это ли плохо?
    • Может поможет кто определить моточные данные или хотя бы описание трансформаторов, которые случайно обнаружил в инструментальной комнате нашего ансамбля. 1. E14 702 030 2. Amplimo 3A5L4 Буду очень благодарен
    • Мне не к спеху, я пока собираю преусилитель, цап и спектроанализатор. В УМЗЧ можно было и ничего не ставить, хо хотелось чтобы не была голая морда у него. 
    • Придётся немного подождать. Нужно вспомнить что да как... Однако времени прошло достаточно, и  подзабыт и уже давно заброшен тот проект, как не востребованный.
︽ Наверх страницы ︽
×
×
  • Создать...