Skocz do zawartości

Ile czasu trwa start RTOS / dyskusja wydzielona


Gość es2

Pomocna odpowiedź

27 minut temu, Mrpatryk napisał:

Nie ma gdzies jakiegos przykladu z odbioru danych ?? Wyslac wiem jak ale odebrac juz nie. 

Czy w ogóle  mysql jest potrzebny? Ile tych danych będzie? Miliony? Tysiące? A może tylko setki? Baz mysql jest dobra gdy trzeba zarządzać dużą ilością danych, można wyszukiwać dane w/g różnych kluczy. Wydaje mi się, ze w Twoim przypadku, baza mysql to armata na wróbla.

Aby pomóc w wyborze platformy, pobór prądu:

RaspberryPi3+: 300..400mA 5V = 1,5...2W przy czym dolicz straty na stabilizatorze, bo potrzebujesz stabilnego 5V

ESP: 40..50mA 5V = 200...250mW przy czym dolicz straty na stabilizatorze, bo potrzebujesz stabilnego 5V

AVR, ARM w uśpieniu ok 1uA (2..5,5V dla AVR, 2..3,6 dla ARM ale napięcie narzucą peryferia jak czytnik RFID). Otoczenie też prądy rzędu uA. Po wybudzeniu, na kilkaset ms 50mA gdy moduły rafiowe. Do tego RFID, nie miałem okazji sprawdzić ile pradu pobiera ale we wszystkich rozwiązaniach musi byc czytnik RFID. Dla mnie wybór platformy jest oczywisty, chyba, że nie przeszkadza Ci akumulator od Jelcza przy zamku 🙂

 

Właśnie kończę system z STM32F103C8 i RFM12B. Co 200ms uC jest budzony na 190us, jak nie ma nic do roboty idzie spać, jak jest, co następuje (o ile nie ma alarmu) co 30sekund, pobór prądu wzrasta do ok 30mA i trwa ok 30ms. Na baterii CR2032 gwarantuje to pracę przez rok, na baterii o większej pojemności 2lata. Spróbuj to osiągnąć na ESP 🙂 Oczywiście w Twoim przypadku musi działać RFID i trzeba otwierać rygiel. Strzelam, ale robiąc to na uC, zależnie od częstotliwości otwierania rygla, na 2 bateriach AA będzie to działać miesiąc. Zanim zaczniesz pisać soft, bo już interesują Cię przykłady komunikacji z bazą danych, rozwiąż problem zasilania. W Twoim przypadku trzeba dopasować się z softem do platformy a nie jak przeważnie się robi, że wybiera się platformę, na której soft pisze się najłatwiej, bo pobór prądu jest mało ważny.

 

Edytowano przez es2
Link do komentarza
Share on other sites

16 minut temu, ethanak napisał:

@es2Masz takiego dziwnego ESP-ka który cierpi na bezsenność? 😉

Nie miałem potrzeby usypiać ESP. Nawet jak będzie brał 0 to stabilizator aby uzyskać 5V zrobi swoje. Są takie stabilizatory co zużywają 1uA?

Napisz ile prądu pobiera ESP w uśpieniu oraz ile gdy łączy się przez Wi-Fi. Teraz można policzyć ile prądu zużywa. Ile czau potrzebuje ESP od wybudzenia przez RFID do chwili gdy zacznie pracować program użytkownika, aby obsłużyć ESP? Czy to zadziała, przykładam kartę/brelok, ESP jest wybudzony, szuka rekordu w bazie, otwiera drzwi? Czy cała operacja zajmie mniej niż sekundę? Jeśli tak, to jest sens liczyć pobór prądu, który NA PEWNO, będzie większy niż uC, jeśli natomiast będzie to trwało ponad sekundę (a będzie bo RTOS musi wystartować, chyba, że nie usypianiu na max, ale wtedy już miliampery poboru prądu będą) to co tu liczyć?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

A mnie zaciekawiło coś innego: "jeśli natomiast będzie to trwało ponad sekundę (a będzie bo RTOS musi wystartować" - stąd moje pytanie, co tak dużo czasu zajmuje? Dla ustalenia uwagi - mówimy o FreeRTOS-ie. Co w nim ma niby zajmować dużo więcej czasu niż sam start mikrokontrolera bez systemu?

Edytowano przez Elvis
Link do komentarza
Share on other sites

