Обновить

Файловая система на микросхеме SPI NOR Flash w25q16j

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели5.4K
Всего голосов 5: ↑4 и ↓1+5
Комментарии8

Комментарии 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 уже на борту.

Не, 32F4xx вообще не вариант, слишком слабые. И физику на борту не надо, потому что нужны две отдельные физики одна на W5500 - 8 быстрых сокетов и на LAN8720 - чем больше сокетов тем лучше.

Непонятно какую среду разработки использовали

Никакую. Писал Си код и Make файлы в блокноте. Собирал компилятором GCC. Пошаговую отладку делал в Segger J-link Ozone.

и какой агент кодил.

Никакой. Лишь изредка просил Chat GPT сишные битовые поля написать по скриншоту даташита.

В Embedded программировании не следует вызывать функцию printf из LibC.

А в чем, собственно, проблема вызова printf из прошивки?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации