Eugene
Всем привет, пытаюсь заставить работать такой расширитель io Работает на pcf8575. Не могу понять, либо он не рабочий, либо я. Шлю 1 на выход, получаю примерно 0.08В. Шлю 0 - получаю примерно 0
Eugene
Адрес определил сканером i2c, всё верно.
Denis
в Hi-Z состоянии наверно выход
Denisio
падажи, ето же вроде проходной екстендер
Eugene
Проходной? Это как?
Denisio
ну он вроде транслирует состояние входов P0-P7 на P10-P17 не?
Denisio
а нет, вроде обычный, судя по командам i2c
Denisio
есть предположение что у тебя неверно отправляются два байта с состоянием выходов
Eugene
две библиотеки пробовал, https://github.com/microseti/pcf857x и https://github.com/WereCatf/PCF8574_ESP Остановился на первой
Eugene
Eugene
Eugene
Eugene
в этом модуле встроенный регулятор, было около 2.2В, потом я запаял перемычку и стало 3.3
Eugene
Eugene
По даташиту на выходе должно быть от 0,7*vcc до vcc, может тут нужна какая-то дополнительная обвязка? Я просто снимал напряжение с ног. Думал, может они не пропаяны, пробовал снимать с самого pcf8575, там тоже самое
Denisio
всмысле с ног, ты Vcc с екстендера куда подключил ?
Denisio
там есть +5 или +3.3 ?
Eugene
на pcf8575 приходит также 3.3В
Denisio
SDA/SCL не перепутал?
Eugene
SDA/SCL не перепутал?
Не, он работает, я думал может адрес другой, но определил его через сканер - 0x20
Denisio
это очень странно, т.к это недопустимый адрес для 8575
Denisio
Denisio
вот возможные адреса
Тецкатлипок
Ем
Тецкатлипок
Ша даже найду даташилд под рукой и скуну фотки Потому как это даже половины не покрывает
Denisio
https://www.ti.com/lit/ds/symlink/pcf8575.pdf
Тецкатлипок
Или не найду
Denisio
всмысле? Всё он покрывает, 3 ноги адреса, 8 комбинаций
Тецкатлипок
Так по памяти там есть ТРИ типа адресов Только на чтение, только на запись и на смешанный Далее там сам чип имеет две ревизии из за чего адресов уже 8*3*2
Denisio
и там кстати разные адреса на чтение и запись
Eugene
Как такое может быть, в описании на али написано 0x20, но это ладно, сканер показывает 0x20, и в библиотеках адрес по умолчанию я видел 0x20
Тецкатлипок
Я с этими чипами работаю
Denisio
ладна, объясни мне по скриншоту, как может быть адрес 20 если он по датащиту 40...4F
Denisio
ил ето датащит не для той ревизии? Написано SCPS121H –JANUARY 2005–REVISED FEBRUARY 2020
Тецкатлипок
Держи
Тецкатлипок
Нашел по быстрому
Denisio
ето 8574
Denisio
а у него 8575
Denisio
они отличаются
Denisio
и 8574 - 8 портовый, а 8575 - 16портовый, странно руководствоваться одним датащитом на разные микросхемы. И датащит я привёл именно от 8575
Тецкатлипок
Ага
Тецкатлипок
Уже увидел
Тецкатлипок
Тогда странно чего у него на 0х20 работает
Тецкатлипок
Хотя странный какой то чип
Тецкатлипок
Читаю даташилд и что то китайской дешевой копией на что то запахло
Тецкатлипок
Как будто откуда то саму идею и варинты сперли но до конца реализовать не смогли
Eugene
Denisio
думаешь там стоит перепиленый 8574 с половиной неработающих ног? :)
Denisio
это было бы очень смешно
Vladislav
ладна, объясни мне по скриншоту, как может быть адрес 20 если он по датащиту 40...4F
Потому что адрес i2c устройств 7 бит + 1 бит флаг чтение/запись. Но кто-то включает этот бит в адрес, кто-то нет.
Denisio
так он даже с этим не попадает в диапазон
Vladislav
0х20 << 1 = 0х40
Denisio
а, блядь 40h же
Denisio
там разве не старший бит выставляется?
Eugene
Погодите, адрес мне кажется все-таки верный, т.к. я на ногах замечаю разницу, при 1 это 0.08В, при 0 это примерно 0
Denisio
Примерно 0
Denisio
;)
Denisio
ну, перегрели при пайке :)
Eugene
кабы знал, то 2 заказал бы
Serjio
слушьте, а вот теперь такой вопрос: ну пилю некий проэкт, работаю с одним файлом, остальное - не меняется. какие-нибудь шрифты, где один .h файл на 37 кб. https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/EInk_Weather_Station/adafruit_epd_weather/Fonts/meteocons48pt7b.h - я ведь не ошибся? а таких файлов может быть несколько. и каждый раз их надо прошивать, а это тратится время и ресурсы флеша (кстати, насколько он там большой, в смысле ресурс?) ну так вот, ведь такие редко обновляемые файлы можно назвать "ресурсами проэкта" и складывать их в отдельной области - положить и не трогать, а обновлять только main.c? или это слишком сложно и так не делают?
Serjio
Погодите, адрес мне кажется все-таки верный, т.к. я на ногах замечаю разницу, при 1 это 0.08В, при 0 это примерно 0
а смотрел только один пин? пройтись бы по всем, когда на предполагаемом 0.08
Serjio
через ардуину это не реализовать. через idf - сложно. Ресурс - 100к, тебе и половину не истратить.
idf. прям вот конкретно сложно? разделы там обычно для ota используют? или для чего их вообще выдумали?
Eugene
да, я расслабился, т.к. давно брак не получал. Для верности ещё раз спрошу, если отправляю на ногу 7 значение 1, то между землёй и ногой 7 должно быть ~3.3в, верно?
Dmitriy
idf. прям вот конкретно сложно? разделы там обычно для ota используют? или для чего их вообще выдумали?
idf это удобно и понятно. ардуино - непонятная херня. Можно настроить разделы и сделать файловую систему в верхнем месте.
Serjio
idf это удобно и понятно. ардуино - непонятная херня. Можно настроить разделы и сделать файловую систему в верхнем месте.
а где про это лучше почитать поподробнее? каокй-то бы тюториал с пояснениями.. верхнее место? файловую систему для самой ртос?
Serjio
да, я расслабился, т.к. давно брак не получал. Для верности ещё раз спрошу, если отправляю на ногу 7 значение 1, то между землёй и ногой 7 должно быть ~3.3в, верно?
там про питание - так и не понятно, у него на ногах питания чипа есть столько, сколько нужно для работы по даташиту?
Anonymous
Добрый день. Подскажите, пожалуйста. Пытаюсь завести DHCP сервер для WiFiAP на ESP8266 работаю через arduino ide, пытаюсь поднять DHCP сервер вот так: struct ip_info info; wifi_set_opmode(STATIONAP_MODE); //Set softAP + station mode wifi_softap_dhcps_stop(); IP4_ADDR(&info.ip, 10, 0, 0, 1); IP4_ADDR(&info.gw, 10, 0, 0, 1); IP4_ADDR(&info.netmask, 255, 255, 255, 0); wifi_set_ip_info(SOFTAP_IF, &info); struct dhcps_lease dhcp_lease; IP4_ADDR(&dhcp_lease.start_ip, 10, 0, 0, 100); IP4_ADDR(&dhcp_lease.end_ip, 10, 0, 0, 100); wifi_softap_set_dhcps_lease(&dhcp_lease); wifi_softap_dhcps_start(); на библиотеках для esp8266 до версии 3.X.X вылетает ошибка: undefined reference to `wifi_softap_set_dhcps_lease' может кто-то сталкивался? как назначить клиентам диапазон IP-адресов ? Благодарю
Andy
а где про это лучше почитать поподробнее? каокй-то бы тюториал с пояснениями.. верхнее место? файловую систему для самой ртос?
1. Шрифты для встроенных экранах на устройствах ну очень редко обновляемая вещь. Поэтому обычно не заморачиваются и используют всякие конверторы шрифтов в код. 2. Если все такие заморачиваются и делают подгружаемые шрифты, то тут уж кто-во что горазд. Но чаще это какое-то файловое хранилище (FATFS, SPIFFS и т.п.) на доступном устройстве.
Serjio
так я про то и говорю, что чтобы в процессе отладки не гонять понапрасну тонны кода, было бы удобнее запихнуть их один раз в контроллер, и обновлять только основной код. просто тут в порядке эксперимента собирал какое-то простейшее - оно реально очень быстро залилось
Evgen
Зараза.. почему sizeof(time_t) 4 в esp32 и 8 в esp8266?
Valeriy
посмотрите как задефайнен time_t там и там
Evgen
в esp32 #define _TIME_T_ long /* time() */