реклама на сайте
подробности

 
 
> 74HC4094 в качестве расширителя порта, Кто-нибудь пробовал?
alux
сообщение Jun 7 2007, 18:03
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Привет. Необходимо сделать динамическое включение катодов 7-сегментного индикатора. Выводов контроллера как всегда не хватает. В качестве расширителя порта решил поставить преобразователь последовательной шины в параллельную 74HC4094. Т.е. по сути мне необходимо периодически (10мсек) на выходе 4094 сдвигать "1" для включения соответсвующего индикатора. Или другими словами последовательно загружать числа 1,2,4,8,16,32 и так по кругу. Вывод OE всегда притянут к питанию. Важно не допустить одновременного включения нескольких катодов. Правильно ли я делаю :

1) SI=1, CLK=1, SI=0, CLK=0 . Повторить n раз (n =1,2,4,8,16,32)
2) STROB=1;
3) STROB=0;

Сильно греется КРЕН. Померял ток потребления схемы - около 130 мА. Схема - это микроконтроллер (Мега48) с двумя светодиодными индикаторами, управляемые динамически. Видимо, проблема связана с неправильным формированием сигналов на 74HC4094.

Прикладываю даташит. Кстати, у разных производителей по-разному осуществляется загрузка данных: либо по наростающему фронту на CLK, либо по спадающему... Странно.

Сообщение отредактировал alux - Jun 7 2007, 18:19
Прикрепленные файлы
Прикрепленный файл  74HC4094N_PHLPS.pdf ( 72.54 килобайт ) Кол-во скачиваний: 94
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alux
сообщение Jun 9 2007, 00:03
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Прошу прощения, но есть еще одна проблема с индикацией. В статике все работает замечательно. Делаю так:
display(1);
digit(1);
delay_ms(2000);

display(2);
digit(2);
delay_ms(2000);

display(1);
digit(1);
delay_ms(2000);
и на индикаторе поочередно зажигаются 1,2,3 слева-на-право.
А вот в динамике есть накладка. Вот кусок кода:


__flash unsigned char code7[]=
{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};


#pragma vector=TIMER0_COMPA_vect
__interrupt void TC0_COMPA_ISR(void)
{
switch(znak)
{
case 0:
hundred=1;
ten=2;
one=3;

display(hundred);
digit(++znak);
break;

case 1:
display(ten);
digit(++znak);
break;

case 2:
display(one);
digit(++znak);
znak=0;
break;
}
...................
}

