• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!

200 сообщений в этой теме

brown    0

Все вроде бы правильно, но! вторую команду lcdout я бы переставил (см.

ниже), так как на ее исполнение требуется на много больше чем 100мкС.

это ошибка!? Проверь Протеусом-сообщи результат! Сам до него ни как не

доберусь;(

Может проще использовать TMR0 с предделителем?

DEFINE LCD_DREG PORTC 'LCD data port B

DEFINE LCD_DBIT 4 'LCD data starting bit 0 or 4

DEFINE LCD_RSREG PORTC 'LCD register select port D.1

DEFINE LCD_RSBIT 1 'LCD register select bit 1

DEFINE LCD_EREG PORTC 'LCD enable port D.3

DEFINE LCD_EBIT 3 'LCD enable bit

DEFINE LCD_BITS 4 'LCD bus size 4 or 8

DEFINE LCD_LINES 2

DEFINE LCD_COMMANDUS 2000 'Command delay time in us

DEFINE LCD_DATAUS 50 'Data delay time in us

DEFINE OSC 20

od var byte

w1 var word

od100 var byte

od1km var word

F var word

st var bit

i var word

@ device WDT_OFF

OPTION_REG = $C7

trisB=255

LCDOUT $FE, 1,"Privet Andrey",#portb

pause 500

st=1

F=0

w1=1

intcon=$C0

T1CON=0

On Interrupt Goto signal

m:

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

start:

TMR1H=254

TMR1L=12

T1CON=1

PIE1=1

w1=0

high portc.0

goto ex

stoping:

PIE1=0

T1CON=0

od1km=F*3

LCDOUT $FE, 2, #od1km, " ", #F, " "

w1=1

F=0

low portc.0

ex:

st=1

goto m

Disable

signal:

f=f+1

TMR1H=254

TMR1L=12

PIR1=0

st=1

Resume

Enable

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Yrok    0

О!!

Спасибо за ответ!!!

Я уже подумал ветка заброшена--вот и несмотрел.

Попробовал переставленный вариант--тоже неправильные показания!!!

При входных импульсах 10мс--показывает 82(отрезка)

при 12мс--99

что делать незнаю???!!!!!

бился и так и эдак результат нулевой.

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


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

В РВР есть PULSIN для измерения длительности импульса. Если используется кварц на 20 МГц, то возвращается результат с инкрементом 2 мкс (например, если результат 200, то длина импульса 200х2 мкс).

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


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

Дело в том что при исполнении команды Pulsin--ничего параллельно делать нельзя--микроконтроллер тупо будет ждать конца импульса считая отрезки по 2 мксек.

А если длина импульса 1-50 мсек--а при этом надо еще следить за другим входом и регистрировать на нем количество приходящих импульсов--тогда команда Pulsin неподходит.

Поэтому пришлось написать свою программу подсчета длительности импульса--и теперь надо разобраться почему она неправильно считает.

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


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

1)

m:

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

Вот тут нету ошибки? Один ENDIF и 3 IF. На сколько помню, каждому IF должен бвть свой ENDIF.

2) В самих доках по PBP написано, что нужно использовать GOTO Label как можно меньше и лучше юзать GOSUB ... RETURN. Это тоже может вызывать глюки. Допишите в каждую подрограмму st=1 и вызывайте из подрограммы m start и stoping через GOSUB ... RETURN.

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


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

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

ошибки нет--если после if исполняется один оператор то endif ставить ненадо!!!

поменял на gosub и return

теперь при входных импульсах 10мс--показывает 88-89 отрезков(результат бегает от 88-89)

т.е. регистрирует входной импульс длительностью 8.8-8.9 мсек---короче теряется 1.1-1.2 мсек

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


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

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

ошибки нет--если после if исполняется один оператор то endif ставить ненадо!!!

поменял на gosub и return

теперь при входных импульсах 10мс--показывает 88-89 отрезков(результат бегает от 88-89)

т.е. регистрирует входной импульс длительностью 8.8-8.9 мсек---короче теряется 1.1-1.2 мсек

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

Все временные интервалы лучше задавать через прерывание по таймеру и по возможности прогонять на симуляторе.

В Вашем случае необходимо использовать АППАРАТНОЕ прерывание, а именно конструкцию DEFINE INTHAND метка, и далее на ассемблере сохранение регистров при входе в прерывание и восстановление при выходе из прерывания. Читайте мануал, там есть пример, как это сделать.

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

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


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

