Светодиодный индикатор на базе ТМ1637
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
Да, для меня и NOP() = задержка (одного такта), поэтому так и написал. Ничего не изменится
, понятно. Да и сам дисплей не из самых быстрых устройств.
Последний раз редактировалось veso74 Вс янв 29, 2023 13:44:21, всего редактировалось 1 раз.
- Реклама
- VNS
- Говорящий с текстолитом
- Сообщения: 1627
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: Светодиодный индикатор на базе ТМ1637
При тактовой частоте 9,6 МГц, время на выполнение пустой команды NOP состовляет 104 нс (0,104 mks)… конечно с точки зрения программистов это считается задержкой, но с моей обывательской точки зрения это совершенно ничего… 
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
veso74, а не проще было взять чип с аппаратным I2C, чем городить ногодрыг убогий?
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
Не решаю вопросы однозначно по конкр. конструкция/проект. Это все о хобби, для себя и хочу уточнить/попробовать варианты.
Последний раз редактировалось veso74 Сб янв 28, 2023 17:34:18, всего редактировалось 1 раз.
- VNS
- Говорящий с текстолитом
- Сообщения: 1627
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: Светодиодный индикатор на базе ТМ1637
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4362487#p4362487"]чем городить ногодрыг убогий?[/uquote]
Для кого убогий, а для кого самое-то…
при том что Вы не учли главного, по шине TWI передаются пакеты начиная со старшего разряда, а у ТМ1637 передаётся первым начиная с младшего разряда… конечно можно извратится и передавать байт задом наперёд, но есть ли смысл в таком извращении? К тому же передача всего пакета для индикатора при тактовой частоте МК (tiny13 9,6MHz), по времени составляет около 117 мкс… выиграет ли в данном случае аппаратный TWI? Сомневаюсь… к тому же у программного алгоритма есть существенный приоритет, он не привязан к конкретным выводам МК, а значит гибче при реализации… к тому же позволяет использовать МК без TWI, что тоже предпочтительней в некоторых проектах. 
Для кого убогий, а для кого самое-то…
- Реклама
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
VNS, я всегда выступаю категорически против ногодрыга, если есть аппаратная периферия! А уж I2C есть практически у всех МК…
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
Eddy_Em, и шине I2c можно ли использовать на обычных устройствах, с подключенным и дисплеем на TM? (Или дисплей мигает и его надо выключить например)? Наоборот если есть другое устройство I2c, потребуется другая шина I2c. Хотелось бы, чтобы был какой-то способ использовать 2 пина. Допускаются любые методы, наиболее интересными являются для меня 8-пиновых МК - минималистичный метод. С остальными МК можно делать все что угодно.
- VNS
- Говорящий с текстолитом
- Сообщения: 1627
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: Светодиодный индикатор на базе ТМ1637
Eddy_Em, это только Ваше предпочтение и оно может иметь как сторонников так и противников… на вкус и цвет товарища нет…
я всегда склоняюсь в сторону простоты решения, а не некоего клеше… к тому же у меня достаточное количество проектов на ATtiny13A или на ATtiny24 у которых нет TWI, и что мне нужно было отказаться от реализации проектов на данных МК в пользу более дорогих и более избыточных МК в тех проектах? Ну это же глупо…
С моей точки зрения, всё должно быть обосновано и гармонично, а не тупо с учётом каких-то надуманных принципов и фобий… каждый выбирает свой путь решения и навязывать свои предпочтения другим по мне так не правильно.
С моей точки зрения, всё должно быть обосновано и гармонично, а не тупо с учётом каких-то надуманных принципов и фобий… каждый выбирает свой путь решения и навязывать свои предпочтения другим по мне так не правильно.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
Eddy_Em, спасибо за идею за управление и по I2C
.
И по I2C дисплей на ТМ1637 сработал (со снятыми конденсаторами 10 nF). Даже код занимает меньше место в памяти
.
Пробовал I2C на 100 kHz, на 400 kHz - ОК. С программным, аппаратным I2C все работает. Нравится
.
печатать цифру по адресу (0..3):
Нужно было реверс битов. (Для теста, потом будем оптимизировать).
Код из Reversing bits in a byte with AVR работает отлично.
---
P.S. TM1637 с частотой обновления дисплей дает импульсы по питанию. Слышу звук напр. 500 Hz в другом оборудовании, подключенном к питанию. Нужен серьезный фильтр. C-L-C, тысячи микроФарад, миллиГенри? ...
И по I2C дисплей на ТМ1637 сработал (со снятыми конденсаторами 10 nF). Даже код занимает меньше место в памяти
Пробовал I2C на 100 kHz, на 400 kHz - ОК. С программным, аппаратным I2C все работает. Нравится
печатать цифру по адресу (0..3):
Код: Выделить всё
void tm1637_display(uint8_t addr, uint8_t data) {
uint8_t seg_data = num[data];
i2c_start();
i2c_write(rev_data(0x44)); // fixed addr
i2c_stop();
i2c_start();
i2c_write(rev_data(addr | 0xC0));
i2c_write(rev_data(seg_data));
i2c_stop();
i2c_start();
i2c_write(rev_data(cmd_disp_ctrl));
i2c_stop();
}Код: Выделить всё
uint8_t rev_data(uint8_t b) {
b = (b & 0xF0) >> 4 | (b & 0x0F) << 4;
b = (b & 0xCC) >> 2 | (b & 0x33) << 2;
b = (b & 0xAA) >> 1 | (b & 0x55) << 1;
return b;
}---
P.S. TM1637 с частотой обновления дисплей дает импульсы по питанию. Слышу звук напр. 500 Hz в другом оборудовании, подключенном к питанию. Нужен серьезный фильтр. C-L-C, тысячи микроФарад, миллиГенри? ...
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: Светодиодный индикатор на базе ТМ1637
veso74, ну дык это характерно для любой чуткой цифрохрени где применена ДИ на LED или чтото похожее развязка по питанию обязателна не зряж в интегрированых чипах аналных АЦП и часоф -питание схем индикации всегда отделный пин!?
часто он даже питается ототделного стаьилизатора или в этой цепи стоит мощнный RC|LC филтр болшие емкостя там врядли нужны ести источника развязаны по питанию ка это напри 7107 7135 сделано
часто он даже питается ототделного стаьилизатора или в этой цепи стоит мощнный RC|LC филтр болшие емкостя там врядли нужны ести источника развязаны по питанию ка это напри 7107 7135 сделано
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Светодиодный индикатор на базе ТМ1637
по I2C можно подключить только один модуль на базе ТМ1637.
а мне нужно подключить 2 модуля для показа напряжения и показа тока в блоке питания. и тут уже I2C ни чем не поможет.
а мне нужно подключить 2 модуля для показа напряжения и показа тока в блоке питания. и тут уже I2C ни чем не поможет.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: Светодиодный индикатор на базе ТМ1637
Starichok51, ты видимо невнимателно читал ДШ там не чесный стандарт I2C с его фреймами и подержкой адреса и ожиданием мастером ответа от всех слейвоф там просто тупо TWI 2 проводный ИФ "похожий на I2C" для вашего случая надо применить чип ТМ1640/1641 или подобную многоразрядку часть разрядоф выводит волты другая часть-амперы и также оставляем 1/2 разряда на статус/режим и 1 разряд для одиночных диодоф (их включаем на тенже шины ка матрицу)
наприер в часах так можно 1времено выводить время Ч_М_С число день недели ГОД и к4учкудиодоф набудилники и управляемые по таймерам нагрузки -я ради прикола 1 такие часики на тм1641 куче 1р LED от касового апарата +одиночные светики(елка-режимоф) и DS1307(оттудаж) сваял чисто для демонстрации на базе ардохи микро 328мега все кстати тамработало само по себе от батарейки за счет RTC и ТМ1641 с CPU банално брала из RTC сохраненые там даные и пересылала в1641рулящу LED +там память управлени 8 будилниками/управляемыми выходами была -причем не стал ра3пиратся с опросом клавы через 1641 напаял 4кнопки прям к ардохе(благо ного полно) и
и да для экономи портоф 20 в годе выводил статиченски
можно было типа светом и плиткой по таймеру рулить... на деле если на релюхи мощные нагрузить НАиграфшись с макетом я его разобрал -ардуинка понадобилась... в изделии воплощать нестал часоф у меня хватает
НО ИДЕЮ ЧАСОФЩИКАМ ФОРУМА ДАРЮ боле того на том же стенде ПОигрался с мнгоразрядным цифровым LCD которым рулил чип от Нолтек НТ1621 но ттам я запутался слехка с матрицей сегметоф/разрядоф -оно там разведено вразброд а не по порядку ...
но если довести идею до ума и вместо 328 взять какойнить китаец с малымтоком можно штамповать хитрые часы на батарейке добавиф чип манометра термометра
наприер в часах так можно 1времено выводить время Ч_М_С число день недели ГОД и к4учкудиодоф набудилники и управляемые по таймерам нагрузки -я ради прикола 1 такие часики на тм1641 куче 1р LED от касового апарата +одиночные светики(елка-режимоф) и DS1307(оттудаж) сваял чисто для демонстрации на базе ардохи микро 328мега все кстати тамработало само по себе от батарейки за счет RTC и ТМ1641 с CPU банално брала из RTC сохраненые там даные и пересылала в1641рулящу LED +там память управлени 8 будилниками/управляемыми выходами была -причем не стал ра3пиратся с опросом клавы через 1641 напаял 4кнопки прям к ардохе(благо ного полно) и
и да для экономи портоф 20 в годе выводил статиченски
можно было типа светом и плиткой по таймеру рулить... на деле если на релюхи мощные нагрузить НАиграфшись с макетом я его разобрал -ардуинка понадобилась... в изделии воплощать нестал часоф у меня хватает
НО ИДЕЮ ЧАСОФЩИКАМ ФОРУМА ДАРЮ боле того на том же стенде ПОигрался с мнгоразрядным цифровым LCD которым рулил чип от Нолтек НТ1621 но ттам я запутался слехка с матрицей сегметоф/разрядоф -оно там разведено вразброд а не по порядку ...
но если довести идею до ума и вместо 328 взять какойнить китаец с малымтоком можно штамповать хитрые часы на батарейке добавиф чип манометра термометра
Последний раз редактировалось musor Вс янв 29, 2023 10:52:36, всего редактировалось 3 раза.
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Re: Светодиодный индикатор на базе ТМ1637
С I2C все здорово, но не на всех линейках. Так и не победил F0, где адрес записывается в специальный регистр.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
[uquote="musor",url="/forum/viewtopic.php?p=4362842#p4362842"]... ну дык это характерно для любой чуткой цифрохрени где применена ДИ на LED или чтото похожее развязка по питанию обязателна ...[/uquote]
musor, все верно. Но термометр на PIC и 3x 7seg LED подключены к одному блоку питания, часы в 1 метр, опять же с управлением MK -> 7 seg LED. Фильтр: конденсаторы 100 μF + 100 nF . Не мешают ни в аудио, ни в RF (в первом приближении). С помехами у меня проблемы только с LED-драйверам на TM1xxx и MAX72xx.
musor, все верно. Но термометр на PIC и 3x 7seg LED подключены к одному блоку питания, часы в 1 метр, опять же с управлением MK -> 7 seg LED. Фильтр: конденсаторы 100 μF + 100 nF . Не мешают ни в аудио, ни в RF (в первом приближении). С помехами у меня проблемы только с LED-драйверам на TM1xxx и MAX72xx.
- Starichok51
- Модератор
- Сообщения: 19053
- Зарегистрирован: Сб авг 14, 2010 15:05:51
- Откуда: г. Озерск, Челябинская обл.
Re: Светодиодный индикатор на базе ТМ1637
musor, я внимательно читал ДШ, и поэтому у меня прекрасно работает согласно даташиту.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: Светодиодный индикатор на базе ТМ1637
veso74, страно ... вазможно ваш плата разведена КРИВА
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
ACK есть у чипа? Мне кажется, что нет.
- VNS
- Говорящий с текстолитом
- Сообщения: 1627
- Зарегистрирован: Пт дек 10, 2021 12:48:46
- Откуда: Тюмень
Re: Светодиодный индикатор на базе ТМ1637
[uquote="veso74",url="/forum/viewtopic.php?p=4364080#p4364080"]ACK есть у чипа?[/uquote]
Есть.
Можете это проверить. Если байт принят, то чип прижимает шину DIO сразу же, вернее по спаду восьмого импульса CLK и отпускает шину DIO по спаду девятого импульса CLK. То есть, можно проверять АСК по спаду восьмого импульса CLK, предварительно отпустив её со стороны МК.
Я в своём алгоритме проверяю АСК... и когда с конденсаторами чипу не удавалось принять байт, то видно было, что алгоритм показывал неисправность сразу после передачи первого байта... на основании не полученного подтверждения (АСК).
Есть.
Можете это проверить. Если байт принят, то чип прижимает шину DIO сразу же, вернее по спаду восьмого импульса CLK и отпускает шину DIO по спаду девятого импульса CLK. То есть, можно проверять АСК по спаду восьмого импульса CLK, предварительно отпустив её со стороны МК.
Я в своём алгоритме проверяю АСК... и когда с конденсаторами чипу не удавалось принять байт, то видно было, что алгоритм показывал неисправность сразу после передачи первого байта... на основании не полученного подтверждения (АСК).
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
Да, ACK есть. На дисплей на TM1637 + тестовой PIC12F675 работает, виден и ACK на лог. анализаторе и PulseView.
Но на симуляция нет. (Может там что-то не настроено).
Но на симуляция нет. (Может там что-то не настроено).
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1912
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Светодиодный индикатор на базе ТМ1637
Да, даже в МК, где нет I2c (с программным I2c), управление TM1637 мне кажется более удобное. По возможности буду использовать этим методом для TM1637, за идею большое спасибо!


