Początki z STM32 - Ethernet i kilka inny

W dniu 2014-05-17 18:37, mk pisze:

Hmm... Istnieje jakiś standard układu wyprowadzeń w MCU z wbudowanym kontrolerem Ethernetu i zewnętrznym interfejsie PHY? Można w miarę łatwo poprowadzić magistralę złożoną z równoległych ścieżek, czy raczej trzeba będzie się bawić w zworki i przelotki?

Do tego spokojnie wystarczy Tuxgraphics, który jest w dodatku banalny w obsłudze i konfiguracji. Czegoś lepszego potrzebowałbym np. do obsługi telnetu.

To raczej jeszcze daleko przede mną. Poza tym gdybym potrzebował wielowątkowości do jakiegoś poważniejszego projektu, pewnie sięgnąłbym po jakąś linuksową płytkę. Zresztą zanim w moim przypadku zajdzie taka potrzeba, to na rynku pojawią się tanie MCU SoC, mieszczące kompletny linuksowy komputerek w obudowie LQFP. ;)

Mówimy o Fast Ethernet czy o Ethernecie w ogólności. Bo zaprojektowałem już kilka płytek z ENC28J60 i nie miałem jak dotąd żadnych problemów. Pingi dochodzą bez gubienia pakietów. Nie pamiętam, żebym kiedyś nie otrzymał odpowiedzi na wysłany pakiet UDP.

Gdybym jednak chciał zaprojektować własną płytkę, to o czym przede wszystkim powinienem pamiętać?

Reply to
Atlantis
Loading thread data ...

Am 16.05.2014 12:06, schrieb Atlantis:

W mojej nowej robocie panuje od około roku STM, do tego czasu był używany AVR. Szef "rozkazał" przejście z różnych powodów, ale główną przyczyną była cena. Używamy gotowych modułów, które kosztują praktycznie śmieszną cenę. Jako, że robimy małe serie (10-100 sztuk) robienie płytki pod gołe procesory i ich wlutowywanie po prostu się nie opłaca. Taki STM32F3xx kosztuje jako moduł ok. 8EUR, solo może połowę, ale trzeba zrobić layout i to ścierwo wlutować z całą menażerią dookoła. Przy cenie godziny pracy ok. 50EUR to ne je ono. W tej chwili mamy w użyciu dwa systemy, jeden oparty na F3, drugi na F4. Na F3 są robione urządzenia, które są łączone z hostem przez USB/RS232, na F4 z ethernetem. Choć nasze urządzenia są same w sobie proste, to systemy mogą być dość skomplikowane. Np. taki jeden F4, który robi kolega, steruje 32 RS232, 32 GPIO. Całość to ok. 100 urządzeń połączonych ethernetem. Moje urządzonko hula sobie na F3, ale będę je w tym tygodniu portował na F4, bo potrzebuję sterować ethernetem, a do F3 nie wejdzie mi tcp/ip.

Jak już pisałem używamy gotowych płytek prototypowych. Jest na nich wszystko, co potrzeba. Na mojej płytce robię co muszę, a STMa wstawiam jak starego dobrego DILa do gniazdka i już wsio lata.

Waldek

Reply to
Waldemar Krzok

W dniu piątek, 16 maja 2014 12:06:31 UTC+2 użytkownik Atlantis napisał:

Wbudowany MAC z DMA.

Jak najbardziej lwIP. Polecam uzycie RTOS z odpowiedmin BSP dla wybranej wersji procesora. , np.:

- ChibiOS/RT

formatting link
eCos
formatting link
mBed
formatting link

- NuttX

formatting link
i nie bawic sie w wynajdowanie kola.

Duzo.

Tak zważywszy iz ST sprzedaje po cenie dumpingowej płytki ewaluacyjne a czasem wręcz rozdaje;) STM32F4DISCOVERY (moduł z kontrolerem):

formatting link
(płyta bazowa z PHY):
formatting link
Z powodzeniem nisko-seryjna produkcje można oprzeć o moduły ewaluacyjne.

Reply to
jerzdy

W dniu 2014-05-19 08:32, Atlantis pisze:

Jeśli istnieje to nie zauważyłem :) Pinologia MII/RMII STM32 taka sobie... na jednej warstwie raczej nie da rady.

uIP dosyć szybko i bezproblemowo uruchomiłem, ale nie będę bronił, czy lobbował za uIP.

W jakiś RTOS warto zainwestować. Warto stosować nawet mało-średnich projektach. Jak przedstawiłeś jesteś na etapie przesiadki 8 do 32-bitów. Jeśli jeszcze nie masz w arsenale swoich kompetencji budowania aplikacji mikrokontrolerowych opartych o RTOS, to ja na Twoim miejscu bym się tym zajął niż jakimiś Ethernetami. A przy aplikacjach Ethernetowych wiedza ta będzie tylko procentować.