ESP pojecie tak szerokie jak Arduino. Sam ESP wymaga 2,5...3,6V pobiera 50..170mA zależnie czy nadaje, czy odbiera i w jakim standardzie. Gdy będzie to moduł z różnymi dodatkami, najczęściej zasilany jest z 5V.

Jak jest z tym usypianiem? Ma to szansę działać i ile więcej prądu pożre niż uC?

 

Co do "mówimy o FreeRTOS-ie. Co w nim ma niby zajmować dużo więcej czasu niż sam start mikrokontrolera bez systemu?" to pytam, ile czasu od wybudzenia z max uśpienia aplikacja użytkownika zadziała?

 

W aplikacji, którą chce zrobić autor, pobór prądu w uśpieniu powinien być na poziomie uA + prąd wymagany przez czytnik RFID bo tego nie przeskoczy. Czas reakcji powinien być na poziomie dziesiątek ostatecznie setek ms.

Edytowano przez es2
Link do komentarza
Share on other sites

2 minuty temu, Elvis napisał:

Napisałeś, że system będzie długo startował ponieważ używa RTOS-a. Jeśli rozumiesz o czym piszesz, to proszę wyjaśnij dlaczego użycie RTOS-a znacznie zwiększa czas startu systemu.

Porównaj DOS a Windows i będziesz miał odpowiedź.

Widać nie wiesz,że system wiąże się z uruchomieniem kilku/kilkunastu modułów, które nie istnieją gdy systemu nie ma. Ponadto system inicjalizuję wszystko co będzie używane, gdy systemu nie ma wystarczy zainicjalizować to co jest potrzebne. Masz FAT, USB i inne cuda, RTOS po resecie inicjalizuje wszystko a po wybudzeniu potrzebne sa np tylko GPIO. Nie mam systemu, incjalizuję np GPIO,  SPI i mogę iść spać, jeśli trzeba, zainicjalizuję wszystko co trzeba, wykonam działanie i idę spać. Mając system, nad którym nie panuję (ESP), mam taka możliwość?

 

Link do komentarza
Share on other sites

Nie bardzo wiem jak porównywanie DOS i Windows miałoby pomóc w znalezieniu odpowiedzi. Dodatkowa trudność to brak kodów źródłowych wspomnianych systemów. Zostańmy więc przy FreeRTOS-ie oraz czasie startu systemu.

Oczywiście dodanie bibliotek może zwiększyć czas startu systemu. Jednak Fat, USB i inne cuda nie są obowiązkowymi składnikami FreeRTOS-a, to raptem dodatkowe biblioteki, które można dodać lub nie. Więc nie pisz, że to zajmuje dużo czasu bo jest RTOS - może zajmować długo bo np. następuje enumeracja USB. Ale ten czas będzie taki sam w przypadku RTOS-a, jak i aplikacji bare metal. Skoro używasz argumentów w dyskusji, staraj się chociaż rozumieć co piszesz.

Link do komentarza
Share on other sites

Nie używam RTOS więc nie wiem ile startuje ale "oczywista oczywistość", że dłużej niż uC bez systemu. Wiem ile startuje Linux na Rpi3 - ok 20 sekund. Wiem też ile startuje STM32F1xx przy 12MHz ok 100us (od wybudzenia, przez init RCC i GPIO). Czas ten można skrócić i np nie nie inijalizować RCC, bo często nie ma takiej potrzeby, zwłaszcza tam, gdzie oszczędzanie energii jest ważne. W nocie STM napisali o czasie wybudzenia 50us, więc moje praktyczne pomiary pokrywają się z rzeczywistością. Napisz więc ile czasu stratuje RTOS, będzie porównanie bez wnikania co robi RTOS i jałowa dyskusja będzie zakończona.

Edytowano przez es2
Link do komentarza
Share on other sites

Skoro nie wiesz, to nie pisz. Linux nie ma nic wspólnego z RTOS-em, podobnie jak DOS, czy windows. Jako ciekawostkę polecam popatrzeć na kod FreeRTOS-a: https://sourceforge.net/p/freertos/code/HEAD/tree/trunk/FreeRTOS/

Nie ma w nim ani biblioteki dla USB, ani dla Fat-a, ani nawet TCP/IP. Można je dodać, ale to po prostu dodatkowe biblioteki, podobnie jak dla Arduino, czy innych rozwiązań.

