
Комментарии 8
Непонятно где брали плату и как она там называется. Непонятно какую среду разработки использовали и какой агент кодил. Все равно ж никто не поверит, что кодили руками, смысл скрывать?
Непонятно где брали плату и как она там называется.
PCB покупал на Aliexpress.
Сейчас ссылка битая уже. Находил по названию микроконтроллера: STM32F407ZG. На борде написано JL-32F4XX . Внизу шелкографией прописано JL-32_F4XX

PCB покупал на Aliexpress.Сейчас ссылка битая уже. Находил по названию микроконтроллера: STM32F407ZG. На борде написано JL-32F4XX . Внизу шелкографией прописано JL-32_F4XX
На Озоне около месяца назад за чуть больше 1000р по скидке взял WeAct STM32H750VB плату. На ней две 25Q64 flash по 8 MByte, одна подключена как SPI, другая как QSPI. Вроде как можно код с нее запускать, но пока не пробовал. Особенно мне не надо все это, не смог пройти мимо цены и не купить.
Там еще microSD слот есть, проверил Arduino-вайб-кодингом, вроде работает на FAT32. Дисплей проверил, тут пост был. Кубом 2.2 тоже проверил, но пока только мигать светодиодом.
Сейчас спаял кабель RMII и через него подключил LAN8720. Хотелось бы прикинуть сколько активных открытых медленных TCP сокетов STM32H750VB может поддерживать.
Токены на бесплатном Джемини в Антигравити закончились на этом (тут же в Антигравити еще есть Клод и ЖПТ):
Now that the LAN8720 PHY layer is proven 100% operational, we can move up the OSI model to Layer 2 (Ethernet MAC & DMA) and Layer 3/4 (LwIP TCP/IP Stack).
Understanding the STM32H7 Architecture Requirements
The STM32H7 series has high-performance features that require specific hardware configuration for Ethernet DMA:
Memory Protection Unit (MPU) & Non-Cacheable RAM:
The STM32H7 CPU has L1 Data Cache enabled by default.
The Ethernet DMA engine cannot snoop the CPU cache directly. If Ethernet descriptors and packet buffers are placed in normal cached RAM, packet data will be corrupted or lost.
Solution: We configure the MPU so that D2 SRAM3 (0x30040000) is marked as Non-Cacheable, Bufferable for the Ethernet DMA descriptors and packet ring buffers.
RMII Pin Muxing & Clock Gating:
Clocks for ETH1MAC, ETH1TX, and ETH1RX must be enabled.
RMII mode must be selected in SYSCFG->PMCR.
GPIO pins PA1, PA2, PA7, PB11, PB12, PB13, PC1, PC4, PC5 must be switched to their Alternate Function (GPIO_AF11_ETH).
Software Architecture Options:
+-----------------------------------+
| Application (Ping / Web Server) |
+-----------------------------------+
|
+-----------------------------------+
| lwIP TCP/IP Stack |
| (DHCP, ARP, ICMP, UDP, TCP) |
+-----------------------------------+
|
+-----------------------------------+
| STM32H7 Hardware MAC + DMA Driver |
| (Descriptors in D2 SRAM3, MPU) |
+-----------------------------------+
| RMII
+-----------------------------------+
| LAN8720 PHY |
+-----------------------------------+
Recommended 2-Step Roadmap
Step 1: Raw Ethernet Frame RX / TX Test (Layer 2)
Before bringing in the full LwIP protocol stack, we verify the STM32H7 internal MAC and RMII DMA:
Initialize the STM32H7 Synopsys Ethernet MAC and DMA descriptors in D2 SRAM.
Transmit a broadcast ARP packet into your local network (you will see the Green LED on the RJ45 jack flicker!).
Receive incoming frames from your router (e.g. router broadcast/multicast packets) and dump their source MAC, destination MAC, and EtherType to the Serial Monitor.
Why this is recommended first: Confirms the hardware DMA, clocks, MPU, and RMII data lines (TXD0/1, TX_EN, RXD0/1, CRS_DV) with zero external library overhead.
Step 2: Full LwIP TCP/IP Integration (Layer 3 & 4)
Integrate LwIP (Lightweight IP) on top of the working MAC driver.
Obtain a local IP address from your home router automatically via DHCP.
Respond to ping <STM32_IP> from your PC.
Optional: Serve a simple HTTP web page or open a UDP/TCP echo socket.
Shall we start with Step 1 (Raw Frame TX/RX & Green LED test) to verify the DMA and data lines first, or jump directly into Step 2 (LwIP with DHCP and Ping)?
Сейчас спаял кабель RMII и через него подключил LAN8720. Хотелось бы прикинуть сколько активных открытых медленных TCP сокетов STM32H750VB может поддерживать.
Если хотите с Ethernet поиграть покупайте плату JZ-F407VET6
https://habr.com/ru/articles/988494/?ysclid=mw40cj1mrq347101185
Там вся физика fast ethernet уже на борту.

Непонятно какую среду разработки использовали
Никакую. Писал Си код и Make файлы в блокноте. Собирал компилятором GCC. Пошаговую отладку делал в Segger J-link Ozone.
и какой агент кодил.
Никакой. Лишь изредка просил Chat GPT сишные битовые поля написать по скриншоту даташита.
В Embedded программировании не следует вызывать функцию printf из LibC.
А в чем, собственно, проблема вызова printf из прошивки?
Файловая система на микросхеме SPI NOR Flash w25q16j