Привет программисты! Помогите начинающему Делаю автомат управления освещением аквариума на PIC16F874 и LCD WH0802. Пишу на PicBasic. Половину программы написал, а дальше что-то не могу. Короче как автомат должен работать: Включаю, на дисплее надпись "введите время", выставляю, потом надпись "установите интервал" ( например включение света от 8.00 до 21.00 ), после того как все настроил на дисплее идет время и в зависимости от времени включается/выключается свет. Программу часов я написал, всякие надписи типа "введите время" я смогу сделать, настроить интервал включения тоже сам смогу, но я не знаю как выставлять время. Алгоритм проги, которую я написал:

объявил переменные:

i var byte

w var byte

a var byte

i - часы

w - минуты

a - секунды

теперь сама программа

main:

for i = 0 to 23

for w = 0 to 59

for a = 0 to 59

LCDOUT $FE, 1, #i, ":", #w, ":", #a

pause 1000

next a

next w

next i

goto main

прога рабочая, проверено.

Я пробовал выставлять время так:

if portc.0 = 0 then M = M (переменная) + 1

if portc.1 = 0 then w = m

т.е. если кнопка, подключенная к портС.0 нажата например 5 раз, то

переменная М = 5, если нажата вторая кнопка, то минуты = 5, но так не катит. Подскажите, как можно настраивать время

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


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

Данила

Для развития проекта, его лучше выложить со схемой в протеусе.

И потихоньку совершенствовать. по ходу учится.

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


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

Опишите плз. полный алгоритм действий для 1-wire!!!

Для ds1820 уже разобрался (содрал пример с сайта), но вот как считать напругу с ds2450 не могу понять.

Если не сложно набросайте пример работы с ds2450 под picbasic pro

PLZ

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


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

тоже начал мучать picbasic, тут возник вопрос: как подцепить и написать прогу под управление валкодером в пикбесике, конкретно под tda7313?

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


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

Народ как в Pic Basic вывести на LSD байт в шестнадцатиричном виде?

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


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

Люди! не могу разобраться с командой : FOR....NEXT. Кто нибудь для примера, дайте простенькую прогу с этой командой.

И желательно с пояснением!

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


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

подскажите пожалуйста в чем проблема?

элементарная програмка (включения и выключения светодиода)

loop:

high 10

pause 1000

low 10

pause 1000

goto loop

компилируется и на пик симуляторе запускается только на половину...

светодиод загорается но тухнуть не хочет...

пытаюсь написать ее же и скомпилировать в прилогающемся к пик симулятору бейсик компиляторе

так пишет что в строчке "pause 1000" ошибка...

в чем дело?

помогите разобраться пожалуйста?

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


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

Уведите какой именно BASIC компилятор используете...

А есть там вообще подпрограма pause? и какой параметр берёт на вход? Может быть это в секундах? Тогда всё правильно у вас работает :) Потухнет через через 16 с копейкой секунд :) Какую именно ошибку выдайт в этой строке? Я на бейсике не писал ничего с времён школы.. лет 20 уже...

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


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1
тоже начал мучать picbasic, тут возник вопрос: как подцепить и написать прогу под управление валкодером в пикбесике, конкретно под tda7313?

Тоже сижу мучаю прогу под ЭНКОДЕР (2 шт, подключены к RB4:7)- PicBasicPRO

На даный момент имею:

'****************************************************************
'*  Name	: Обработчик сигналов энкодера					  *
'*  Author  : Lev@											  *
'*  Notice  : Copyright © 2009 Lev@						   *
'*		  : All Rights Reserved							   *
'*  Date	: 20.10.2009										*
'*  Version : 1.0											   *
'*  Notes   :												   *
'*		  :												   *
'****************************************************************
REGIN VAR BYTE
FLAGIN VAR BYTE

TRISB = %11110000	   	' Направление порта В			   
OPTION_REG = %10000000	  ' Подтягив. резисторы
ON INTERRUPT GOTO INT   	' При прерывании переход к подпрограмме
INTCON = %10001000		  ' Разрешение глоб. прерываний, прерывания по изм. RB7:RB4   
REGIN=0			  ' Очистка всех ячеек регистров
FLAGIN=0						  

' Заносим состояние входов в память
IF PORTB.4=1  THEN 
REGIN.0=1	
ELSE 
REGIN.0=0
ENDIF
IF PORTB.5=1  THEN 
REGIN.1=1	
ELSE 
REGIN.1=0
ENDIF
IF PORTB.6=1  THEN 
REGIN.2=1	
ELSE 
REGIN.2=0
ENDIF
IF PORTB.7=1  THEN 
REGIN.3=1	
ELSE 
REGIN.3=0
ENDIF			   

Main:					   ' < Основная программа
GOTO Main			   	' Зацикливание осн. программы >

