Skocz do zawartości

Bariery aby przejść z AVR na STM


Puchaczov

Pomocna odpowiedź

cześć, mam takie niezobowiązujące pytanie, jeżeli robicie jakieś projekty na nie avrach 8bitowych to jak wykonujecie później swoje układy?

przyznam, że ja aktualnie bawię się na avrach 8 bitowych, jeżeli robię jakiś projekt to najpierw montuje go na arduino a później przenoszę go na płytkę uniwersalną tak żeby były tylko elementy mi potrzebne. Ostatnio zaczyna mi trochę brakować pamięci i zacząłem się zastanawiać czy nie przejść na stm'y tylko ogromną barierą jest to, że one nie mają nóżek! Jak ja mam zrobić swoją płytkę? jak Wy to robicie?

Link do komentarza
Share on other sites

Puchaczov, STMy są układami montowanymi powierzchniowo, więc to tylko kwestia nauki innego lutowania. W moim robocie bez problemu polutowałem procesor:

Nie masz się czego obawiać 😉

Link do komentarza
Share on other sites

niby tak ale to wymaga całkowitego zaprojektowania płytki włącznie z jej wykonaniem. Do tej pory wykonanie takiej płytki było prostsze ponieważ rysowałem sobie coś na karteczce i "ścieżki" robiłem łącząc na płytce uniwersalnej dziurki za pomocą odpowiednio dopasowanych kawałków drutu 🙂 Tutaj zdaje się taka 'technika' nie jest możliwa 🙂 chyba, że istnieją jakieś adaptery z montażu powierzchniowego na nóżkowy? 🙂

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

Puchaczov, są płytki z STM32 i wyprowadzeniami DIP-40, czyli jak AVR. Ale to dosyć drogie rozwiązania i nie daje dostępu do wszystkich pinów, np: http://www.tme.eu/pl/details/mikroe-1367/zestawy-uruchomieniowe-do-ukladow-stm/mikroelektronika/mini-m4-for-stm32/

Najłatwiej na początek kupić Nucleo, albo Discovery i na kabelkach podłączać własną płytkę. Można się przy tym dużo nauczyć, a zawsze jest opcja "wpięcia" discovery lub nucleo bezpośrednio we własną płytkę.

Link do komentarza
Share on other sites

A tak na marginesie (pomijając dylematy wyboru następnej platformy), czy mógłbyś w kilku słowach opisać projekty w których brakuje Ci pamięci w AVR? Pytam tak z ciekawości, bo 128K FLASHa czy 16K RAMu to jednak niemało. Oczywiście bardzo łatwo zapełnić każdą pamięć grafiką bitmapową czy próbkami dźwięku, ale gdyby to miał być program to już trzeba się trochę napisać. Tak więc jeśli możesz, napisz parę zdań, proszę.

Acha, na płytkach stykowych jesteś pewnie ograniczony do obudów DIP, ale tu masz do dyspozycji kostkę ATmega1284P.

Link do komentarza
Share on other sites

Napisałem, że to drogie rozwiązanie - wcale go nie polecam.

Natomiast co do programowania przez serial-a to nie wiem, czy to zaleta. Wolne i debugować nie można. SWD jednak wymiata. W przypadku Nucleo / Discovery programator jest wbudowany, więc nie trzeba nic więcej wydawać.

Natomiast możliwość programowania przez serial-a jest w prawie każdym stm32. Niektóre można bezpośrednio przez USB, albo nawet I2C.

http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf

Link do komentarza
Share on other sites

marek1707, korzystam Atmegi328 więc pamięci mam jeszcze mniej. Chodzi o to, że przenosimy piec domowy do pomieszczenia na zewnątrz do którego nie ma dostępu z domu, trzeba więc dostać się przez dwór do tego pomieszczenia. Potrzebuję zbierać podstawowe informacje co dzieje się w tym pomieszczeniu i wysyłać to bezprzewodowo tak żeby w przybliżeniu wiedzieć kiedy należy wyjść i dołożyć węgla 🙂. Na razie zbieram temperaturę wody w piecu, temperaturę pomieszczenia i ilość CO w pomieszczeniu. Całość zbiera Atmega328 i wysyła za pomocą nrf24l01. Tutaj udało mi się zmieścić cały program w pamięci jednak było ciężko z tego względu, że używam biblioteki która umożliwia postawienie serwera na mikrokontrolerze z własnym IP, tak więc urządzenie jest widoczne z sieci domowej, można je pingować itd a chciałem mieć możliwość przekonfigurowania urzadzenia z domu.