FreeRTOS może startować z minimalnym narzutem czasowym, co więcej usypianie standardowo wykonuje się w zadaniu o najniższym priorytecie, czyli idle. Sam FreeRTOS to właściwie moduł przełączania zadań (scheduler), nie ma w nim prawie nic co znamy z "prawdziwych" systemów operacyjnych. Co ciekawe FreeRTOS można uruchomić nawet na Arduino: https://www.arduinolibraries.info/libraries/free-rtos

  • Lubię! 2
Link do komentarza
Share on other sites

5 minut temu, Elvis napisał:

Skoro nie wiesz, to nie pisz.

Też nie wiesz bo byś napisał ile stratuje.

Nie trzeba być geniuszem aby stwierdzić, ze musi startować dłużej. To, ze można, nie trzeba inicjalizować biblioteki FAT itp, tak można to zmienić. Potrafisz zrobić to na ESP? Ja nie potrafię i jak autor wątku wybierze ESP to mu nie pomogę w tym temacie, rozumie, że Ty mu napiszesz jak to zrobić? Jak tak, to pierwszy zapisuję się w kolejce, wybudzanie ESP kilka razy na sekundę, sprawdzenie kilku GPIO, zależnie od ich stanu uśpienie lub start programu użytkownika. Jakiś przykładowy kod?

Link do komentarza
Share on other sites

O ile pamiętam to autor wątku używa Arduino mega i niewiele go interesuje czas startu FreeRTOS-a na ESP, stm32 bez systemu, czy linuksa na Rpi3. Proponowałbym wrócić do tego wątku, zamiast mądrzyć się na tematy których nie rozumiesz. A co do czasu startu to nie muszę go mierzyć, żeby wiedzieć że nie zajmuje 1 sekundy. I tylko o tym chciałem wspomnieć, bo widzę że piszesz głupoty udając eksperta, a jeszcze ktoś początkujący w to uwierzy.

Link do komentarza
Share on other sites

Wymijająca odpowiedź. Nie wiesz ile stratuje RTOS a się mądrzysz! Ja nie wiem ile startuje ESP, dlatego zadałem pytanie i przyznałem, że nie mam pojęcia ile stratuje (w aplikacji, która mam kilka sekund - nie ja pisałem). Oczywiste jest, że startuje dłużej i praw fizyki i matematyk pan nie zmienisz! Nie potrafisz też zmienić RTOS ESP, bo gdybyś potrafił, to honor (znasz takie słowo?) nie pozwolił by Ci milczeć i napisałbyś, że robi się tak i tak. O ROS wiesz niewiele więcej niż ja! To jest chyba oczywiste!

To, że autor ma Arduino UNO i Mega świadczy o tym, że nie wie, iż się nie nadają do tego do czego chce ich użyć. Stabilizator 3V3 i mostek USB-UART pochłonie sporo prądu, bez akumulatora "od Jelcza" się nie obędzie. Nie liczyłem ile prądu potrzebuje czytnik RFID, na ile straczą baterie,  bo to nie zadanie na 5 minut ale, jak pisałem wcześniej, widzę rozwiązanie na 2 bateriach AA i uC. Bez liczenia wiem też, że na ESP, będzie to działać zdecydowanie krócej (pewnie 10 razy krócej a może i 50). Jeśli się mylę, to proszę poprzyj to wyliczeniami a nie wymijającymi odpowiedziami (pytanie: gdzie są drzwi? Odpowiedź: Tam jest okno).

Edytowano przez es2
Link do komentarza
Share on other sites

17 minut temu, es2 napisał:

Wymijająca odpowiedź. Nie wiesz ile stratuje RTOS a się mądrzysz!

Cześć es2,

jeśli są na tym forum osoby, które znają RTOS'a to Elvis na pewno do nich należy. Kiedyś myślałem, że masz duże doświadczenie i miałeś po prostu słabsze chwile odpowiadając na posty. Ale ten post każe się zastanowić nad tym faktem. Używałem RTOS'a z STM32F4 i STM32F7 i naprawdę nie widziałem dużych różnic w starcie programu z RTOS, czy bez.  Proponowałbym przestudiować chociażby ten tutorial:

https://www.keil.com/pack/doc/CMSIS/RTOS/html/CMSIS_RTOS_Tutorial.pdf

Pozdrawiam

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.