DISABLE					 ' < Запрет всех прерываний
INT:					' Метка подпрограммы - обработчика прерываний
IF INTCON.0 = 0 THEN ET ' Проверка флага прерываний - было ли прерывание по изм. RB7:RB4

IF PORTB.4 <> REGIN.0 THEN 
 FLAGIN.0=1			  ' Установить флаг прерывания от соотв. входа RB4
   IF FLAGIN.1=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.0=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.0=0			' Конец импульса
	 FLAGIN.0=0			' Обнуляем флаг прерывания от соотв. входа RB4
	 FLAGIN.1=0			' Обнуляем флаг прерывания от соотв. входа RB5
   ENDIF
ENDIF
 IF PORTB.5 <> REGIN.1 THEN 
 FLAGIN.1=1			  ' Установить флаг прерывания от соотв. входа RB5
   IF FLAGIN.0=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.1=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.1=0			' Конец импульса
	 FLAGIN.0=0		   ' Обнуляем флаг прерывания от соотв. входа RB4
	 FLAGIN.1=0		   ' Обнуляем флаг прерывания от соотв. входа RB5
   ENDIF
ENDIF
IF PORTB.6 <> REGIN.2 THEN 
 FLAGIN.2=1			  ' Установить флаг прерывания от соотв. входа RB6
   IF FLAGIN.3=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.2=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.2=0			' Конец импульса
	 FLAGIN.2=0			' Обнуляем флаг прерывания от соотв. входа RB6
	 FLAGIN.3=0			' Обнуляем флаг прерывания от соотв. входа RB7
   ENDIF
ENDIF
IF PORTB.7 <> REGIN.3 THEN 
 FLAGIN.3=1			  ' Установить флаг прерывания от соотв. входа RB7
   IF FLAGIN.2=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.3=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.3=0			' Конец импульса
	 FLAGIN.2=0			' Обнуляем флаг прерывания от соотв. входа RB6
	 FLAGIN.3=0			' Обнуляем флаг прерывания от соотв. входа RB7
   ENDIF
ENDIF
ET:					' Подготовка к выходу из обработчий
INTCON.0=0		 ' Сброс флага прерываний по изм. RB7:RB4
RESUME
ENABLE					  ' Разрешение всех прерываний >
END

Это еще не конец. Еще допишу правильный выход из обработки. Потом скорее всего в асемблере откоректирую... :)

подскажите пожалуйста в чем проблема?

элементарная програмка (включения и выключения светодиода)

loop:

high 10

pause 1000

low 10

pause 1000

goto loop

компилируется и на пик симуляторе запускается только на половину...

светодиод загорается но тухнуть не хочет...

пытаюсь написать ее же и скомпилировать в прилогающемся к пик симулятору бейсик компиляторе

так пишет что в строчке "pause 1000" ошибка...

в чем дело?

помогите разобраться пожалуйста?

Если используешь Basic Compiler встроенный в PIC Simulator IDE - то там нету такой процедуры - юзай хелп к нему. А можешь как я - учить PicBasicPRO к нему есть поболее документации. (Кста Ты ею и пользуешься судя по всему, токо Basic Compiler это совсем другой язык)

Качай вот сдесь компилятор сцылка

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

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


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

Вопрос:

Допустим есть B VAR BYTE как сделать побитную выборку? т.е. х=В0, В1, ... В7

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

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


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

Не знаю синтаксиса языка PicBasic, но побитную выборку можно сделать с помощью лог. операций AND и OR

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


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1
Не знаю синтаксиса языка PicBasic, но побитную выборку можно сделать с помощью лог. операций AND и OR

сам только учусь.

по логике вещей должно быть что-то похожее на

x VAR bit
B VAR byte

For i=0 to 7
x=B(i)
Next i

Но почему-то не хочет так работать...

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

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


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

А с чего это оно будет работать ? У вас В это что массив какой-то ? :)

Не знаю как в барсике, но в СИ если нужно работать с числом на уровне битов можно использовать битовое поле.

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

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


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

И как это сделать?

Правилами запрещено цитировать предедущий пост. Пока вам предупреждение. Wowa.

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


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

Для Си кратко:

Битовые поля

Внутри структурных типов могут быть организованы, так называемые, битовые поля. Такое поле начинается с младшего бита того слова, в котором оно будет размещаться. Битовые поля размещаются внутри 8-ми битных слов. Если поле не удается разместить в текущем байте структуры, то размещение продолжается в следующем байте. Битовые поля никогда не пересекают границу между 8-ми битовыми областями, выделенными для данной структуры. Например:

