Skocz do zawartości
RFM

Akcelerator dla wyświetlaczy graficznych

Pomocna odpowiedź

40 minut temu, Elvis napisał:

Czasem lepsze jest to co wymaga mniej elementów, ale innym razem to co jest np. bardziej bezawaryjne

Im mniej elementów tym większa bezawaryjność.

Generalnie, jak można coś zrobić na mniejszej liczbie elementów, zwłaszcza gdy będzie to tańsze to tak się robi.

 

39 minut temu, Sabre napisał:

Nikt nie poświęci pół roku nauki nowej architektury i nowego środowiska tylko po to żeby "pomigać sobie diodą" (aluzja).

Jak się stoi to się cofa. AVR z pewnością skończy tak jak 8051 czy Z-80. ARM też to czeka tyle, ze zdecydowanie później.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

W sumie to offtopic, ale jedna rzecz nie daje mi spokoju:

18 godzin temu, RFM napisał:

Fakt, że przejście na ARM to ok roku intensywnej (10..16 godzin dziennie, przez 6..7 dni w tygodniu) pracy ale później pisanie programu to przyjemność.

Rok to 52 tygodnie, mnożąc przez 6 dni i 10h daje to 3120 godzin, czyli w przeliczeniu na typowy etat 160 godzin miesięcznie - 20 miesięcy. Przyjmując 16 godzin i 7 dni w tygodniu to już 5824 godziny, czyli 36 miesiące, a więc 3 lata pracy na pełny etat...

I tak się zastanawiam, dlaczego opanowanie prostych ARM Cortex-M zajęło aż tak dużo czasu? Dla porównania studia inżynierskie to ok. 2000-2500 godzin, a znam niejednego studenta, który pisze całkiem sprawnie programy na STM32. To kwestia talentu, zdolności, czy całe to oszacowanie potrzebnego czasu to jedna wielka bajka?

Edytowano przez Elvis
  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites
20 minut temu, Elvis napisał:

I tak się zastanawiam, dlaczego opanowanie prostych ARM Cortex-M zajęło aż tak dużo czasu?

Tobie ile zajęło aby opanować wszystkie (prawie wszystkie) peryferia ARM? ARM to to nie tylko timery, UART i GPIO ewentualnie prosty kontroler LCD (kto używał Mega169? ja używałem), to także kontroler pamięci, LCD, klawiatury pojemnościowej itd. W ARM niezwykle często trzeba sięgać po DMA, bo bez niego moc CPU zostanie zmarnowana i para pójdzie w gwizdek niczym jakby użyć delay. Jak obsłużyć DMA jeśli nie wiadomo ile danych przyjdzie? W projekcie akceleratora, na przerwaniach, można obsłużyć SPI do 2 max 4MHz. Aby działało szybciej musi być użyte DMA. Ile danych otrzymam? Proponuję zmierzyć się z tym jakże banalnym problemem. Ile czasu na to potrzeba? podobnie z każdym innym układem peryferyjnym. W przypadku AVR problemu nie ma bo nie ma on czegoś takiego jak DMA.

Inny przykład, obsługa zewnętrznej pamięci lub sterownika LCD komunikujacego się równolegle. Ile bitów jest w AVR do tego celu? Jak pamiętam 3. Ile rejestrów w STM32? Kilkanaście stron opisu, kilka dni prób aby wycisnąć max, bo w ARM ustawia się timingi sygnałów adresu, danych, WR, RD.

Sterownik LCD, ustawienie czasów synchronizacji itp. To nie godzina roboty, godzinę to czyta się note katalogową.

Mogę tak pisać i pisać, aby UART zadziałał wystarczy kilkanaście minut aby wycisnąć z niego max kilka dni.

Powodzenia każdemu, kto obsłuży z poziomu HAL slave I2C

Udostępnij ten post


Link to post
Share on other sites

