В търсене на читав, нискобюджетен контролер с повечко GPIO-та и достатъчно ресурси да се пише на език от по-високо ниво, съм се спрял на ESP32 в комбинация с MicroPython. В търсене на LAN решение за въпросния, минах през WIZNET 5K, за съжaление, micropython не го поддържа като вграден модул, а тази които намерих, не можаха да го запалят, затова преминах към следващия LAN, кото имам и се поддържа от тях – LAN8720

Комбиниран с ето този вариант на ESP32, който намирам за най-читав и удобен за работа като платка:

Преди да преминем към начина на свързване, LAN8720 модула се нуждае от лека модификация, трябва да се запои една жица от NC пин-а който не се ползва по принцип, до единия крак на генератора:

Внимавайте при спойката на генератора да не се окъси с корпуса.
След като сте направили модификацията, започва свързването, необходими са 2 резистора по 10 килоома и кабелчета, аз съм си модифицирал моите, като съм им запоил резисторите с накрайници.
| ESP32 | SIGNAL | LAN8720 |
| GPIO 17 | PHY_POWER | NC и чрез 10К резистора към GND |
| GPIO 22 | EMAC_TXD1 | TX1 |
| GPIO 19 | EMAC_TXD0 | TXD |
| GPIO 21 | EMAC_TX_EN | TX_EN |
| GPIO 26 | EMAC_RXD1 | RX1 |
| GPIO 25 | EMAC_RXD0 | RX0 |
| GPIO 27 | EMAC_RX_DV | CRS |
| GPIO 00 | EMAC_TX_CLK | nINT/REFCLK и през 10к резистора към VCC или 3.3V |
| GPIO 16 | SMI_MDC | MDC |
| GPIO 27 | SMI_MDIO | MDIO |
| 3.3V | VCC | |
| GND | GND |
Малко теория защо са необходими резисторите и модификацията. Когато GPIO00 е LOW при стартиране ESP32 минава в режим на флашване, затова му слагаме pull-up резистор. Жицата която е запоена за генератора, е на негов пин който е за ENABLE, ако той е LOW генератора не стартира, затова му слагаме pull-down резистор. В това състояние като се захрани системата, ESP 32 си стартира нормално, след това като подаде HIGH сигнал на GPIO 17, генератора стартира и запалваме LAN 8720. Ето и кода който се изпълнява за целта:
>>> import network
>>> from machine import Pin
>>> lanenable = Pin(17, Pin.OUT)
>>> lanenable.value(1)
>>> lan = network.LAN(mdc=Pin(16), mdio=Pin(18), power=None, id=None, phy_addr=1, phy_type=network.PHY_LAN8720)
>>> lan.active(True)
>>> lan.ifconfig()
('192.168.1.142', '255.255.255.0', '192.168.1.22', '192.168.1.22')
>>>
По подразбиране ланката си взима IP адрес по DHCP. От линк-а по-долу може да изтеглите версията на MicroPython която съм ползвал, както и някой полезни скриптове и пособия като upycraft, чрез него може да си сложите MircroPython на ESP32-то, като за целта трябва да изберете адрес за flash-ване 0x1000.
Моето заключение след направените тестове е, че LAN8720 работи стабилно, но недостатъка е заемането на прекалено много пинове в сравнение с WIZNET 5K, но няма как. Оттук нататък мога да пожелая успех.
how to order androxal price in canada
cheapest buy androxal generic is it safe
cheapest buy enclomiphene generic online usa
online order enclomiphene buy adelaide
rifaximin online perscription
discount rifaximin no prescription usa
how to order xifaxan cheap online in the uk
ordering xifaxan canadian discount pharmacy
buy staxyn usa pharmacy
discount staxyn purchase uk
ordering avodart usa seller
buy avodart cheap prescription
how to buy flexeril cyclobenzaprine buy virginia
cheapest buy flexeril cyclobenzaprine cheap online no prescription
gabapentin mail order singapore
how to buy gabapentin generic drug
kanadský levný kamagra
kamagra online konzultace
kamagra commande expédition le lendemain
kamagra sans ordonnance
buy cheap fildena generic fildenas
buy cheap fildena france where to buy
buy itraconazole purchase no prescription
cheap itraconazole buy virginia