PDA

Просмотр полной версии : Микросхемы HCF4015 и HEF4015, есть ли разница



Владимир_К
06.06.2016, 11:07
Никогда не задумывался над тем, что они чем-то отличаются, пока не собрал девайс. Это индикатор по схеме А.Тарасова. В индикатор загнал "0123456". Как видно на фото, первые две цифры высвечены правильно, последние - сдвинуты на один такт. Если "вернуть" их с карандашом назад, увидим, что они именно сдвинуты. Попробовал прогнать тестовую программку, подавая на вход поочередно 1 и 0. Получается следующее, последний сегмент второй микросхемы "h" и первый сегмент третьей микросхемы "a", зажигаются обновременно, чего не должно быть. Третья микросхема это как раз HEF4015. Все остальные HCF. На нее как раз и подозрение, что она работает не так как ожидалось. Откуда такая уверенность? Такая же стояла и второй. И тогда правильно высвечивалась только первая цифра, остальные были сдвинуты на такт.
Может кто сталкивался с этим. Знакомый говорит, что-то такое было, но подробностей не помнит. Даташит ничего не говорит...

Oleg 9
06.06.2016, 11:26
Получается следующее, последний сегмент второй микросхемы "h" и первый сегмент третьей микросхемы "a", зажигаются обновременно, чего не должно быть. Третья микросхема это как раз HEF4015.Поставьте конденсатор, ориентировочно 100 пФ с 2-ой ноги DD2 (сегмент "h") на общий провод. Также припаяйте пару блокировочных конденсаторов по питанию DD3 4015, с 8-ой на 16-ю ногу, 0,1 мкФ + 10 мкФ.

