Eugene
Всем привет, пытаюсь заставить работать такой расширитель io
Работает на pcf8575.
Не могу понять, либо он не рабочий, либо я.
Шлю 1 на выход, получаю примерно 0.08В.
Шлю 0 - получаю примерно 0
Eugene
Адрес определил сканером i2c, всё верно.
Denis
в Hi-Z состоянии наверно выход
Denisio
падажи, ето же вроде проходной екстендер
Eugene
Проходной? Это как?
Denisio
ну он вроде транслирует состояние входов P0-P7 на P10-P17 не?
Eugene
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
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
и там кстати разные адреса на чтение и запись
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
это было бы очень смешно
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? или это слишком сложно и так не делают?
Dmitriy
слушьте, а вот теперь такой вопрос: ну пилю некий проэкт, работаю с одним файлом, остальное - не меняется. какие-нибудь шрифты, где один .h файл на 37 кб.
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/EInk_Weather_Station/adafruit_epd_weather/Fonts/meteocons48pt7b.h - я ведь не ошибся? а таких файлов может быть несколько. и каждый раз их надо прошивать, а это тратится время и ресурсы флеша (кстати, насколько он там большой, в смысле ресурс?)
ну так вот, ведь такие редко обновляемые файлы можно назвать "ресурсами проэкта" и складывать их в отдельной области - положить и не трогать, а обновлять только main.c? или это слишком сложно и так не делают?
через ардуину это не реализовать. через idf - сложно. Ресурс - 100к, тебе и половину не истратить.
Serjio
Eugene
да, я расслабился, т.к. давно брак не получал.
Для верности ещё раз спрошу, если отправляю на ногу 7 значение 1, то между землёй и ногой 7 должно быть ~3.3в, верно?
Serjio
Dmitriy
Eugene
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-адресов ?
Благодарю
Serjio
так я про то и говорю, что чтобы в процессе отладки не гонять понапрасну тонны кода, было бы удобнее запихнуть их один раз в контроллер, и обновлять только основной код.
просто тут в порядке эксперимента собирал какое-то простейшее - оно реально очень быстро залилось
Evgen
Зараза.. почему sizeof(time_t) 4 в esp32 и 8 в esp8266?
Valeriy
посмотрите как задефайнен time_t там и там
Evgen
в esp32 #define _TIME_T_ long /* time() */