Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2016:ethernetwol

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2016:ethernetwol [2016/12/27 13:46]
Lukáš Vykydal FreeRTOS assert
2016:ethernetwol [2017/01/14 13:45] (aktuální)
Lukáš Vykydal
Řádek 5: Řádek 5:
 ====== Úvod ====== ====== Úvod ======
  
-Cílem tohoto projektu je navrhnou vlastní ethernet modul pro STM32F4DISCOVERY desku. Tento ethernet modul musí být kompatibilní s oficiálním STM32F4-BB deskou. STM32F4 procesor ​bude prosloucht ​pro přeušení od tlačitka USER a po přijetí události odešle nastavený počet Magic paketů na broadcast dané počitačové síté ( nebo globální bradcast).+Cílem tohoto projektu je navrhnou vlastní ethernet modul pro STM32F4DISCOVERY desku. Tento ethernet modul musí být kompatibilní s oficiálním STM32F4-BB deskou. STM32F4 procesor pro stisk tlačitka USER a po přijetí události odešle nastavený počet Magic paketů na broadcast dané počitačové síté ( nebo globální bradcast).
  
 Pro konfiguraci bude FW obsahovat primitivní HTTP server s jedinou stránkou. Parametry budou předány metodou GET. Pro konfiguraci bude FW obsahovat primitivní HTTP server s jedinou stránkou. Parametry budou předány metodou GET.
- 
-====== DRAFT  ======= 
  
 ====== Hardware ===== ====== Hardware =====
  
  - Vývojový kit STM32F4DISCOVERY  - Vývojový kit STM32F4DISCOVERY
-  + Vlastní LAN 8720A ethernet shield:
- +
-Vlastní LAN 8720A ethernet shield:+
   * Schematic [[http://​www.urel.feec.vutbr.cz/​MPOA/​_media/​2016/​etherwol_stm32f4_ethernet.pdf ]]   * Schematic [[http://​www.urel.feec.vutbr.cz/​MPOA/​_media/​2016/​etherwol_stm32f4_ethernet.pdf ]]
   * DPS F.Cu [[http://​www.urel.feec.vutbr.cz/​MPOA/​_media/​2016/​etherwol_f.cu.pdf]]   * DPS F.Cu [[http://​www.urel.feec.vutbr.cz/​MPOA/​_media/​2016/​etherwol_f.cu.pdf]]
Řádek 28: Řádek 24:
   * Z druhé strany je ocínován Thermal pad a celá 2mm díra je postupně zalita cínem   * Z druhé strany je ocínován Thermal pad a celá 2mm díra je postupně zalita cínem
  
-(TBD foto)+Finální verze desky je {{ :​2016:​etherwol_gerber.7z |zde}}. Jde o vygenerované gerber data. Oproti předchozí verzi je ořezaná o nepotřebnou plochu.
  
 ======= Firmware ======== ======= Firmware ========
Řádek 42: Řádek 38:
   * vim   * vim
  
 +Jako API pro síťovou komunikaci byly zvoleny UNIX sockety. Práce se scokety se značně podobá práci se soubory a dokumentace je jednoduše dostupná. Není však možné ji použít bez kooperativního multitaskingu (volání jsou blokující).
  
 === Semihosting === === Semihosting ===
Řádek 64: Řádek 61:
 <​code>​ <​code>​
 HTTP/1.1 200 OK HTTP/1.1 200 OK
-Content-Type:​ text/html; charset=UTF-8 
-Content-Encoding:​ UTF-8 
-Content-Length:​ (length) 
  
 (content...) (content...)
Řádek 73: Řádek 67:
 <​code>​ <​code>​
 HTTP/1.1 404 Not found HTTP/1.1 404 Not found
-Content-Type:​ text/html; charset=UTF-8 
-Content-Encoding:​ UTF-8 
-Content-Length:​ (length) 
  
 (content...) (content...)
 </​code>​ </​code>​
  
-<​code>​ +HTTP odpovědi stačí poslat bez hlaviček a následně ukončit spojeníJedná se o odpověď dle staršího HTTP standardu ale prohlížeče ji dokáží pochopit.
-HTTP/1.1 500 Internal server error +
-Content-Type:​ text/html; charset=UTF-8 +
-Content-Encoding:​ UTF-8 +
-Content-Length:​ (length) +
- +
-(content...) +
-</​code>​ +
- +
-Pro parsing requestů bude použita knihovna SLRE (Regex parser) (https://​github.com/​cesanta/​slre).+
  
 === Wake on lan === === Wake on lan ===
Řádek 108: Řádek 90:
 Pro první testování je vhodné zařízení připojit přímo k počítači bez switche v cestě. Switche typu store-forward zahodí poškozené pakety. Pro první testování je vhodné zařízení připojit přímo k počítači bez switche v cestě. Switche typu store-forward zahodí poškozené pakety.
  
-FreeRTOS: pokud aplikace padá na assertion v port.c:752 přidat následující řádek před spuštěním Sheduleru: HAL_NVIC_SetPriorityGrouping(0); +FreeRTOS: pokud aplikace padá na assertion v port.c:752 přidat následující řádek před spuštěním Sheduleru: HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);  
 + 
 +=== Zdrojové kódy=== 
 +Zdrojové kódy jsou k dispozici {{ :​2016:​ethernetwol.7z | zde}}. 
 + 
 +=== Video === 
 + 
 +{{ youtube>​c4wfqEg0cyQ?​medium }}  
 + 
 +=== Závěr === 
 + 
 +Návrh modulu byl poměrně přímočarý. Výroba prototypu nebyla problém i přez velmi malé pouzdor čipu LAN8720A. Oživení modulu bylo lehce komplikovanější,​ kvůli chybně zapájenému vývodu na desce. Chyba nebyla přímo viditelná kvůli použitému switchi store-and-forward. Při přímém propojení zařízení a PC byla tato chyba vyditelná v Wiresharku. Po prozkoumání dat byla oprava triviální.  
 + 
 +Návrh na rozšíření:​ 
 +  * detekce MAC adresy na základě zadané IP 
 +  * vlastní HW bez nutnosti použití DISCOVERY kitu 
 +  * vyhledání zařízení na lokální síti
2016/ethernetwol.1482842785.txt.gz · Poslední úprava: 2016/12/27 13:46 autor: Lukáš Vykydal