Владимир_К
06.06.2016, 12:06
Поставьте конденсатор, ориентировочно 100 пФ с 2-ой ноги DD2 (сегмент "h") на общий провод.
По питанию не помогло... Со 2 ноги DD2 на общий 4,5 и 7 цифра высвечивается правильно, 3-я и 6-я неверно (надо глянуть, может что с таблицей в программе напутал..
Нет, не напутал... В общем получается, что эта микросхема, вход которой я закорачиваю конденсатором на землю, высвечивает восьмерку. На емкость меньше 100 пф не реагирует...

Oleg 9
06.06.2016, 12:09
Такое явление может быть в том случае, если по шине CLK проскакивает ещё один короткий импульс после основного. Причиной может быть "звон" в проводах или наводка с шины DAT в жгуте проводов. HEF4015 более быстродействующая, чем HCF4015, и она успевает сработать по такому короткому импульсу, а HCF4015 не успевают. Для устранения этой проблемы можно поставить резистор 1-10 кОм в разрыв провода CLK на плате с регистрами . Конденсатор со 2 ноги DD2 на общий при этом можно убрать.

По питанию не помогло... Со 2 ноги DD2 на общий 4,5 и 7 цифра высвечивается правильно, 3-я и 6-я неверно (надо глянуть, может что с таблицей в программе напутал..А тестовая программка, подающая на вход поочередно 1 и 0 как отрабатывает?

rx3apf
06.06.2016, 12:26
Если "звон" (а при такой длине жгута, как на фото, вполне реально), резистор последовательно надо ставить со стороны передатчика и номинал порядка волнового сопротивления линии (100 Ом). Однако этот резистор (последовательное согласование) состоит из двух частей - собственно резистора и сопротивление канала самого передатчика, и 100 Ом должно быть в сумме. Либо использовать параллельное согласование - но не просто шунтировать линии конденсатором, а последовательной RC-цепочкой (100 Ом+100 пФ).

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

Ну, а для проверки - соединить блоки непосредственно, совсем коротенькими проводничкам. Если проблема исчезнет - причина найдена.

Владимир_К
06.06.2016, 12:32
А тестовая программка, подающая на вход поочередно 1 и 0 как отрабатывает?
Первые две микросхемы - засвечены сегменты а, с, е, g. Так и должно быть. Остальные м/c- соответственно b, d, f, h. То есть тут картинка сдвинута на один такт. При следующем такте меняются местами. Нарушение как раз в том месте, где стоит HEF. Сегмент "а" в ней загорается одновременно с сегментом "h", предыдущей. А ведь между ними триггер..
Кстати, без подачи тактового сигнала Clk, никакие изменения на шине "data", 7-я нога, в данной микросхеме, на выходе (5 нога), никаких изменений нет. Это я допускал, что триггер свистит насквозь. Нет, все там нормально..

Oleg 9
06.06.2016, 12:38
Сегмент "а" в ней загорается одновременно с сегментом "h", предыдущей. А ведь между ними триггер..Так от резистора в разрыве провода CLK на плате с регистрами, что то меняется или нет?

Владимир_К
06.06.2016, 12:45
А тестовая программка, подающая на вход поочередно 1 и 0 как отрабатывает?
Первые две микросхемы - засвечены сегменты а, с, е, g. Так и должно быть. Остальные м/c- соответственно b, d, f, h. То есть тут картинка сдвинута на один такт. При следующем такте меняются местами. Нарушение как раз в том месте, где стоит HEF. Сегмент "а" в ней загорается одновременно с сегментом "h", предыдущей. А ведь между ними триггер..
Кстати, без подачи тактового сигнала Clk, никакие изменения на шине "data", 7-я нога, в данной микросхеме, на выходе (5 нога), никаких изменений нет. Это я допускал, что триггер свистит насквозь. Нет, все там нормально..

Вообще класть тактовый сигнал вот так в жгуте - плохая идея (может быть наводка от соседней линии).
Это жгут для проверки... В реальном устройстве такого не будет.. Но, таких индикаторов собрал 4 штуки. Проблемы нигде не было. Правда везде стояли HCF. Я уже выше писал.. В этой же плате первоначально стояли две HEF, вторая и третья. При этом только первая цифра высвечивалась правильно. Потом вторую м/с заменил на HCF. Проблема ушла правее:smile:.

Так от резистора в разрыве провода CLK на плате с регистрами, что то меняется или нет?
Пока не пробовал... Неудобно плату резать.. дорожка Clk практически вся под микросхемами, к ней не добраться, проще заменить микросхему. К сожалению сейчас нет под руками...

Oleg 9
06.06.2016, 12:48
Пока не пробовал... Неудобно плату резать.. дорожка Clk практически вся под микросхемами..Можно временно прицепить между проводом и разъёмом на плате. Контакт с проводом должен легко вытаскиваться из пластиковой обоймы. Если наводка на Clk с провода DAT, то можно также завалить фронт DAT, поставив в разрыв провода DAT резистор, но уже со стороны платы контроллера.

Владимир_К
06.06.2016, 13:07
Можно временно прицепить между проводом и разъёмом на плате.
rx3apf, Oleg 9,! Спасибо, результат внизу. Резистор в разъеме, без конденсаторов... Вообще, малость наплевательски отнесся к реализации. Проблем вроде не было, расслабился:smile:.
Кстати, на плате контроллера, резистор уже есть, причем 1 ком (это плата Ардуино). Но, видимо индуктивность провода, сыграла свою роль..

Oleg 9
06.06.2016, 13:11
Спасибо, результат внизу. Резистор в разъеме, без конденсаторов... Вообще, малость наплевательски отнесся к реализации. Проблем вроде не было, расслабился.Отлично! Для устойчивой работы, если есть желание, имеет смысл выяснить нижний предел сопротивления резистора, при котором проявляется нужный эффект и потом увеличить номинал в 1,5 раза. Излишнее сопротивление этого резистора также снижает устойчивость ко всяким наводкам.

Владимир_К
06.06.2016, 13:16
имеет смысл выяснить нижний предел сопротивления резистора, при котором проявляется нужный эффект и потом увеличить номинал в 1,5 раза.
Это уже буду делать в реальном устройстве. Там же и жгут будет другой.. Да и контроллер совсем другой. Главное - теперь ясна причина явления.

ur3ilf
06.06.2016, 15:16
Была точно такая же проблема. С данными микросхемами так бывает когда попутано управление. Вернее как идёт управление- по фронту или по спаду импульса. При этом первый регистр управляется правильно а в следующих уже мусор. Резистор с ёмкостью монтажа вносит задержку и начинает работать правильно. При этом в симуляторе как бы всё нормально работает. А в железе нет.

Tolya
05.09.2016, 10:51
Что бы не плодить темы...спрошу здесь..трансивер FT857 не работает РА сигналы DAТА и CLK есть,нет сигнала STB на сдвиговые регистры BU4094BCFV, при касании пальцем этого вывода всё начинает работать,отпустив палец какое то время продолжает работать и потом опять в ступор,так же начинает работать при касании щупом от мультиметра...пока держишь всё нормально работает..

Владимир_К
05.09.2016, 11:34
Подайте 1 (5 вольт через резистор 10 ком). Тут все зависит от алгоритма работы устройства. Можно так делать или нет. Например - регистр это индикатор, как у меня выше посты. На вывод STB можно подать 1 постоянно, но тогда заметно слабое свечение всех незадействованных сегментов, когда перестраиваю синтезатор. При остановке все нормально. Есть и еще нюансы. Например, регистров, включенных последовательно, у Вас много. Вам нужно поменять информацию только в одном, причем последнем. Вы это делаете, и потом "дергаете" сигнал STB только в последнем регистре. На его выходе появится нужная инфо, а на остальных в выходных триггерах останется прежняя. Понятно, что сигналы STB в данном случае должны быть раздельными для каждой м/с.
Не знаю, есть ли смысл в этом, но я так делал (насчет смысла, можно просто загнать во все регистры новое "слово", причем новым оно будет только для последнего). То есть на выходе последнего будет новая информация, а на первых прежняя.

Tolya
05.09.2016, 11:41
В данном случае у меня там две микросхемы сдвигового регистра одна управляет режимами работы РА вторая переключает реле в ФНЧ..сигналы CLK,DАТА и STB для них общие...

Владимир_К
05.09.2016, 11:59
Для реле, то что я выше написал, вполне допустимо. Если STB у Вас будет подан постоянно, на выходах триггеров регистров, при загрузке новой информации, будут присутствовать импульсы. Частота их сотни кгц, а то и мегагерцы. Реле на них никак не среагируют, но там наверное есть какие-то драйверы для управления реле, транзисторы, а скорее м/с. Например, что-то типа ULN2803. Хорошо ли это для них, да и для выхода регистра. Одно дело он (регистр) один раз выдал на выход единицу или ноль и "замолчал". А тут он во время загрузки нового "слова" несколько раз изменит свое состояние. Но, не думаю, что это критично. Хотя, об этом надо конечно помнить. Лучший вариант, конечно, найти, где пропал сигнал, потом принять решение. Если его не выдает контроллер, тогда придется идти на крайние меры. Обнаружить его сложно, сигнал длится микросекунды. Проще всего - этот сигнал подать на вход счетного триггера (можно частотомера или счетчика импульсов). Или осциллографом со ждущей разверткой.

Tolya
05.09.2016, 12:23
Вот я тоже так думаю..что я просто подаю постоянно сигнал STB и создается иллюзия работы..при переключении диапазонов загружаются данные и регистр переключается..когда я снимаю палец сигнал STB еще какое то время порядка 2-3 минуты присутствует и потом пропадает..я пытался проверить сигнал STB осциоллографом C1-104,большой правда..но другого нет и коснувшись щупом обнаружил такую ерунду..но сигнала STB так и не увидел..хотя может что и не так делал..

Владимир_К
05.09.2016, 12:37
но сигнала STB так и не увидел..хотя может что и не так делал..
У меня С1-75. Делаю я так, ручкой смещаю линию вправо, чтобы видеть начало развертки. Включаю ждущую развертку от внутреннего сигнала. При появлении импульса можно иногда увидеть. Если он периодический, пусть даже с большой скважностью, то его видно. В Вашем случае, скорее всего нет. Или надо попытаться часто переключать режимы девайса, чтобы этот импульс появлялся чаще. Но, лучше счетный триггер. Любую м/с с D-триггером. Выход (инверсный) соединяете со входом D, на С подаете сигнал. При наличии сигнала, триггер будет переключаться в противоположное состояние.

Tolya
05.09.2016, 13:11
Надо будет почитать инструкцию на осциллограф..глядя на него есть такие режимы однократный,ждущий и автоматический..с триггером надо будет этот вопрос рассмотреть..но это надо что то паять..как я понимаю??

Tolya
05.09.2016, 15:15
Подключил осцилоскоп...но так ничего и не увидел..ни CLK ни DATA а тем более STB....хотя сигналы CLK и DATA общие ещё со сдвиговым регистром в синтезаторе,только сигналы STB разные..там то ведь всё работает...

Tolya
16.09.2016, 22:13
Тут возник ещё один вопрос по сдвиговому регистру...сохраняет он при выключении информацию на его выходах при снятии питания или она стирается и заполняется новой при подаче сигнала STB...

Владимир_К
16.09.2016, 22:32
сохраняет он при выключении информацию на его выходах при снятии питания
Нет.

Tolya
16.09.2016, 22:37
В таком случае при включении питания что будет на этих выхода 0 или 1 пока не поступил сигнал STB..?

user12
17.09.2016, 02:07
После подачи питания все выходы установлены в ноль. Единицы будут только тогда когда их "загрузят" в регистр.

Tolya
17.09.2016, 10:02
Интересно...значит удерживая сигнал STB в низком уровне,при включени я могу обнулить сдвиговые регистры....

rx3apf
17.09.2016, 10:56
С чего вдруг ? Состояние выходов после подачи питания непредсказуемое, для сброса существует отдельный вход. Если к нему подключить RC-цепочку - да, будет обнуление при сбросе. А строб тут не при чем...

Tolya
17.09.2016, 11:25
Какой вывод микросхемы 4094 отвечает за сброс в ноль выходные сигналы.?
Вроде бы всё ясно и понятно...но честно признаюсь запутался с этими сигналами...

rx3apf
17.09.2016, 11:29
У 4094, в отличии от 4015, отдельного входа сброса нет и единственный способ гарантированно установить выходы в определенное состояние - загрузить 8 битов данных и "защелкнуть" их.

user12
17.09.2016, 11:34
А в чём проблема чтоб задвинуть на выход 8 нолей?

Tolya
17.09.2016, 11:53
На входах CLK,DATA - 5 вольт на STB - 0 вольт... это правильно???

Владимир_К
17.09.2016, 12:26
А в чём проблема чтоб задвинуть на выход 8 нолей?
Проблема описана в 14 посту темы (а может это уже для общего развития:-|). Скорее всего, в программе управления трансивером, это так и предусмотрено, если исправно.

Tolya
17.09.2016, 12:34
А вот как формируется сигнал STB в микроконтолере, по времени или только после того как загонит все 8 бит,16...и т.д посчитав их выдает сигнал???

Владимир_К
17.09.2016, 13:15
А вот как формируется сигнал STB в микроконтолере, по времени или только после того как загонит все 8 бит,16...и т.д посчитав их выдает сигнал???
Так примерно:
/*************** Управление регистром **************/
void k595_init()
{
unsigned char i;
unsigned char tmp;
PORTD &=~(_BV(PD3)); //Устанавливаем в ноль сигнал STB
tmp = chip_593; // tmp - это число, которое надо загнать в регистр
for (i = 0; i < 8; i++) // Задаем цикл 8 раз
{
if (tmp & 0x80) // выполняем операцию "и" tmp c числом 10000000
{PORTD |=_BV(PD1);} else {PORTD &=~(_BV(PD1));} //Если в результате "и" имеем единицу, на входе "data" устанавливаем "единицу", если нет - "ноль"
PORTD |=_BV(PD4); //Тактовый импульс на входе CLK

PORTD &=~(_BV(PD4)); //сбрасываем CLK в ноль
tmp <<= 1; //Сдвигаем число tmp влево и повторяем цикл еще семь раз
}
PORTD |=_BV(PD3); //Устанавливаем на входе STB "единицу". Все -число задвинуто в регистр.
}

Tolya
17.09.2016, 14:23
Огромная благодарность и конечно..:пиво::пиво ::пиво:
а то перерыл весь интернет,хотя может и не там рыл..но не смог найти эту инфо..получается что может физически процессор и жив,а вот произошёл програмный сбой и вместо служебной информации процессор выдает на сдвиговые регистры ,,мусор,, и при этом не выдает сигнал STB. А выходы сдвиговых регистров находятся в хаотичном состоянии и то что не должно быть включено,выключено.. .а то что должно быть выключено,включено.. .а касаясь пальцем шины STB я просто проталкиваю этот,,мусор,, на выход тригеров..и получается тоже самое.... примерно так...если я не прав..то поправьте меня..

Владимир_К
17.09.2016, 14:45
,а вот произошёл програмный сбой и вместо служебной информации процессор выдает на сдвиговые регистры ,,мусор,, и при этом не выдает сигнал STB. А выходы сдвиговых регистров находятся в хаотичном состоянии и то что не должно быть включено,выключено.. .
В 14 посту Вы писали, что если "прикоснуться ко входу STB", то все работает. Если это так, то процессор выдает на регистры не "мусор", а нужную информацию. А вот сигнала STB не выдает. Его Вы потом выдаете потенциалом своего пальца.
Таким образом, если это так, надо искать где пропадает сигнал STB. Я уже Вам писал - возьмите любой триггер, например 74НС74 (там их два кстати), получите простейший пробник, которым можно проверить наличие одиночного импульса. При поступлении очередного импульса светодиод будет менять состояние.

Можно пойти еще дальше... Спаять на платке регистр 4094, к нему на выходы припаять светодиоды через гасящие резисторы. Входы регистра подсоединить к соответствующим выводам в трансивере. Переключая режимы трансивера, по состоянию светодиодов можно судить о работоспособности девайса. Это к тому, что может у Вас регистр не исправен. Эта примочка позволит определить это.
Это, конечно, требует пайки, но трансивер штука дорогая. Ради него, придется заняться..

user12
17.09.2016, 14:51
.а касаясь пальцем шины STB я просто проталкиваю этот,,мусор,, на выход тригеров..и получается тоже самое.... примерно так...если я не прав..то поправьте меня..
Сконфигурированный на выход порт может находиться только в двух состояниях ноль или единица. На палец тогда реагировать не будет. Но могут быть подтягивающие резисторы на плюс или на минус. Япошек иногда умом понять трудно.
Тут вариантов не много остаётся.
1.Нет контакта где должен быть
2.Спалили порт процессора
3.Cамый сложный- возникла ошибка в программе с выводом в регистр.
243112

Tolya
17.09.2016, 15:35
В 14 посту Вы писали, что если "прикоснуться ко входу STB", то все работает.
Да это было так...пока не заменил переключающие диоды по цепи приема,если раньше я слышал что релюшки или релюшка щёлкает и появлялся прием ,в общем он пролазил..сейчас тоже самое...но приема нет,потому что например диапазон 14 Мгц - а ФНЧ включено на прием и передачу на 28 Мгц,подано смещение на выходные транзисторы,прием на HF закрыт и т.д и т.п вообщем ерунда какая то..вот это я и имею ввиду ,,мусор,, просто я не вижу той логике работы которая должна быть..
если контролер выдал бы правильную информацию в регистр и не выдал по какой то причине сигнал STB..то коснувшись пальцем я пропихнул её и всё должно бы заработать....исправ ность сигналов CLK и DATA ????....так они одни и теже и для PLL только сигналы STB разные и там всё работает...
Да насчет тригера,я уже об этом подумал и нашел готовое решение,правда на 561ТМ думаю что пойдет..

Владимир_К
17.09.2016, 16:01
правда на 561ТМ думаю что пойдет..
Может и не пройти. Все же это довольно низкочастотная микросхема. Сколько там, пару мгц, ну может чуть больше... А какой длительности сигнал выдает процессор? Не известно.. Я бы слепил дополнительный регистр со светодиодами и подключил его параллельно проблемному по входам. Не будет работать, значит искать надо раньше - шины - процессор -..

Tolya
17.09.2016, 16:45
Может и не пройти
Спасибо...а то уже было начал сейчас приспосабливать..всё отменяю это действие..насчет тригеров..я один поменял,так на всякий случай..но чуда не случилось..как не работало так и не работает..так а что мне даст пробник..ведь я и так вижу что информация при переключении диапазонов на выходах меняется,...но повторюсь не так как надо...

Владимир_К
17.09.2016, 17:26
я один поменял,так на всякий случай..но чуда не случилось.
Не понятно, что Вы поменяли.. Если регистр и, "чуда не случилось", то мое предложение слепить регистр на платке в качестве пробника - наверное бесполезное. Кроме того, если информация на выходе регистра меняется, то, скорее всего, сигнал STB все же присутствует. Тогда не знаю, куда копать... Разве что, банальное, проверить шины на предмет обрыва. Ну и пробник с триггером все же спаять, чтобы убедиться, что он (STB) таки присутствует. Кто его знает... По теории одно, на практике другое, и они иногда не пересекаются:-(.

Tolya
17.09.2016, 17:52
Кроме того, если информация на выходе регистра меняетсяТолько в том случае..когда я каcаюсь и держу палец или прицепляю щуп от тестера к шине STB...