ARM nie ma peryferiów, bo to nazwa firmy. Nawet Cortex-M3 prawie peryferiów nie ma - raptem NVIC, SysTick, pewnie kilku teraz nie pamiętam. Cała reszta to dzieło firmy ST (czy tam STMicroelectronics), w zależności od wybranego układu modułów jest więcej lub mniej, ale nie demonizujmy - przez 3 lata to można się nauczyć własne moduły projektować.

Moim zdaniem przesiadka z atmegi na stm32 to nic specjalnie trudnego. Wymaga trochę wysiłku, ale w żadnym wypadku to nie jest tytaniczne wyzwanie, a opanowanie peryferiów stm32 to wcale nie powód do dumy i chwały. Po prostu kolejny mikrokontroler, ani najtrudniejszy, ani najłatwiejszy do opanowania.

Udostępnij ten post


Link to post
Share on other sites
4 minuty temu, Elvis napisał:

Po prostu kolejny mikrokontroler, ani najtrudniejszy, ani najłatwiejszy do opanowania.

Pochwal się więc swoimi osiągnięciami na ARM czy to STM, czy NXP (te są najpopularniejsze) czy jakimś innym.

 

5 minut temu, Elvis napisał:

Moim zdaniem przesiadka z atmegi na stm32 to nic specjalnie trudnego.

Jak chce się migać diodą to nie, jak robić rzeczy, których na AVR nie dało się zrobić to niekoniecznie jest to łatwe.

Znajdź kursy obsługi slave I2C z wykorzystaniem HAL. Slave SPI z DMA. LCD przez LTDC. ADC 16-bit. Karty SD przez SDIO 4-bit. Nie znalazłem albo były kiepskie. Pozostają przykłady od STM i nota katalogowa.

 

Wydaje mi się, że nie jesteś świadom ile peryferii mają uC z ARM. Proponuję wziąć notę katalogową np STM32H743 (o kursie ETH na STM zapomniałem, też nie znalazłem) i zapoznać się z nią.

Dochodzi jeszcze czas poznania narzędzi, STM32 to nie jedno środowisko ale IDE i CubeMX. IDE z popularnych KEIL i ATOLIC, trzeba spróbować jednego i drugiego. Ile czasu potrzeba aby poznać dobrze nowe środowisko?  Tu mamy dwa, jakkolwiek może to być CubeIDE ale to nic innego jak połączenie CubeMX z Atolic (Eclipse).

 

Zanim napisze się, że Mega->STM32 to nic trudnego, proponuję spróbować, bo "wydaje mi się" nie jest miarodajne. Na banalnym I2C utknąłem na kilka dni. Kod przeniesiony z innego projektu, dlaczego więc nie działa? Okazało się, że niektóre serie STM32F1xx mają błąd.

Udostępnij ten post


Link to post
Share on other sites

O la boga, co ja narobiłem. Przepraszam za swój nieprzemyślany komentarz. Po prostu wydawało mi się, że celem projektu jest optymalizacja ceny. Oczywiście nie ma nic złego w podzieleniu projektu na osobne moduły, które można osobno testować, niezależnie od siebie ulepszać i używać potem w wielu różnych projektach.

Swoją drogą, dlaczego @RFM robisz moduły przeznaczone dla ludzi, którymi tak gardzisz? To chyba nie jest przepis na dobre rozwiązanie, bo i ty się denerwujesz i twoi klienci nie dostają tego co by chcieli.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Tak jak wcześniej myślałem, ten temat wcale nie służy opisaniu akceleratora, czy jak ten sterownik wyświetlacza się nie nazywa, tylko przechwalaniu się i budowaniu własnego ego.

Nie zamierzam się do tego przyłączać, bo to chyba niezgodne z nową polityką forum (PPF), chociaż czasem faktycznie ciężko się powstrzymać. A odpowiadając możliwie ogólnie, żeby nie być posądzonym o personalne wycieczki - tak pracowałem z różnymi mikroprocesorami i mikrokontrolerami, w tym opartymi o rdzenie ARM. Wiem jakie narzędzia się do tego używa i jak skomplikowane jest to zadanie.