Jeśli chodzi o pingwina stawianego na małych platformach, to się już z nim przepraszam od jakiegoś czasu. Zgadzam się, że Ethernet na mikrokontrolerze to zawsze mniejsza lub większa rzeźba. Nawet jak się wyrzeźbi to apetyt rośnie w miarę jedzenia: a to przydała by możliwość równoległej obsługi większej liczby połączeń, a to jeszcze jeden serwis, a to jeszcze wypaśniejsze i ładniejsze www (czyli trzeba je komuś zlecić, kto się tym profesjonalnie zajmuje; a jak ktoś zrobi, to zrobi np. na Ruby on Rails :-) ), a w urządzeniu które na początku miało być prostym rejestratorem danych w końcu dochodzi się do konkluzji: a dlaczego by zmagazynowanych danych nie udostępniać w postaci bazy danych... Ale z drugiej strony jakieś proste, ale bardzo szybkie I/O, czy jakieś inne ustrojstwa mające pracować w rygorze czasu rzeczywistego (STM32 np. wspiera IEEE1588).

Piszę o Fast Ethernecie i raczej o połączeniach na drodze PHY-wtyk. A "u mnie działa" nie równa się "u klienta działa" :)

Poprawny dobór elementów (czasami nie tylko co do wartości znamionowych głównego parametru), właściwe zasilanie, właściwy design płytki (patrz pdfy z zaleceniami), sprawdzenie częstotliwości pracy generatora, trochę szczęścia. Inna jeszcze sprawa czy robisz dla siebie, czy robisz produkt który musi przejść testy EMC.

pzdr mk

Reply to
mk

a może Ktoś napisać czym programuje się te procki, jaki toolchain? może jakieś wprowadzenie w dziedzinę, byłbym zobowiązany...

Reply to
tusk, donald tusk

W dniu 2014-05-20 18:12, tusk, donald tusk pisze:

  1. Keil uVision
  2. Attolic True Studio Obie aplikacje darmowe dla 32kB kodu. Niestety sama biblioteka panela dotykowego to ponad 40kB.
  3. CooCox (darmowy)
  4. Literatura po polsku - książki z wydawnictwa BTC (drogie)
  5. Płytka - mnóstwo w Kamami, AVT, Propox itd. Godne polecenia (IMHO)

-Maple mini - moduł w formie DIL

-seria Disco(very) Ciekawy jest również moduł HY-miniSTM32V (zawiera kolorowy wyświetlacz z panelem dotykowym cena ok 50$).

Reply to
Andrzej

W dniu 2014-05-20 19:49, Andrzej pisze:

dziękuję, ale potrzebuję małych wyjaśnień, jeśli chodzi o Keila to mówisz o tym: KEIL MDK ARM? jeśli nie to jak brzmi pełna nazwa programu?

Reply to
tusk, donald tusk

W dniu 2014-05-20 20:06, tusk, donald tusk pisze:

Tak MDK-ARM Version 5.10 (ostatnia wersja).

Reply to
Andrzej

W dniu 2014-05-20 20:25, Andrzej pisze:

dzięki, a patrzyłem tak sobie na USB, piszą że kod dostępny tylko w MDK-Professional, a może da się skądś zassać?

Reply to
tusk, donald tusk

a jeśli chodzi o rozeznanie w samym TCP/IP to jaką książką warto by się zainteresować?

Reply to
tusk, donald tusk

jak to wszystko ogarąć? z jednej avr z drugiej ethernet z ENC28J60? biblioteki do tego scalaka... jak obczaić to ze strony teoretycznej? jest gdzies opis tego SPI scalaka od ethernetu?

Reply to
tusk, donald tusk

W dniu 2014-05-20 20:50, tusk, donald tusk pisze:

Tak daleko jeszcze nie zaszedłem. Ja zajmuję się całkiem inną tematyką. Chyba w BTC są książki na temat USB i Ethernetu i w książce Paprockiego jest rozdział nt. USB. Niektóre STM32 mają wbudowaną obsługę USB-OTG (seria connectivity line).

Reply to
Andrzej

W dniu 2014-05-20 20:50, tusk, donald tusk pisze:

W dokumentacji producenta tego scalaka.

Reply to
Michał Lankosz

teoretycznej?

Do obsługi encj raczej polecam gotowe biblioteki, komunikacja z nim nie jest na prostym poziomie abstrakcjii sieci jak np. z układami wiznet, które mają stos tcp "wcbudowany".

