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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение 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
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 201
Зарегистрирован: Пн сен 08, 2008 11:21:11
Откуда: Пермь

Сообщение Alex72 »

Прикольно однако, а что со свободными ногами МК такой напряг, что нельзя ещё одну выделить для "DATA". К тому же надо делать задержки. Может проверю как нибудь в железе для интереса, но не скоро.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua

Сообщение NiTr0 »

Идея 1-wire интерфейса в аналоговом исполнении - интересно... Одно "но" - применимо только там, где не нужна высокая скорость, т.к. желательно это все с запасом в 2-3 раза делать, либо - дополнительно что-то типа компаратора ставить (неизвестно, как будет меняться порог срабатывания триггера при изменении температуры).
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Может быть полезно для 8 ногих Тини и для новых 6 ногих ATtiny4 ATtiny10 - например управлять несколькими 7 сегментниками.

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

Ну и просто прикольно.
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 365
Зарегистрирован: Вт окт 21, 2008 15:03:06
Откуда: moscow

Сообщение adrenocrome »

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

судя по описанию - вроде как товарищ ДиХальт делал так и работало вполне.
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

А вся схема то вот в посте выше:
Вывод МК подключен к входу CLOCK (8 нога 74hc164) и через фильтр НЧ из резистора 1 кОм и конденсатора 10 нФ к входам DATA (1 и 2 в 74hc164).
И в исходнике это написано в начале. И там же укзана ножка выход на МК - но ее переназначиь можно.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение 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);
}
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Ну я типа по шагам сделал - чтоб уж совсем ясненько было тем кто втягивается только.

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

74hc вроде и с бОльшими резисторами пашет обычно.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

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

Этот индикатор может быть один на несколько совершенно разных устройств. Причем устройства могу слать отладочную информацию всегда - т.е. им не нужно сообщать о подключении индикатора.
Мявтор!
Аватара пользователя
Сообщения: 878
Зарегистрирован: Чт авг 07, 2008 09:12:38
Откуда: не скажу

Сообщение Настя »

Aiudara - устарело, публикация от 26 марта 2009
http://easyelectronics.ru/upravlenie-se ... ovodu.html
натуральная блондинка
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

по-пахивает китайчатиной :roll:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

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

Только в статье то нет исходников ни каких. Вот я и накалякал проектик чтоб теорию из статьи можно было на практике применять.
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

у меня есть плата с регистрами
может сегодня или завтра попробую

Aiudara
в оригинальной статье есть линк на первоисточник с кодом на асме
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

kalobyte писал(а): Aiudara
в оригинальной статье есть линк на первоисточник с кодом на асме
Ага. А теперь там в статье есть еще и линк на мой код на Си.

Но как я выше и написал - в САМОЙ статье исходников нет ни каких.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

kalobyte писал(а):у меня есть плата с регистрами
может сегодня или завтра попробую
Попробуй определить границы R*C для данных пауз в программе. желательно С поточней - ведь у него разброс обычно больше чем у R.
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

пока в протеусе посмотрел
код некошерный в плане подключения индикаторов
надо передавать справа налево, начиная с 3го вывода регистра
а в коде все наоборот

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

Вернуться в «Микроконтроллеры и ПЛИС»