Перейти к содержанию
    

Kerby

Участник
  • Постов

    10
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Кстати, да. Процессорное время уменьшается, остальное то же самое. 33 кОм с некоторым запасом для коротких проводов и одного потребителя для 100 кГц как раз по даташиту выходит. Cb - ёмкость шины. * это от ATmega328P.
  2. Upd: На 50000 бит/с с единственным приёмником работает стабильно, на 100000 уже не всегда. Провод 2 см. Увы, нет достаточно электричества для 4К7. Точно! Получается, если вручную бит менять/отправлять, 0x70 зайдёт отлично, а если через библиотеку Ардуиновскую, то сдвигать до 0x38 надо.
  3. Спасибо топикстартеру, помог! Купил пару месяцев назад у МЭЛТа такой же усовершенствованный МТ-10Т11-1 трёхвольтоввый без подсветки. Поделюсь нюансами. Контрастность при комнатной температуре отличная. I2C адрес в документации указан неверно, верный адрес оказался 56 десятичное, подобрал перебором в цикле и дихотомией этого цикла. Теоретически в другом образце может быть и другой. Подтягивающие резисторы использовал 100К при 50 кбит/с. Быстрее не пробовал, должно хватать и на 100 кбит/с. Расчет показывает, что при коротких проводах и единственном приёмнике запас по быстродействию большой. В стандарте резисторы на абсолютно все случаи жизни, работать-то оно с ними будет, только электричества может не хватить. Открытый коллектор I2C - идеально для согласования уровней при разных напряжениях питания. Порядок сегментов теперь другой - abfgecdh от старшего бита слева к младшему справа. Удобнее стандартного порядка при написании знакогенератора. Текст из примера с сайта производителя корректно не отобразился. Символы записываются в дисплей слева направо, если отправить меньше 10-ти, на незаписанном месте отображаются старые с прошлой записи, не сдвигаются и не стираются сами. Код для Ардуино для проверки индикатора, переписанный под Ардуино из примера с сайта производителя (закомменчены строки для поиска адреса): #include <Wire.h> const char Logo10[10] = { 0b00000000, 0b00000001, 0b00000010, 0b00000100, 0b00001000, 0b00010000, 0b00100000, 0b01000000, 0b10000000, 0b11111111 }; //abfgecdh получилось void setup() { Wire.begin(); Wire.setClock(100000); // для 8МГц (200000); // for(byte checkaddr=1; checkaddr<127; checkaddr++) // { // Wire.beginTransmission(checkaddr); Wire.beginTransmission(56); //Сформировать на I2C шине комбинацию START и передать SLAVE адрес устройства с битом операции записи Wire.write(0xCE); //11001110b - Kоманды настройки индикатора, в т.ч. экономичный режим LP выкл. Wire.write(0xE0); //11100000b - Адреса A2, A1, A0 = 000 Wire.write(0xF8); //11111000b - Банки памяти 0 на вход и на выход Wire.write(0xF0); //11110000b - не мигать //эти команды нужно передавать всякий раз, иначе вывод на дисплей не происходит несмотря на то, что в инструкции к PCF8576C написано, что достаточно оставить одну. Wire.write(0x00); //00000000b - Всё, команды выданы, дальше пойдут данные изображения, сначала самый левый for(byte i=0; i<10; i++) { //Цикл вывода байтов изображения Wire.write(Logo10[i]);//Вывод очередного байта в индикатор } Wire.endTransmission() ; //Завершить цикл передачи, сформировав на I2C шине комбинацию STOP, вроде бы она и запускает передачу всего вышенаписанного. // } } Код для Ардуино для вывода через знакогенератор: Чтобы не перегружать программу вывода на дисплей проверками, создал знаки для всей таблицы ASCII, кроме пяти последних. Какие-то из них кракозябры, какие-то похожи. Буквы W, M и X занимают по два знакоместа, писать их надо Ww, Mm и Xx соответственно, а лучше вообще не использовать, как и K. Вместо z знак тождества. Вместо + писать +- . Заглавные и строчные буквы отличаются, когда могут. Для красоты надписи может иметь смысл те или те. Всё лежит в памяти программ и не копируется без нужды в память данных. #include <Wire.h> #include <avr/pgmspace.h> char Logo10StringVar[11] = "HELLOWwORD"; const byte ASCIItab[91] PROGMEM = { 0b00000000, 0b01000001, 0b01100000, 0b11110000, 0b10110110, 0b01011000, 0b11111010, 0b01000000, 0b10101010, //( 0b11000110, //) 0b10010000, 0b01010100, 0b00000001, 0b00010000, 0b00000001, 0b01011000, 0b11101110, //0 0b01000100, 0b11011010, 0b11010110, 0b01110100, 0b10110110, 0b10111110, 0b11000100, 0b11111110, 0b11110110, //9 0b10110010, 0b11010010, 0b00011010, 0b00010010, 0b00010110, 0b11011000, 0b10011110, 0b11111100, //A 0b00111110, 0b10101010, 0b01011110, 0b10111010, 0b10111000, 0b10101110, 0b01111100, //H 0b01000100, 0b01000110, 0b10111100, 0b00101010, 0b11101000, 0b11101100, 0b11101110, 0b11111000, //P 0b11110100, 0b10101000, 0b10110110, 0b00111010, 0b01101110, 0b00001110, 0b00101110, 0b11000110, 0b01110110, 0b11011010, //Z 0b10101010, 0b00110100, 0b11000110, 0b11100000, 0b00000010, 0b00100000, 0b11111100, //a 0b00111110, 0b00011010, 0b01011110, 0b11111010, 0b10111000, 0b11110110, 0b00111100, //h 0b00101000, 0b01000110, 0b10111100, 0b00101010, 0b11100100, 0b00011100, 0b00011110, 0b11111000, //p 0b11110100, 0b00011000, 0b10110110, 0b00111010, 0b01101110, 0b00001110, 0b01001110, 0b10101010, //x 0b01110110, 0b10010010 }; //abfgecdh // 1 // 3 2 // 4 // 5 6 // 7 8 void setup() { Wire.begin(); Wire.setClock(100000); // для 8МГц (200000); Wire.beginTransmission(56); //Сформировать на I2C шине комбинацию START и передать SLAVE адрес устройства с битом операции записи Wire.write(0xCE); //11001110b - Kоманды настройки индикатора, в т.ч. экономичный режим LP выкл. Wire.write(0xE0); //11100000b - Адреса A2, A1, A0 = 000 Wire.write(0xF8); //11111000b - Банки памяти 0 на вход и на выход Wire.write(0xF0); //11110000b - не мигать //эти команды нужно передавать всякий раз, иначе вывод на дисплей не происходит несмотря на то, что в инструкции к PCF8576C написано, что достаточно оставить одну. Wire.write(0x00); //00000000b - Всё, команды выданы, дальше пойдут данные изображения, сначала самый левый for(byte i=0; i<10; i++) { //Цикл вывода байтов изображения Wire.write(pgm_read_byte(&ASCIItab[Logo10StringVar[i]-32]));//Вывод очередного знака в индикатор. 32 - это код первого (нулевого) отображаемого символа, пробела. } Wire.endTransmission() ; //Завершить цикл передачи, сформировав на I2C шине комбинацию STOP (вроде бы эта команда и отправляет всё) } Надеюсь, это кому-то поможет. Индикатор красивый, мне понравился.
  4. Беспроводной модуль для подключения хоббийных устройств к беспроводной сети. Интерфейсы UART и SPI Питание 3,3V, max 430mA Встроенная антенна и разъём для внешней антенны (переключается программно) Чувствительность @1Mbps -96dBm typ Пропускная способность до 2 Мбит/с через UART, через SPI ниже. Размер 20х28 мм Есть 8 шт. новых и 2 паяные исправные. Цена 690 р. Все отдам за 5500 р. с шестью платами для проверки их работы через UART. Связь 8 glб б77 55l5
  5. При совместной работе ADuM3160 и FT245BL в full speed mode стали пропадать пакеты в очень большом количестве (доходил примерно каждый 10-й и то не всегда). От экземпляра к экземпляру иногда всё работало нормально, потом начинало сбоить, иногда сбоило сразу, иногда не сбоило вовсе. Сигнальные шины USB соединялись между собой через резисторы 51 Ом (51 = 24 со стороны ADuM3160 + 27 со стооны FT245BL). В EVAL-CN0373 AD рекомендует соединять FT2232H с ADuM3160 напрямую, но внутри FT2232H в отличие от FT245BL резисторы, похоже, встроены. Сбой удалось устранить, соединив микросхемы через Т-образные ФНЧ. 24 Ома со стороны ADum3160, 27 Ом со стороны FT245BL и 39 пФ на "землю" с точки соединения резисторов. Эти значения в пределах стандарта USB1.1. Надеюсь, это кому-то поможет.
  6. Linksys разъём 5х2,5 110 шт. пока еще есть.
  7. DVE закончились, Количество Amigo - 108 шт.
  8. 1. Linksys разъём 5х2,5 110 шт. 2. Amigo разъём 4х1,6(1,5) 106 шт. 3. DVE разъём 4х1,6(1,5) написано 5 Вольт, реально 6 Вольт. 57 шт. Linksys в пузырчатой плёнке, остальные без упаковки. Состояние - новые. Предназначены для цифровых устройств. Отдам только все одного вида, по одному не продаю. Цена 29 р. DVE 19 р. P.S. Телефон +7 985 153 1155 МТС Москва, Пoчтa h о с h u _ w g а 11 b caбаka м а i l . r u - перенаберите вручную без пробелов Личные сообщения у меня не работают.
  9. Жвль, по результатам не отписался. Есть потаённый смысл! Он в том, что в Application Note в схеме для АТтини15 перепутаны выводы 2 и 3. В этом случае диф. усилитель АЦП не работает - он униполярный, т.е. +вход должен быть всегда выше -входа. Ещё из замеченного - не обнаружил в программе ограничителя времени струйного заряда - только окончание по достижении порогового тока. Соответственно, max_time_trickle из liion.inc в программе не используется. Всё это для программы на ассемблере для АТтини15. Драйвер полевика не в состоянии его быстро выключить, из-за чего полевик очень быстро перегревается. П.С. Есть всё же в программе ограничитель времени струйного заряда - он тот же, что и для быстрого заряда.
×
×
  • Создать...