Reply to
Marek

W dniu 2014-05-20 20:50, tusk, donald tusk pisze:

Zacznij od Tuxgraphics. Na początek naprawdę nie warto zaprzątać sobie głowy niczym trudniejszym. I tak prawdopodobnie nie będziesz wysyłał za jednym razem partii danych, która liczy więcej niż kilkaset bajtów. Problem pojawia się, gdy potrzebujesz obsługi czegoś w rodzaju telnetu. Wtedy coś jak uIP już się przydaje i pewnie niedługo się za niego zabiorę.

Tuxgraphics przestaje też wystarczać, gdy pojawia się potrzeba wygenerowania większej strony WWW. Tyle tylko, że ja bym się poważnie zastanowił, zanim zacząłbym myśleć o stawianiu większego "serwera" HTTP na ATmedze. Kod HTML bardzo szybko zapcha nam flasha. :)

Reply to
Atlantis

W dniu 2014-05-19 20:37, mk pisze:

Z gdyby zaprząc do pracy przelotki ponad niepasującymi ścieżkami, albo wręcz krzyżujące się połączenia kynarem bezpośrednio pomiędzy konkretnymi pinami? Czy w przypadku połączenia pomiędzy MCU a PHY może to mieć jakieś znaczenie? Pojemności montażowe i te sprawy... :)

Jednak do prostego telnetu się nada? Niby pakietami UDP też się da przesyłać komendy do urządzenia, ale czasem wolałbym wpiąć się za pomocą PuTTY, tak samo jak przez UART, zamiast preparować pakiety PacketSenderem. Zresztą przecież jedno nie wyklucza drugiego. ;)

Rozumiem jednak, że to nie jest żadna czarna magia i przy przestrzeganiu pewnych zasad można uzyskać dobry efekt w amatorskich warunkach, nawet robiąc płytkę termotransferem? ;)

Wszystkie moje konstrukcje są czysto amatorskie, na własny użytek. ;)

Reply to
Atlantis

W dniu 2014-05-21 12:08, Atlantis pisze:

Nie wnikając w TCPIP, ja jednak mam kłopoty z termotransferem przy rastrze 0,5mm. Dlatego chętnie korzystam z gotowych modułów, np. Maple Mini, który ma wymiary procesora 8051 w obudowie DIL. Tylko warto poszukać najlepszej oferty cenowej.

Reply to
Andrzej

Bez problemu, nawet wiele połaczeń jednocześnie Ci obsłuży.

jp

Reply to
jacek pozniak

W dniu 2014-05-21 13:58, Andrzej pisze:

Hmm... Do tej pory najmniejszą obudową, jaką lutowałem na samodzielnie wytrawionej płytce była TSSOP28. Najcieńsze ścieżki sygnałowe miały jakieś 10-12 milsów. Najcieńsza ścieżka jaką w ogóle udało mi się wytrawić miała 5 milsów. Nie liczę jej dlatego, że nie była częścią układu - pełniła jedynie funkcję "obwódki" wyznaczającej miejsce przycięcia płytki. Nie zmienia to faktu, że wyszła ładnie i równo, zachowując ciągłość po wytrawieniu i cynowaniu. Oczywiście kluczowe było pilnowanie czasu trawienia, żeby po zniknięciu miedzi w szczelinach płytka nie leżała zbyt długo w roztworze.

W świetle powyższego wydaje mi się, że nie powinno być problemów z przygotowaniem płytki pod LQFP. Myślę, że najbliższym czasie przetestuję tę hipotezę. ;)

Swego czasu też naczytałem się opowieści o tym, że przy małych obudowach SMD to tylko metoda fotograficzna wchodzi w grę. Moje doświadczenie wskazuje jednak na coś innego. Kluczem do sukcesu jest dobry papier i zastosowanie laminatora zamiast żelazka. ;)

To też jest jakieś rozwiązanie. Tyle tylko, że budując projekty na AVR-ach zdążyłem się już przyzwyczaić do zwartych rozwiązań, gdzie (prawie) wszystkie elementy mieszczą się na jednej płytce.

BTW jak to jest z programowaniem STM32? Wystarczy kabelek USB, czy może przy budowaniu tego samodzielnie trzeba najpierw posiadać jakiś dedykowany programator, którym dopiero wgrywa się bootloader?

Reply to
Atlantis

Dnia Fri, 16 May 2014 14:00:53 +0200, Atlantis napisał(a):

Nie wiem czy się doczekasz bowiem moduł ten wedle zapowiedzi ma być dostępny tylko w ilościach hurtowych (przynajmniej u producenta).

Reply to
badworm

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.