Страница 1 из 1

Надежно ли передавать данные 1 сигналом нарегистр 74hc164 ?

Добавлено: Пн авг 10, 2009 22:37:28
Aiudara
Вот сделал на Си код - прикольно работает в PROTEUS - но регистра нет чтоб в железе провериь. У кого есть возможность посмотрите будет ли это работать.

Вывод информации по 1 ножке AVR на сдвиговый регистр 74hc164 для представления в параллельном виде. регистры можно каскадировать и получать 8 16 24 32 выхода.

Вывод МК подключен к входу CLOCK (8 нога 74hc164) и через фильтр НЧ из резистора 1 кОм и конденсатора 10 нФ к входам DATA (1 и 2 в 74hc164).

Вот video ( развертка осциллографа 20 мкС )
http://www.youtube.com/watch?v=ZITgHr-GfNk

Вот архив с проектами CVAVR и PROTEUS ( там и даташит на 74hc164 и 74hct164 )
http://stream.ifolder.ru/13490383

Добавлено: Пн авг 10, 2009 23:53:12
Alex72
Прикольно однако, а что со свободными ногами МК такой напряг, что нельзя ещё одну выделить для "DATA". К тому же надо делать задержки. Может проверю как нибудь в железе для интереса, но не скоро.

Добавлено: Вт авг 11, 2009 00:05:38
NiTr0
Идея 1-wire интерфейса в аналоговом исполнении - интересно... Одно "но" - применимо только там, где не нужна высокая скорость, т.к. желательно это все с запасом в 2-3 раза делать, либо - дополнительно что-то типа компаратора ставить (неизвестно, как будет меняться порог срабатывания триггера при изменении температуры).

Добавлено: Вт авг 11, 2009 00:38:20
Aiudara
Может быть полезно для 8 ногих Тини и для новых 6 ногих ATtiny4 ATtiny10 - например управлять несколькими 7 сегментниками.

Передача 1 байта занимает 328 мкС при указаных конденсаторе и резисторе. так что глаз не заметит моргания.

Ну и просто прикольно.

Добавлено: Вт авг 11, 2009 08:18:19
adrenocrome
а можно схему не в протеусе ,а на картинке? новый прот грузить не хочется пока.

судя по описанию - вроде как товарищ ДиХальт делал так и работало вполне.

Добавлено: Вт авг 11, 2009 08:54:53
Aiudara
А вся схема то вот в посте выше:
Вывод МК подключен к входу CLOCK (8 нога 74hc164) и через фильтр НЧ из резистора 1 кОм и конденсатора 10 нФ к входам DATA (1 и 2 в 74hc164).
И в исходнике это написано в начале. И там же укзана ножка выход на МК - но ее переназначиь можно.

Добавлено: Вт авг 11, 2009 10:51:03
urry
для ттл -серии 1 кОм в интегрирующей цепи - это много, не более 510 Ом, иначе может не увидеть потенциал 0.
И выдача какая-то накрученная...
Вместо

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

void send_74hc164 (char value)
{
char ctr_bit = 8;   // счетчик бит в байте

while (ctr_bit){    // пока счетчик не ноль делать ...
DATA = (value & 1); // вывести бит_0 на DATA
delay_us(35);       // пауза 35 мкС
value >>= 1;        // сдвинуть value на 1 бит вправо

// формирование защелкивающего фронта - перехода "0" в "1"
DATA = 0;           // сделать "0" на DATA
delay_us(1);        // пауза 1 мкС
DATA = 1;           // сделать "1" на DATA
delay_us(2);        // пауза 2 мкС

ctr_bit --;  // посчитать отправленый бит
} 
}
в инициализации DATA = 1;
и проще

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

void send_74hc164 (char value)
{
char ctr_bit = 1;   //маска
do{
DATA = 0;  
if(!(value&ctr_bit))
{
delay_us(15);
}
DATA = 1; 
ctr_bit <<= 1;
delay_us(15);
}while (ctr_bit);
}

Добавлено: Вт авг 11, 2009 11:09:44
Aiudara
Ну я типа по шагам сделал - чтоб уж совсем ясненько было тем кто втягивается только.

Вам спасибо за код.

74hc вроде и с бОльшими резисторами пашет обычно.

Добавлено: Вт авг 11, 2009 13:34:24
Aiudara
Я думаю что такое решение - передача данных по 1 проводу - можно применить для "индикаторной головки" - устройства отображения информации без микроконтроллера ( если там есть МК то конечно есть формат UART и 1-wire ). Этот иникатор может подключаться к устройству когда нужно что-то проконтролировать - удобство в том что нужно простое внешнее гнездо - земля, питание и сигнал - например стерео аудио разъем 3.5 или 2.5 мм.

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

Добавлено: Вт авг 11, 2009 16:20:29
Настя
Aiudara - устарело, публикация от 26 марта 2009
http://easyelectronics.ru/upravlenie-se ... ovodu.html

Добавлено: Вт авг 11, 2009 16:31:25
GP1
по-пахивает китайчатиной :roll:

Добавлено: Вт авг 11, 2009 16:35:35
Aiudara
Настя писал(а):Aiudara - устарело, публикация от 26 марта 2009
http://easyelectronics.ru/upravlenie-se ... ovodu.html
Эта статья и указана у меня в начале исходника.

Только в статье то нет исходников ни каких. Вот я и накалякал проектик чтоб теорию из статьи можно было на практике применять.

Добавлено: Вт авг 11, 2009 17:08:09
kalobyte
у меня есть плата с регистрами
может сегодня или завтра попробую

Aiudara
в оригинальной статье есть линк на первоисточник с кодом на асме

Добавлено: Вт авг 11, 2009 17:38:28
Aiudara
kalobyte писал(а): Aiudara
в оригинальной статье есть линк на первоисточник с кодом на асме
Ага. А теперь там в статье есть еще и линк на мой код на Си.

Но как я выше и написал - в САМОЙ статье исходников нет ни каких.

Добавлено: Вт авг 11, 2009 17:45:02
Aiudara
kalobyte писал(а):у меня есть плата с регистрами
может сегодня или завтра попробую
Попробуй определить границы R*C для данных пауз в программе. желательно С поточней - ведь у него разброс обычно больше чем у R.

Добавлено: Ср авг 12, 2009 11:36:47
kalobyte
пока в протеусе посмотрел
код некошерный в плане подключения индикаторов
надо передавать справа налево, начиная с 3го вывода регистра
а в коде все наоборот

щас уходить надо, потом может перепишу под себя