I teraz pojawił się drugi problem, ponieważ raspberry zbiera te informacje i zapisuje w bazie danych to ja potrzebuję zbudować teraz urządzenie które będzie wyświetlało mi te informacje na wyświetlaczu. Napisałem już serwerek który udostępnia mi te informacje w postaci XMLa (planuje zwrócić później coś łatwiejszego dla atmegi, na przykład dane po przecinku). I teraz co musi obsłużyć atmega: sterownik wyświetlacza 128x128px + abstrakcja (dość sporawa) nad sterownikiem + sterowanie modułem wifii (i jego sterownikiem) + abstrakcja nad sterownikiem wifii + parsowanie informacji pobranych z raspberry.

Od razu widać tutaj, że będę potrzebował wysyłać żądanie HTTP żeby dobrać się do tych danych, które swoje w pamięci również zajmuje 🙂

Obejście problemu: (wydaje mi się bardzo dobrym pomysłem)

Użycie 2x Atmega328, jedna tylko do sterowania wyświetlaczem + moja abstrakcja nad tym sterownikiem + I2C do udostępnienia własnych komend dla interakcji z wyświetlaczem

Druga atmega sterowanie wifii i całą obsługą głównego programu + sterowanie przyciskami, obie komunikują się poprzez I2C

To tak w skrócie 🙂

deshipu - to wydaje się być dobrym pomysłem, tanie są te układy muszę przyznać...

Link do komentarza
Share on other sites

Druga atmega sterowanie wifii i całą obsługą głównego programu + sterowanie przyciskami, obie komunikują się poprzez I2C

Tutaj użyłbym ESP8266, który nie dość, że wifi ma wbudowane, to jeszcze ma troszkę więcej zasobów na taki serwerek. No i daje się programować z Arduino IDE.

Link do komentarza
Share on other sites

A nie łatwiej podłączyć wyświetlacz do RPi?

Poza tym pewnie zostałoby Ci jeszcze 90% wolnego miejsca w pamięci AVR-a, gdybyś nie używał tak skomplikowanych protokołów jak HTTP.... Przecież do wysłania wyników pomiaru wystarczy UART, nie trzeba całego stosu TCP/IP ustawiać do wysłania kilku danych. Serwer webowy można ustawić na RPi, a komunikację z czujnikami, czy też atmegą zbierającą dane zrobić prostym protokołem tekstowym - nrf24l01 spokojnie wystarczy, nie potrzeba od razu WiFi uruchamiać.

Link do komentarza
Share on other sites

RPI jest schowane i niedostępne (na innym piętrze) dla zwykłego śmiertelnika. A chodzi o to, żeby mieć w dolnych pomieszczeniach informacje o tym pomieszczeniu. Używanie do tego celu kolejnego RPI mija się z celem bo to jak strzelanie zabijanie muchy atomówką

Sam się zastanawiałem czy użycie czystego nrf24l01 nie byłoby lepsze jednak wygrało we mnie lenistwo bo tak to bym musiał natrzaskać translacje komunikacji pomiędzy urządzeniem -> raspberry -> urządzeniem przechowującym dane (w tym wypadku ten sam raspberry).

Chodziło też o to żebym jak będę chciał rozszerzać liczbę urządzeń i pomieszczeń to żebym mógł je łatwo spinać i rozszerzać ich zasięg. Dzięki temu, że mogę korzystać z dobrodziejstw sieci zwiększam ich fizyczny zasięg ponieważ mogą one przekazywać informacje pomiędzy sobą (jeszcze tego nie testowałem 🙂 )

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.