к сожалению нет общей темы для вопросов по AVR. поэтому открыл тему. по сути наверное с пустяковым вопросом.
у меня AT90S2313, я так и не смог понять читая книги, какой ток допустим через один вывод микроконтроллера?
7 выводов под индикацию. какой ток можно пропустить через каждый вывод, так что не бояться спалить микросхему?
если 3 семисегментных знака работают в импульсном режиме какой ток нужно выбирать чтобы и светилось нормально и и не спалить ни микросхему ни индикаторы
"Нормально" - это как?
Вообще то 3 разряда дадут коэффициент мультипликации тока - 3.
То есть импульсный ток сегментов должен быть В ТРИ РАЗА больше среднего.
В даташитах на контроллер ВСЕГДА пишут максимально допустимый ток одного пина и максимально допустимый ток всех пинов вместе. Если принять ток пина 15 мА (максимально допустимый 20 мА), то ток всех пинов будет 105 мА (7*15). Проверьте по даташиту допустимость этого суммарного тока.
В таком раскладе СРЕДНИЙ ТОК сегментов составит 15/3=5 мА. Этот средний ток и определит яркость свечения.
Какая яркость будет при таком среднем токе зависит от самого светодиодного индикатора. Просто подайте такой ток (5мА) на один сегмент и оцените глазом.
Если такая яркость не устраивает, придется ставить сегментные ключи. Кроме того, нужно проверить допустимость выбранного импульсного тока для самого индикатора. Так же нужно обратить внимание на длительность импульса который допустим у сегментов индикатора для такого импульсного тока.
5 мА на 1 сегмент индикатора тускло выходит. я уже смотрел. 10 надо бы..
я тут задавался вопросом какой длительности должны быть импульсы тока для индикаторов, в смысле какой длительности подразумевают составители даташитов, но я не нашел какой частоты они приводят импульсный ток. пишут импульный ток -такой -то, и все.
в даташите на AT90S2313 вот что написано. максимальные значения
DC Current per I/O Pin ........... 40.0 mA
DC Current V CC and GND Pins .............. 200.0 mA
Да, через один можно 40. Но это МАКСИМУМ.
То есть реально стоит ограничить 30 мА. Однако у Вас 7 сегментов, то есть при зажигании восьмерки получится суммарный ток 210 мА, что уже превышает допустимый через пин GND контроллера. А через GND кроме этого текут и другие токи, например ток потребления самим контроллером...
То есть по любому потребуется ВНЕШНИЙ ключ на каждый сегмент.
duty cycle - это коэффициент заполнения. В данном случае, за каждый период 1000мкс в течение 100мкс допускается ток через светик 150мА. Соответственно 900мкс тока не должно быть.
OKF, у Вас без ключей транзисторных как понимаю работает? хватает яркости свечения? как индикатор называется?
еще вопрос у меня. спрошу здесь.
надо ли при прошивке мк предварительно каждый раз стирать старую прошивку? если да, то является ли стирание своего рода тоже записью и не уменьшает ли оно количество перезаписи контроллера в таком случае в 2 раза?
креазот писал(а):...надо ли при прошивке мк предварительно каждый раз стирать старую прошивку?
Обязательно нужно стирать, т.к. запись осуществляется в предварительно подготовленную к этой процедуре память. Практически, при стирании память устанавливается в состояние лог. 1 по всем битам. При записи в нужные места заносится лог. 0.
креазот писал(а):
надо ли при прошивке мк предварительно каждый раз стирать старую прошивку? если да, то является ли стирание своего рода тоже записью и не уменьшает ли оно количество перезаписи контроллера в таком случае в 2 раза?
Память программ перед новой прошивкой стирается. Но стирание не является записью. Это совершенно другой процесс.
В зависимости от типа флеша (NOR или NAND) под записью понимают запись нуля или единицы соответственно. Противоположное состояние записывать не нужно - оно возникает при стирании.
При использовании программаторов и оболочек к ним при программировании МК специально стирать память программ не требуется. Софт оболочки это делает автоматически.
Количество циклов записи определяется именно записью. Стирание тут не причем. Поэтому фактически изнашиваются не байты, а конкретные биты, в зависимости от количества записей в эти конкретные биты.
В МК с возможностью самопрограммирования (таких большинство), но без флеша данных (EEPROM) можно эмулировать этот флеш в памяти программ, используя часть разрядов слова команды (оно длиннее слова данных) как адрес эмулируемой EEPROM. При этом нужно помнить, что ресурс у программного флеша заметно ниже (NOR имеет высокую скорость выборки, но низкий ресурс, в отличии от NAND). Поэтому запись производят в скользящем режиме, каждый раз сдвигая массив на новое место. Можно отвести для этого скользящего массива в 10...100 раз больше места, чем требуется для EEPROM данных, и писать массив по кругу в этой области, тем самым во столько же раз увеличивая ресурс ячеек.
КРАМ писал(а):Количество циклов записи определяется именно записью. Стирание тут не причем. Поэтому фактически изнашиваются не байты, а конкретные биты, в зависимости от количества записей в эти конкретные биты.
Практика показывает, что крепко изношенную память программатор не может стереть. Видимо, поэтому число циклов запись/стирание в DS семейства AVR неразрывны.Спойлер
покумекал тут над сказанным, пришла мысль что можно попробывать сдвигать каждый раз область при записи во флеш программ, а потом вспомнил что первые адреса все равно зарезервированы под прерывания. и каждый раз при записи по этим адресам записываются одни и теже значения. получается не выходит увеличить количество циклов перезаписи.
креазот писал(а):OKF, у Вас без ключей транзисторных как понимаю работает? хватает яркости свечения? как индикатор называется?
Не только транзисторных, но и резисторных, если Вы не заметили. Индикаторы с буковками SR, как сейчас помню - super red по нашему. Яркости хватает, хотя её много не бывает.