Сдвиговый регистр 74HC595 Выходной ток - PullRequest
0 голосов
/ 23 октября 2019

Я тестирую / отлаживаю программу C ++, которая использует сдвиговый регистр 74HC595 (Arduino Teensy3.2 @ 3,3 В).

Я хочу подключить 8 выходов SR обратно к 8 входным контактам наплата Arduino.

Мой вопрос: нужны ли мне резисторы между выходом регистра сдвига и входом Arduino? Как узнать ток, протекающий с выхода SR?

Я взглянул на таблицу данных, но это меня просто смутило: https://www.taydaelectronics.com/datasheets/A-251.pdf

КОД ДЛЯ УСТАНОВКИ РЕГИСТРОВ:

void ShiftRegisterOut(uint8_t bitOrder, uint8_t val)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (bitOrder == LSBFIRST)
        digitalWrite(pinData, !!(val & (1 << i)));
    else    
        digitalWrite(pinData, !!(val & (1 << (7 - i))));
    digitalWrite(pinClock, HIGH);
    digitalWrite(pinClock, LOW);
  }
}

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Нам необходимо различать «порт µC является входом» и «порт µC является выходом» и то, как различаются напряжения питания.

TL; DR: Вы должны стремиться использоватьодинаковое напряжение питания на обоих, и чтобы убедиться, что микроконтроллер никогда не устанавливает контакты подключенного порта в качестве выхода. Это первый описанный случай, и вам не понадобится резистор.

Входной порт µC

Напряжение питания 74HC595 на ниже или равно , чем у µC

В этом случае входной импеданс порта µC настолько высок, что не протекает значительный постоянный ток.

Вам не нужен резистор, он только сделает края медленнее.

Напряжение питания 74HC595 на выше, чем , чем у микроконтроллера

Если выходное напряжение на контактах 74HC595 заставляет диоды зажима микроконтроллера проводить ток, то результирующий ток может быть слишком высоким, в зависимости от слишком большого количества электрических характеристик, которые можно упомянуть здесь. В паспорте 74HC595 указано, что каждый выход может выдавать не менее 35 мА, поскольку это допустимый максимальный выходной ток. Это явно больше допустимого значения 25 мА мкК.

Существует еще одно ограничение: 74HC595 не должен давать в общей сложности более 70 мА.

Поэтому вам необходим резистор на линию. Чтобы обеспечить оптимальную скорость вращения кромок, сделайте ее как можно ниже.

Например, если у вас есть напряжение питания 6 В на 74HC595, вам потребуется минимум (6 В - 3,3 В) / (70 мА / 8) = 308 Ом. ,Чтобы быть в безопасности, я бы использовал 620 Ом.

µC порт - это выход

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

Микроконтроллер также имеет предел для суммы всех выходов: он не должен давать в общей сложности более 100 мА. Но это выше, чем у 74HC595, поэтому мы должны принять это.

Напряжение питания 74HC595 на ниже или равно , что у µC

Критическоерегистр «низкий» для 74HC595 и «высокий» для микроконтроллера.

Вам потребуется не менее 3,3 В / (70 мА / 8) = 377 Ом. Чтобы быть в безопасности, я бы использовал 750 Ом.

Напряжение питания 74HC595 на выше, чем , чем у µC

Критический случай "высокий" на 74HC595 и "low "на микроконтроллере, и это зависит от напряжения питания 74HC595.

Например, если у вас есть напряжение питания 6V на 74HC595, вам потребуется не менее 6V / (70 мА / 8) = 686 Ом. Чтобы быть в безопасности, я бы использовал 1,5 кОм.

2 голосов
/ 23 октября 2019

В соответствии с таблицей данных, которую вы связали, и таблицей для uC на Teensy вам не нужно резисторы между uC для ограничения тока:

74HC595 максимальный выходной ток +/- 20 мА @6В

MK20DX256VLH7 максимальный входной ток +/- 25 мА

Но если вы подаете 74HC595 с> 6 В, вы можете превысить максимальное входное напряжение 5,5 В MK20DX256VLH7.

...