struct {

unsigned hi : 1;

unsigned dummy : 6;

unsigned lo : 1;

} foo @ 0x10;

В данном случае структура будет занимать один байт по адресу 0х10. При этом поле hi будет соответствовать нулевому биту, а lo – 7-му биту регистра по адресу 0х10. Младший бит поля dummy будет располагаться в первом, а старший – в 6-м битах регистра 0х10. Если структура описана, как показано выше, то она будет размещена по абсолютному адресу, и память под ее размещение выделяться не будет.

Если необходимо определить битовое поле, которое содержит неиспользуемые области, то можно указать безымянные поля:

struct {

unsigned hi : 1;

unsigned : 6;

unsigned lo : 1;

} foo @ 0x10;

Как это сделать на РВР я не знаю. Я честно сразу, когда заинтересовался пиками, тоже ломанул на РВР, но потом понял его ущербность и перешёл на Си и компиль-среда разработки микроСи, но сейчас учусь на HI-TEC там библиотек готовых меньше, что сподвигает более углубленному изучению :) и об этом решении ни грамма не жалею. Иногда то, что на первый взгляд выглядит просто потом выходит боком, да и консультацию по Си дадут 100% на форуме быстрее чем на барсике, а по нему могут вообще не дать, но это ИМХО.

Ещё Вам тут правильно подсказали, что чтение отдельных битов можно осуществлять с помощью побитовых операций в Си это & (И), |(ИЛИ) не путать с логическими операциями !!!.

Т.е смысл в том, что с помощью операции & и маски мы ненужные биты выключаем, а нужный считываем, например:

n = 00110101;

допустим нам надо узнать значение нулевого бита, тогда применяя маску 00000001

с = n & 00000001; мы передадим в "с" значение нулевого бита т.е 1, затем уже делаем с ним что нам надо.

00110101

&&&&&&&

00000001

---------

00000001

Чтобы включить биты (т.е, которые установлены в ноль) используем побитовую операцию ИЛИ (|)

n = 00110101;

c = 00000001;

c = c | n;

в результате "с" равно 00110101 т.е с == n

00000001

|

00110101

---------

00110101

Надеюсь объяснил понятно, уж аналог Си-шных побитных операций в барсике найдёте сами :)

Удачи и все же совет переходите на Си.

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

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


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

Тогда это еще проще сделать на ASM - с помощью сравнения с "1" или "0" BTFSC и BTFSS ! Будет самый простой и КОРОТКИЙ код! ;)

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

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


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

В микроСи вообще доступ к битам осуществляется просто и наглядно:

char D;

bit0 = D.F0;

bit1 = D.F1 ну и т.д.

