Skocz do zawartości

Dobór mikrokontrolera


deroxus

Pomocna odpowiedź

Cześć,

Zastanawiam się czy Atmega 328P (taka co siedzi w arduino uno) będzie wstanie udźwignąć mój projekt czy jednak będę potrzebować czegoś mocniejszego jak atmega 644 albo 1284.

Projekt będzie składać się z:

sim808 moduł gps/gprs/bt (wysyłanie sms na telefon z lokalizacja)

moduł czytnika karty SD (zapis co jakiś czas naszego położenia i godziny na kartę SD)

akcelerometr (który będzie służył do wywoływania alertu)

 

Testowałem program do sim 808 oparty na bibliotece DFRobot_sim808 i zajmuje on: 

Szkic używa 13478 bajtów (41%) pamięci programu. Maksimum to 32256 bajtów.
Zmienne globalne używają 1703 bajtów (83%) pamięci dynamicznej, pozostawiając 345 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.Niski poziom dostępnej pamięci, mogą wystąpić problemy ze stabilnością.

 

I się zastanawiam czy starczy mi pamięci SRAM jeśli sam ten kod "zjada" 83% bez optymalizacji kodu a gdzie jeszcze obsługa kart sd i akcelometru. 

Jestem świeży w programowaniu i nie jestem w stanie określić czy kod da się w taki sposób zoptymalizować aby atmega udzwignela te 3 moduły w 1 programie.

Ktoś doradzi czy ta atmega 328p powinna wystarczyć czy jednak rozglądać się za czymś większym?

 

 

Jeszcze jedno pytanie bo gdzieś przeczytałem, że jeśli na karcie chce zapisywać małe ilość (w moim przypadku to będzie kilkanaście linijek z współrzędnymi plus datą i godziną) to czy jest sens w to pakować kartę SD 16gb czy nie lepiej to wgrać do pamięci FLASH? Jeśli można takie dane zapisywać w pamięci Flash to w jaki sposób to realizować?

 

Pozdrawiam serdecznie. 

 

Link do komentarza
Share on other sites

4 godziny temu, deroxus napisał:

Cześć,

Jestem świeży w programowaniu i nie jestem w stanie określić czy kod da się w taki sposób zoptymalizować aby atmega udzwignela te 3 moduły w 1 programie.

Ktoś doradzi czy ta atmega 328p powinna wystarczyć czy jednak rozglądać się za czymś większym?

...

Jeszcze jedno pytanie bo gdzieś przeczytałem, że jeśli na karcie chce zapisywać małe ilość (w moim przypadku to będzie kilkanaście linijek z współrzędnymi plus datą i godziną) to czy jest sens w to pakować kartę SD 16gb czy nie lepiej to wgrać do pamięci FLASH? Jeśli można takie dane zapisywać w pamięci Flash to w jaki sposób to realizować?

 

Pozdrawiam serdecznie. 

 

Cześć,

Masz kilka mozliwości:

1) Możesz wybrać jakiś tani klon Arduino MEGA 2560 np. taki:

https://www.banggood.com/Geekcreit-MEGA-2560-R3-ATmega2560-MEGA2560-Development-Board-With-USB-Cable-p-73020.html?rmmds=search&cur_warehouse=CN

znajdziesz go także w polskich sklepach.

2) Wybrać płytkę z ESP32 lub ESP8260 - zobacz np. ten link:

https://botland.com.pl/pl/440-plytki-zgodne-z-arduino?uc-mikrokontroler-*=atmega2560,esp-32,esp-8266,esp32

3) Wybrać mały ARM - polecam taki model STM32G070RB np. w zestawie NUCLEO-G070RB:

https://kamami.pl/stm-nucleo-64/573439-nucleo-g070rb-zestaw-startowy-z-mikrokontrolerem-z-rodziny-stm32-stm32g070rb.html

 Programowanie będzie wtedy trudniejsze niż w "Arduino IDE" - możesz np. użyć darmowego IDE "STM32CubeIDE".

Twoje pytanie : Jeśli można takie dane zapisywać w pamięci Flash to w jaki sposób to realizować?

Lepiej zapisywać do pamięci EEPROM (możliwa większa liczba zapisów i nie musisz pisać całymi stronami jak dla FLASH.

Zobacz te dwa linki:

https://www.arduino.cc/en/Tutorial/EEPROMWrite

https://www.norwegiancreations.com/2017/02/using-eeprom-to-store-data-on-the-arduino/

Pozdrawiam

 

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

Dzięki za odpowiedź.

 

Czyli sugerujesz, że nie ma się co brać z atmega 328p za ten projekt tylko wziąć coś z większa pamięcią? 

Ktoś ma jeszcze opinię na  ten temat? Chętnie wysłucham. 

Link do komentarza
Share on other sites

13 godzin temu, deroxus napisał:

Dzięki za odpowiedź.

 

Czyli sugerujesz, że nie ma się co brać z atmega 328p za ten projekt tylko wziąć coś z większa pamięcią? 

Ktoś ma jeszcze opinię na  ten temat? Chętnie wysłucham. 

Tak te 2KB w UNO to naprawdę mało (w MEGA jest już 8KB i to  też szału nie robi).

Pozdrawiam

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

16 godzin temu, FlyingDutch napisał:

Wybrać płytkę z ESP32 lub ESP8260

 

16 godzin temu, FlyingDutch napisał:

Lepiej zapisywać do pamięci EEPROM

Pominąłeś taki mało ważny szczegół - ESP nie mają pamięci EEPROM, trzeba podłączyć zewnętrzny.

Link do komentarza
Share on other sites

9 godzin temu, ethanak napisał:

 

Pominąłeś taki mało ważny szczegół - ESP nie mają pamięci EEPROM, trzeba podłączyć zewnętrzny.

Tak masz rację - myślałem o opcji z Arduino-Mega. W przypadku ESP lepiej użyć małej kostki FRAM z interfejsem SPI czy I2C. Np. jednej z takich kostek:

https://www.mouser.co.uk/new/cypress-semiconductor/cypress-serial-fram/

A tutaj jest biblioteka do nich (trzeba w niej tylko dobrać ilość linii adresowych).:

https://github.com/adafruit/Adafruit_FRAM_SPI

Pozdrawiam

Edytowano przez FlyingDutch
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.