Какой максимальный ток через все выводы arduino mega?
- Войдите на сайт для отправки комментариев
Есть у меня RGB цветомузыка (такая, как в этом видео, только одноканальная http://www.youtube.com/watch?v=dIYQ0l-WAZI ). Хочу переделать эту цветомузыку под микроконтроллерное управление для добавления разных эффектов и получения возможности нормального управления цветомузыкой от умного дома через UART. То есть мне надо подключить к мк 60 светодиодов (20 RGB), разделённые на 3 группы: 20 красных, 20 синих, 20 зелёных. Сделаю это в одном из двух вариантов:
1) Arduino nano и 9 сдвиговых регистров, разделённых на 3 группы, и в каждой группе соединено каскадно по 3 регистра. В общей сложности будет занято 9 пинов ардуино и соответственно будет три datapin, три latchpin и три clockpin (регистры делю на три группы, а не соединяю все каскадно (с занятием всего трёх пинов ардуино) для повышения быстродействия изменения состояния светодиодов). В таком исполнении проблем не возникнет (с питанием). К этим регистрам по группам и подключу LED кристаллы через резисторы.
Вариант 2: Использую ардуино мегу, которая имеет 70 входов-выходов (да, аналоговые входы можно использовать как выходы, об этом можно узнать, открыв в справочнике ардуино функцию digitlWrite).
К 60 выходам подключаем 60 светодиодных кристаллов (естественно через резисторы) и вуаля.
Для управления всей этой катавасией отается 10 выводов (70-60=10), что более чем достаточно ( свободными останутся два вывода)). Для питания всех этих светодиодов нужно 20миллиампер*60штук=2.4 ампера. Понятно что чип Arduino mega с очень малой вероятность протащит через себя такой ток, но мало ли..(40миллиампер на один порт это не та информация) Я пытался найти эту инфу в даташите на чип, но там дофига страниц и всё на буржуйском , поэтому малочитабельно. И ещё при таких токах нужно прощитать падение напряжения и рассеиваемую мощность на внутренних выходных транхисторах кристалла, эта информация долна быть в даташите, но фиг знает где((. Пожалуйста, ответьте на вопрос: Сможет ли Arduino Mega через все свои выводы (60 штук из 70-ти) напрямую (без всяких усилительных транзисторов и тому подобного) протащить ток в 2.4 ампера? Да, понятно, что если мега проташит через себя такой ток, то питать её надо будет не от USB и не от встроенного стабилизатора, а подавать питающее напряжение на прямую на вывод 5V на плате.
P.S. Если заказивать детали с алиэкспресса, то разница в цене между первым и вторым вариантом будет всего 50-80 рублей, что не критично, зато с arduino mega точно не будет проблем с нехваткой памяти, собственно это разница в цене и компенсирует память.
Жду отзывов, мнений, ответа на вопрос. Вообще склоняюсь к первому варианту, из-за отсутствия проблем с питанием, но хотелось бы сделать второй вариант.
P.S.S. Уважаемые форумчане, которые пишут ответы типа "Аля Вася дурак, потому что пятница" не писать имхо никому не интересные ответы.
То есть, одним ардуино тут никак не обойдёшься.
советую посмотреть в сторону TCL5940. можно будет еще и яркостью каждого светодиода управлять
а если просто включать выключать без регулировки яркости то MAX7219. кстати одна микросхема расчитана до 64 светодиодов в динамической индикации
можно конечно 74HC595 прицепить. но предыдущее мне кажется лучше
Спасибо за ответы.
Использовать TLC5940 в моём случае не нужно, это дороговато для такого количества светодиодов. Если использовать MAX7219, то светодиоды нужно будет подключать по схеме LED матрицы, а при таком подключении могут возникнуть коллизии:
Например, если одновременно включить светодиод с адресом ROW8*COL8 (см. эту схему) и светодиод с адресом ROW3*COL3, то дополнительно и ненужно включатся ещё светодиоды по адресам ROW3*COL8 и ROW8*COL3. Такую же схему можно реализовать множеством различных способов, но эта схема мне не подходит из-за вышеописанных проблем. Вариант с Arduino Mega тоже отпадает, поэтому буду использовать 74HC595 с описанным мной выше способом подключения.
ты не знаешь просто как микросхема работает. ты ей говоришь что должно гореть а она сама динамически переключает светодиоды. и такого не будет о чем ты писал
Хотя, на самам деле, там в документации по этому поводу есть более конкретные рекомендации:
3. Although each I/O port can sink more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed:
ATmega1281/2561:
1.)The sum of all IOL, for ports A0-A7, G2, C4-C7 should not exceed 100mA.
2.)The sum of all IOL, for ports C0-C3, G0-G1, D0-D7 should not exceed 100mA.
3.)The sum of all IOL, for ports G3-G5, B0-B7, E0-E7 should not exceed 100mA.
4.)The sum of all IOL, for ports F0-F7 should not exceed 100mA.
ATmega640/1280/2560:
1.)The sum of all IOL, for ports J0-J7, A0-A7, G2 should not exceed 200mA.
2.)The sum of all IOL, for ports C0-C7, G0-G1, D0-D7, L0-L7 should not exceed 200mA.
3.)The sum of all IOL, for ports G3-G4, B0-B7, H0-B7 should not exceed 200mA.
4.)The sum of all IOL, for ports E0-E7, G5 should not exceed 100mA.
5.)The sum of all IOL, for ports F0-F7, K0-K7 should not exceed 100mA.
If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test condition.
4. Although each I/O port can source more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steadystate conditions (non-transient), the following must be observed:
ATmega1281/2561:
1)The sum of all IOH, for ports A0-A7, G2, C4-C7 should not exceed 100mA.
2)The sum of all IOH, for ports C0-C3, G0-G1, D0-D7 should not exceed 100mA.
3)The sum of all IOH, for ports G3-G5, B0-B7, E0-E7 should not exceed 100mA.
4)The sum of all IOH, for ports F0-F7 should not exceed 100mA.
ATmega640/1280/2560:
1)The sum of all IOH, for ports J0-J7, G2, A0-A7 should not exceed 200mA.
2)The sum of all IOH, for ports C0-C7, G0-G1, D0-D7, L0-L7 should not exceed 200mA.
3)The sum of all IOH, for ports G3-G4, B0-B7, H0-H7 should not exceed 200mA.
4)The sum of all IOH, for ports E0-E7, G5 should not exceed 100mA.
5)The sum of all IOH, for ports F0-F7, K0-K7 should not exceed 100mA.
If IOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current greater than the listed test condition.
Вот, я бы на это ориентировался.
Но 20mA на каждый светодиод - всё равно многовато выйдет, по-моему.
ты не знаешь просто как микросхема работает. ты ей говоришь что должно гореть а она сама динамически переключает светодиоды. и такого не будет о чем ты писал
Я не знал. Но по крайней мере если матрицу подключить напрямую к выводам ардуино через усилительные ключи, то так будет. А с какой частотой будут обновляться состояния светодиодов? Мне нужно, чтобы було хотя бы 100Hz для того, чтобы не было мерцаний (не ШИМ, а просто изменение состояний в зависимости от музыки, ведь это будет цму). Я так понял, что микросхема будет с очень высокой скоростью зажигать светодиоды по одному и выключать, а потом включать следующий светодиод и выключать и т.д. Мне нужно, чтобы была возможность зажечь сразу несколько светодиодов, причём в разных местах (на матрице) и без коллизий. Для большего понимания посмотрите видео по ссылке, которую я дал в первом посте ( http://www.youtube.com/watch?v=dIYQ0l-WAZI ). В этой цветомузыке вся логика работает на 3-х микросхемах LM3915, у меня в наличии имеется такая же самопальная цму, только моно, а не стерео, и я хочу перенести всю эту логику на мк. Обьясните пожалуйста по подробнее, как MAX7219 сможет сделать всё это и без коллизий на матрице?
Вообще-то фигню написал, да? И ведь не поправит никто. :)
Ток через ноги VCC и GND, мягко говоря, мало связан с током через выходные ноги.
Надо смотреть, скорее, на напряжение, остающееся на полностью открытых выходных ключах (там указано 0.8 - 0.9 В, при токе 20 мА), и по нему определить суммарную рассеиваемую мощность.
Хотя, на самам деле, там в документации по этому поводу есть более конкретные рекомендации:
3. Хотя каждый порт ввода/вывода может опуститься более чем в тестовых условиях (20 мА при VCC = 5 В, 10 мА при VCC = 3V) при установившихся условиях (непереходные), должны быть соблюдены следующие условия:
ATmega1281/2561:
1.)Сумма всех ИОЛ, для портов A0-A7, G2, C4-C7 не должен превышать 100ма.
2.)Сумма всех ИОЛ, для портов, C0-C3, G0-G1, D0-D7 не должен превышать 100ма.
3.)Сумма всех ИОЛ, для портов G3-G5, B0-B7, E0-E7 не должен превышать 100ма.
4.)Сумма всех ИОЛ, для портов F0-F7 не должен превышать 100ма.
ATmega640/1280/2560:
1.)Сумма всех ИОЛ, для портов J0-J7, A0-A7, G2, не должен превышать 200 ма.
2.)Сумма всех ИОЛ, для портов C0-C7, G0-G1, D0-D7, L0-L7 не должен превышать 200 ма.
3.)Сумма всех ИОЛ, для портов G3-G4, B0-B7, H0-B7 не должен превышать 200 ма.
4.)Сумма всех ИОЛ, для портов E0-E7, G5 не должна превышать 100 ма.
5.)Сумма всех ИОЛ, для портов F0-F7, K0-K7 не должен превышать 100ма.
Если ИОЛ превышает условие теста, VOL могут превышать соответствующие спецификации. Булавки не гарантируется, раковина ток больше, чем перечисленные условия теста.
4. Хотя каждый порт ввода/вывода может источник более в условиях испытания (20 мА при VCC = 5 В, 10 мА при VCC = 3V) под steadystate условия (непереходные), должны быть соблюдены следующие условия:
ATmega1281/2561:
1)сумма всех штаб ледокольных операций, для портов A0-A7, G2, C4-C7 не должен превышать 100ма.
2)сумма всех штаб ледокольных операций, для портов, C0-C3, G0-G1, D0-D7 не должен превышать 100ма.
3)сумма всех штаб ледокольных операций, для портов G3-G5, B0-B7, E0-E7 не должен превышать 100ма.
4)сумма всех штаб ледокольных операций, для портов F0-F7 не должен превышать 100ма.
ATmega640/1280/2560:
1)сумма всех штаб ледокольных операций, для портов J0-J7, G2, A0-A7 не должен превышать 200 ма.
2)сумма всех штаб ледокольных операций, для портов C0-C7, G0-G1, D0-D7, L0-L7 не должен превышать 200 ма.
3)сумма всех штаб ледокольных операций, для портов G3-G4, B0-B7, H0-H7 не должен превышать 200 ма.
4)сумма всех штаб ледокольных операций, для портов E0-E7, G5 не должна превышать 100 ма.
5)сумма всех штаб ледокольных операций, для портов F0-F7, K0-K7 не должен превышать 100ма.
Если штаб ледокольных операций превышает условие теста, VOH может превышать соответствующие спецификации. Булавки не гарантируется источник тока больше, чем перечисленные условия теста.
Вот, я бы на это ориентировался.
Но 20 мА на каждый светодиод - все равно многовато выйдет, по-моему.
Мне тоже с самого начала показалось, что 2.4 ампера для меги - это много. На самом чипе имеется 2 вывода питания Vcc, и сами ножки у чипа довольно тонкие, и, мне кажется, что два проводничка такой толщины (сечения) просто физически, сами по себе, наверное не смогут пропустить такой ток.
В этой вырезке из даташита скорее всего не имелось совместное подключение ко всем выводам, ктому же если сложить все токи всё равно не будет 2.4 А, а всего 800 мА. Меня смущают даже эти большие токи, что указаны в вырезке, если посмотреть на сам кристалл чипа, то можно увидеть, что он очень мал, хотя размер не имеет значения, мосфеты при своих размерах и не такое тянут.
http://www.youtube.com/watch?v=u4JyAuzuVqI
http://www.youtube.com/watch?v=NMJ3e54pM0k
http://www.youtube.com/watch?v=JeSeKQFSBEQ
http://www.youtube.com/watch?v=DPgXLZqG4yk
если увидишь хоть одно мерцание то я дурак, а ты был прав
что я дурак? да хоть бы и так. но если так то нужно найти факт тому
... сумма всех штаб ледокольных операций ...
Оужос... Неужели на самом деле так? :)
-------
Не, честное слово, пойду сейчас, сожгу пару ардуин, с целью определения реальной нагрузочной способности. А то мутно всё как-то написано, и неоднозначно.
http://www.youtube.com/watch?v=u4JyAuzuVqI
http://www.youtube.com/watch?v=NMJ3e54pM0k
http://www.youtube.com/watch?v=JeSeKQFSBEQ
http://www.youtube.com/watch?v=DPgXLZqG4yk
если увидишь хоть одно мерцание то я дурак, а ты был прав
Нет, я и не спорил с вами, что микросхема такое умеет, но мне просто интересно, как в ней работает система подавления коллизий. Да, микросхема определённо хорошая, инжинеры могут сделать что-то нормальное, когда захотят, но как в микросхема избавляется от коллизий на матрице? Эта информация должна быть в даташите (даташит этой микросхемы хоть более менее систематизирован), но что-то её там не видно. Может не там искал? Да, и ещё: вы знаете с какой максимальной частотой можно обновлять информацию на матрице? Хотябы 100 Hz будет, для того чтобы не было видно мерцаний (не тех мерцаний, что не создаёт микросхема, а тех, что будет создавать ардуино, ведь светодиоды будут мигать в такт музыке (по FFT) (я не знаю, как по-другому объяснить, но я думаю понятно))? В даташите написано, что максимальная частота микросхемы это 10 мегагерц , но частота чего (простите, это гугл)?
Лень сейчас лезть в даташиты, но думаю что не ошибусь.
Коллизий там не бывает потому, что ряды матрицы включаются строго поочерёдно, а не все вместе. Точно так же, как например цифры семисегментного индикатора при динамическом выводе - нет ведь там никаких коллизий?
Это догадки, конечно - если наврал, прошу сильно не пинать.
да забей. не будет коллизий
насчет частоты смотри 1 и 2 страницы
http://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf
10мгц это скорость в spi для clk
дисплей обновляется 800гц
Лень сейчас лезть в даташиты, но думаю что не ошибусь.
Коллизий там не бывает потому, что ряды матрицы включаются строго поочерёдно, а не все вместе. Точно так же, как например цифры семисегментного индикатора при динамическом выводе - нет ведь там никаких коллизий?
Это догадки, конечно - если наврал, прошу сильно не пинать.
Ну, я впринципе так и думал. Но, если 8 рядов загораются поочерёдно, то значит каждый ряд горит 1/8 всего времени ,и, значит каждый светодиод горит 1/8 всего времени ,и, значит на каждом светодиоде появляется ШИМ со скважностью 12.5% (1/8*100). Значит все светодиоды будут гореть не в полную силу, чего не хотелось бы. Или не так?
может стоит уже попробовать? а то так долго там можно размышлять
Ну ещё как миним месяц пройдёт, пока всё из китая придёт, так что время подумать ещё есть.
Насколько я помню, считается что максимальной яркости светодиода удаётся добиться именно при питании импульсами, со скважностью 3/16. Конечно, 1/8 это не совсем 3/16, но что-то достаточно близкое. Так что, предполагаю что видимая яркость будет примерно такой же, как на постоянном токе.
А в общем, как обычно - пробовать надо.
А откуда такая информация? Не подскажите, где это найти? График зависимости яркости светодиода от тока (и следовательно сважности ШИМа ) довольно нелинеен плюс человеческие органы сами по себе нелинейны, всё сложно... Более подробно на эту тему написано тут ( http://www.microchip.su/showthread.php?t=6712 ). На самом деле получается, что светодиод приобретает (а точнее не теряет) яркости только в наших глазах, из-за того, что они инерционны. Муха, например, будет видеть отдельные мерцания, уж такие у неё глаза. Так что когда мы изменяем скважность ШИМа и ничего не наблюдая при этом, на самом деле яркость то и не меняется, зато потребление тока падает. А происходит это всё с нашими глазами потомучто в момент ШИМомерцания глаз как бы ослепляется и мы продолжаем видеть светящююся "мушку", когда она(мушка-светодиод) выключена, то есть яркость типо та же, а вот потребление нет. Можно найти такую частоту и скважность ШИМа чтобы зрительно яркость ШИМмированного с определённой скважностью светодиода ничем не отличалась от этого же светодиода со ШИМмированнойскважностью 100%, но чтобы зрительно яркость светодиода при скважности ШИМ 3/16 зрительно ничем не отличилась от яркости при скважности 100%, то с какой частотой долен быть этот ШИМ? Мне кажется, что 3/16 это слишком низкая цифра, хотя тут кое-что зависит и от частоты.
Вот задумался, и да, точно не помню. Может и правда наврал? :)
Во всяком случае, что-то такое точно было про инфракрасные то ли пульты, то ли передатчики. Там инерционность человеческого зрения явно ни при чём, а речь идёт именно о реальной излучаемой мощности.
Может, поищу при случае - если что-то попадётся, отпишусь, обещаю.
Но в любом случае, в импульсе светодиод может выдерживать больший ток, чем при постоянном питании. А значит, средняя мощность может быть всё же больше, чем 1/8 от обычной.
И вообще, сколько можно этой теории? Давно уже пора взять да попробовать - с током поэкспериментировать, со скважностью, и сравнить яркость, на глаз. Ну и спалить конечно пяток диодов - куда ж без этого... :)
Как только из Китая всё приедет, сразу же попробую.