Честно асм вообще не знаю не лежит у меня к нему душа, как то на Си для себя мне проще и быстрее да и замарок меньше, хотя если Вы знаете асм накой Вам вообще этот барсик сдался ? :)

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


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Serega4789
      Привет всем! пишу программу для pic16f84a кривошипный пресс, получилось запустить один режим (одноходовый) без блокировок и защит , для реализации двурукого включения нужно, чтобы нажимались 2 кнопки , при этом нужно чтобы программа следила за интервалом времени между нажатием 2х кнопок , при одновременном нажатии программа запоминает это событие и через 3-5 циклов сбрасывает ошибку и блокирует схему до сброса , при интервале 0,5 сек между нажатием кнопок программа выполниться без ошибок , при превышении интервала в 0,5с придется заново нажать на кнопки !
      Не хватает знаний команд и опыта для построения кода

    • Автор: Qwer11
      Здравствуйте.
      У меня есть микроконтроллер pic18f4550,
      я научился мигать светодиодом в flowcode и хотел бы сделать гирлянду,
      и небольшую вывеску из светодиодов.
      Как я понимаю на ножку микроконтроллера смогу не много поставить светодиодов т.к. там ограничение по току будет.
      поэтому исходя из схемы что я нашёл, используют транзистор для включения линии из светодиодов,
      какой транзистор по хар-кам подойдёт для включения 20 светодиодов в линии, (20мАх20=400мА)

      и как например я смогу включать светодиоды поочерёдно в одной линии,
      я читал что есть74HCT595, для экономии ножек например, при подключении индикатора светового,
      как я понимаю, для включения 20 светодиодов поочерёдно нужно или 20 портов использовать и 20 проводов,
      или перед каждым светодиодом поставить микросхемку какую нибудь, которая будет давать сигнал на включение.
      Спасибо.
    • Автор: Serge77
      Обязанности:
      · Разработка радиоэлектронных и GSM-устройств: разработка схем, программирование, разводка печатных плат, разработка документации.
      · Программирование микроконтроллеров STM, AVR, ARM, PIC на языке С/С++
       
      в личку или en@argument74.com
    • Автор: east1095
      Здравствуйте, давно читаю форум, зарегистрировался только сегодня, хочу попросить советов у вас для очередной работы.
       
      1. Мощность 30 кВт, напряжение 2 кВт, 15 А ток.
      2. Планирую полумост;
      вопросы:
      1. Шим контроллер должен поддерживать регулировку к.заполнения, с заданным dU/dT, это планирую делать с МК, потому что в случае пробоя быстроействуюий ключ даст сигнал об остановке преобразователя, потом будет строб, потом пуск источника, при этом он должен выйти на напряжение на котором произошла остановка работы с более коротким (быстрее) dU/dT, это можно реализовать с МК, завести сигнал с датчика КЗ.
      При этом нужна регулировка напряжение и регулировка уставки максимального тока(в приципе в схеме защиты от КЗ она уже реализована)
       
      2. Полумоста хватит на такую мощность?
      3. Можно ли с помощью софта рассчитать трансформатор на такие характеристики? Lite_calcIT не осилил такую задачу.
      4. 1 трансформатор или набор модулей соединенных последовательно для обеспечения нужного напряжения?
      5. Ткните носом в краткую но понятную ветку/статью о резонансных и квазирезонансных и других типах схем, т.к. я недостаточно в этом подкован, немного другие интересы, однако.
       
      Заранее спасибо!
    • Автор: пафнут
      доброго времени! недавно начал изучать pic контроллеры, бошка пухнет. вопрос в следующем: как в ассемблере реализуется процедура шим
      1)к пример у меня имеется одна кнопка и переключаю я ей три светодиода по принципу регистра сдвига и мне нужно чтобы каждому из трех светодиодов соответствовал к примеру коэффициент заполнения 30, 60, и 100%( делаю себе подогрев жопы к зиме)
      2) можно ли обращаться к кнопке при организации процедуры выполнения 15 минутной  задержки, чтобы я мог в любой момент его выключить до истечения 15 минут
      в прикрепленках сама схема в протеусе , но программу я написал только для включения одного светодиода, чтоб с одним хотя бы разобраться и тайминг поставил 5 сек, так сказать для наглядности
      pic.asm
      pic16.DSN
  • Сообщения

    • @colorad какие будут замечания относительно следующего? заменил 311 на 339.  нужно еще R19 пересчитать.(тот что задает уровень срабатывания компаратора по току)
      не могу разобраться на счет R12. рассчитывал исходя из тока светодиода. какой максимальный ток коллектора 7pin DIS 555? в даташитах не могу найти. можно ли поднять сопротивление R17 в полтора два раза? затвор наверное сотни нА будет кушать.. по этому стабилитрон на 5вт  кажется - слишком перебор.) посоветуйте D7(тот что параллельно нагрузке). ............................ диодный мост ткнул от-балды. ....................................
    • Ищите обрыв или непропай со стороны плюсовой шины. Скорее всего коллектор неконтачит.
    • Не буду ничего говорить. По-другому.  Он очень ровный по звуку и мягкий что ли.  Уровень шума мизерный с открытым входом еле шелестит, а с замкнутым вообще гробовая тишина в пищике. На осцилле на делении 2 мВ/ клетка даже ВЧ шума нет, только помеха 100 Гц  амплитудой 0,5 мВ. Скорость без ФНЧ намерил около 150 в/мксек, корректируется двумя конденсаторами миллера в УН. Сейчас стоит по 10 пФ, но уменьшал и до 8- тишина. Ограничение мягкое. Емкость в нагрузке переваривает до 1 мкФ, это сильно. Но это не народный усилитель, да и дорогой он в сборке.   На выходе у меня стоят MJL1302/3281 Попробовал R6=1,5 и 2,2 К. Нужно, видимо, чуть больше, один  транзистор повторителя приоткрывается, другой еще закрыт наглухо. Остается 3,3 оставить. 17 мА, конечно, многовато (вот почему тока и не хватало  стабам), но транзисторы греются не сильно, градусов до 45. 
    • @Sergey32 А что за реле? Два контакта на замыкание, или три? Если три, то при включении реле два контакта размыкаются. Вот в таких:    Эта функция "отключение при включении реле" уже встроена. Никаких вторых реле не нужно!
    • Чего считать то? на выходе любого блока питания их полно. перечислить? Не то что пальцев, волос не хватит.
    • Ясно. И как он по сравнению с твоим Никитинским гибридом, к которому Вадим плату разводит?
    • Серег, тута. http://forum.vegalab.ru/showthread.php?t=30729&page=4