Więc jeszcze raz napiszę - przesiadka z atmegi na stm32 to nie jest skomplikowane zadanie. Zaletą stm32 jest bardzo rozbudowana rodzina układów, więc jak ktoś pozna małe i proste jak chociażby stm32f2, zawsze może zająć się trudniejszymi - jak chociażby wspomniany stm32h7, albo stm32mp1. Ale jeszcze raz podkreślam - to nic trudnego, a już na pewno poznanie tych układów nie upoważnia nikogo do przechwalania się, ani ubliżania osobom używającym Arduino.

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, deshipu napisał:

Po prostu wydawało mi się, że celem projektu jest optymalizacja ceny.

Optymalne jest użycie, co zauważyłeś, tylko STM32.

 

1 godzinę temu, deshipu napisał:

Oczywiście nie ma nic złego w podzieleniu projektu na osobne moduły, które można osobno testować, niezależnie od siebie ulepszać i używać potem w wielu różnych projektach.

W bardzo dużych projektach tak ale nie jak np we wspomnianej "mówiącej kostce".

 

1 godzinę temu, deshipu napisał:

dlaczego @RFM robisz moduły przeznaczone dla ludzi, którymi tak gardzisz?

Kasa a przy okazji wprawka do większego projektu.

 

1 godzinę temu, Elvis napisał:

stm32f2

Raczej STM32F0. F2 takie małe i do prostych zadań nie są przeznaczone więc wydaje mi się, ze mijasz się z prawdą pisząc

1 godzinę temu, Elvis napisał:

tak pracowałem z różnymi mikroprocesorami i mikrokontrolerami, w tym opartymi o rdzenie ARM.

No i jakoś nie pochwaliłeś sie projektem z ARM (oczywiście, chodzi o projekt na tyle zaawansowanym, że AVR nie dałby rady).

1 godzinę temu, Elvis napisał:

na pewno poznanie tych układów nie upoważnia nikogo do przechwalania się, ani ubliżania osobom używającym Arduino.

Fakt, do tego wystarczy znajomość AVR.

 

1 godzinę temu, Elvis napisał:

ten sterownik wyświetlacza się nie nazywa, tylko przechwalaniu się i budowaniu własnego ego.

Albo temu abym nie oglądał migających LCD przyłączonych do Arduino/AVR. Ten projekt jest jednym z trzech dla LCD, będzie jeszcze dla LCD do 320x240 SPI/PAR i do 480x320 PAR. Idea działania taka sama.

Jest już sfinalizowany dopalacz dla WS2812. Dzięki niemu AVR nie zawiesza przerwań podczas transmisji danych, bo jest realizowana przez I2C/SPI. Ponadto dane mogą być wysyłane kilka razy szybciej niż do fizycznie podłączonych LED.

Będzie jeszcze player MP3/WAV. Kolejny gadżet Audio recorder, tania alternatywa dla drogiego ISD i jego następcy.

Udostępnij ten post


Link to post
Share on other sites
11 godzin temu, RFM napisał:

No i jakoś nie pochwaliłeś sie projektem z ARM (oczywiście, chodzi o projekt na tyle zaawansowanym, że AVR nie dałby rady).

Z tego co pamiętam, reguły PPF na forum zabraniają takich osobistych przepychanek, przechwałek itd. Proponuję użyć google, skoro o [Imię i nazwisko usunięto], czyli RFM / es2 / InspektorzeGadget można wszystko wyszukać - zarówno doświadczenie zawodowe, wykształcenie, jaki i projekty, którymi się tutaj przechwala  - to i o mnie można. Wystarczy tylko chcieć.No chyba że poznanie obsługi google to też rok ciężkiej pracy 🙂

Udostępnij ten post


Link to post
Share on other sites
23 godziny temu, RFM napisał:

Projekt uznaję za ukończony.

W związku z powyższym myślę że stosownym będzie zamknięcie tematu. Na pewno oszczędzi to czasu i niepotrzebnych nerwów. 😀

Udostępnij ten post


Link to post
Share on other sites
Gość
Ten temat został zamknięty.

×
×
  • Utwórz nowe...