////////////////////////////////////////
/********************************************************
// Вывод значения на индикатор с преобразованием в 7-сегментный код
void display(unsigned char num)
{
unsigned char temp;

num=*(code7+num);

temp = num;
PORTB=(temp&0x3f);

temp = PORTD;
temp &= 0x3f;
num &= 0xc0;
PORTD = (temp|num);
}


//*****************************************************************
//Включение знакоместа формированием "1" на выходе (74HC4094)
void digit(unsigned char number)
{
unsigned char table[]={0,1,2,4,8,16,32};

for (unsigned char i = 0; i < 8; i++)
{
if ((*(table+number) & 128)) PORTC |= (1<<SI);
else PORTC &= ~(1<<SI);
PORTC |= (1<<CLK);
PORTC &= ~(1<<CLK);
*(table+number) <<= 1;
}
PORTD |= (1<<STR);
PORTD &= ~(1<<STR);
}

При этом происходит наложение H+M, M+L, L+H. H,M,L-разряды индикатора.
Проганял в симуляторе. Все пучком. В чем же дело?

Сообщение отредактировал alux - Jun 9 2007, 00:06
Go to the top of the page
 
+Quote Post
AVL
сообщение Jun 9 2007, 07:06
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 392
Регистрация: 29-05-07
Из: Москва
Пользователь №: 28 020



Цитата(alux @ Jun 9 2007, 04:03) *
А вот в динамике есть накладка.
При этом происходит наложение H+M, M+L, L+H. H,M,L-разряды индикатора.
Проганял в симуляторе. Все пучком. В чем же дело?

Как часто вызывается __interrupt void TC0_COMPA_ISR(void) ?
Go to the top of the page
 
+Quote Post
alux
сообщение Jun 9 2007, 08:14
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Цитата(AVL @ Jun 9 2007, 10:06) *
Как часто вызывается __interrupt void TC0_COMPA_ISR(void) ?

10 мсек
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alux   74HC4094 в качестве расширителя порта   Jun 7 2007, 18:03
- - rezident   Народ обычно использует 74HC595 и TPIC6C595. При н...   Jun 7 2007, 19:34
|- - alux   Цитата(rezident @ Jun 7 2007, 22:34) Наро...   Jun 7 2007, 20:43
- - AVL   Микросхема 74HC4094 для Вашей задачи подходит не л...   Jun 7 2007, 20:09
|- - alux   Цитата(AVL @ Jun 7 2007, 23:09) Должно бы...   Jun 7 2007, 21:22
|- - AVL   Цитата(alux @ Jun 8 2007, 01:22) Не понял...   Jun 8 2007, 07:35
|- - alux   Цитата(AVL @ Jun 8 2007, 10:35) Значит на...   Jun 8 2007, 08:18
|- - AVL   Цитата(alux @ Jun 8 2007, 12:18) По справ...   Jun 8 2007, 08:42
||- - alux   Цитата(AVL @ Jun 8 2007, 11:42) Возможно ...   Jun 8 2007, 09:06
||- - AVL   Цитата(alux @ Jun 8 2007, 13:06) Радиатор...   Jun 8 2007, 10:38
|- - rezident   Цитата(alux @ Jun 8 2007, 14:18) Трансфор...   Jun 9 2007, 11:20
- - rezident   Похожую схему только без аналоговых входов (индика...   Jun 7 2007, 21:14
- - rezident   Может совет несколько неуместный, но зачем вам зан...   Jun 7 2007, 21:29
|- - alux   Цитата(rezident @ Jun 8 2007, 00:29) Сдви...   Jun 8 2007, 07:01
- - alux   Все, заработало! Вот окончательный код: void ...   Jun 8 2007, 13:07
|- - AVL   Цитата(alux @ Jun 8 2007, 17:07) Если вкл...   Jun 8 2007, 13:28
|- - alux   Цитата(AVL @ Jun 8 2007, 16:28) Откуда Вы...   Jun 8 2007, 14:02
- - almay   ЦитатаЕсли включить одно знакоместо постоянно и за...   Jun 8 2007, 13:30
|- - AVL   Цитата(alux @ Jun 9 2007, 12:14) 10 мсек ...   Jun 9 2007, 09:22
|- - alux   Цитата(AVL @ Jun 9 2007, 12:22) тогда вес...   Jun 9 2007, 09:58
|- - AVL   Цитата(alux @ Jun 9 2007, 13:58) Приклады...   Jun 9 2007, 10:48
|- - alux   Цитата(AVL @ Jun 9 2007, 13:48) Во первых...   Jun 9 2007, 12:05
|- - rezident   Цитата(alux @ Jun 9 2007, 18:05) 1) поста...   Jun 9 2007, 12:37
||- - alux   to rezident. Я хочу вернуться к вопросу чрезмерно...   Jun 14 2007, 07:28
||- - AVL   Цитата(alux @ Jun 14 2007, 11:28) to rezi...   Jun 14 2007, 08:32
||- - Сергей Борщ   Цитата(alux @ Jun 14 2007, 10:28) Я хочу ...   Jun 14 2007, 09:23
||- - rezident   Цитата(alux @ Jun 14 2007, 13:28) to rezi...   Jun 14 2007, 12:01
||- - alux   Цитата(rezident @ Jun 14 2007, 15:01) Тол...   Jun 14 2007, 16:58
||- - Сергей Борщ   Цитата(alux @ Jun 14 2007, 19:58) 7805 пи...   Jun 14 2007, 19:26
||- - alux   Цитата(Сергей Борщ @ Jun 14 2007, 22:26) ...   Jun 15 2007, 06:36
|- - AVL   Цитата(alux @ Jun 9 2007, 16:05) А зачем?...   Jun 9 2007, 12:38
||- - alux   Цитата(AVL @ Jun 9 2007, 15:38) А причем ...   Jun 9 2007, 13:16
||- - AVL   Цитата(alux @ Jun 9 2007, 17:16) Цитата и...   Jun 9 2007, 13:33
||- - rezident   Цитата(AVL @ Jun 9 2007, 19:33) P.S. Напр...   Jun 9 2007, 13:43
||- - AVL   Цитата(rezident @ Jun 9 2007, 17:43) Насч...   Jun 9 2007, 14:44
||- - alux   Цитата(rezident @ Jun 9 2007, 16:43) Вот ...   Jun 11 2007, 04:23
|- - alux   Цитата(alux @ Jun 9 2007, 15:05) А вот ту...   Jun 9 2007, 13:02
|- - AVL   Цитата(alux @ Jun 9 2007, 17:02) Прошу пр...   Jun 9 2007, 13:12
||- - alux   Цитата(AVL @ Jun 9 2007, 16:12) Предделит...   Jun 9 2007, 14:22
|- - AVL   Цитата(alux @ Jun 9 2007, 17:02) И еще од...   Jun 9 2007, 19:04
|- - alux   Цитата(AVL @ Jun 9 2007, 22:04) Для того,...   Jun 9 2007, 19:17
|- - AVL   Цитата(alux @ Jun 9 2007, 23:17) Одно уто...   Jun 9 2007, 19:29
- - rezident   Цитата(alux)2)опорное напряжение (+2.5В) на TL431 ...   Jun 9 2007, 15:11
|- - alux   Цитата(rezident @ Jun 9 2007, 18:11) Выво...   Jun 9 2007, 15:58
|- - rezident   Цитата(alux @ Jun 9 2007, 21:58) А на сче...   Jun 9 2007, 16:25
|- - alux   Цитата(rezident @ Jun 9 2007, 19:25) А во...   Jun 9 2007, 18:26
|- - rezident   Цитата(alux @ Jun 10 2007, 00:26) Просто ...   Jun 9 2007, 19:10
|- - alux   Цитата(rezident @ Jun 9 2007, 22:10) Каки...   Jun 9 2007, 19:48
|- - rezident   Цитата(alux @ Jun 10 2007, 01:48) Неужели...   Jun 9 2007, 21:18
|- - alux   Цитата(rezident @ Jun 10 2007, 00:18) А д...   Jun 9 2007, 22:02
- - rezident   ratiometric, это просто делитель напряжения питани...   Jun 9 2007, 22:39
- - rezident   Несмотря на то, что в вашем примере переменная Fla...   Jun 11 2007, 17:56


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 11:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016