Skocz do zawartości

Kiedy kabelki zaczynają denerwować...


Pomocna odpowiedź

Czemu taki dziwny tytuł?

Czy kiedyś miałeś/miałaś (dalej używać będę odruchowo męskiej formy) problem, że wykonałeś projekt na Arduino, ale okazało się ono za słabe przez co trzeba było go przenieść na STM albo ESP? Czy kiedyś nagle okazało się, że do projektu chcesz dodać WiFi, ale jednak jest z tym dużo roboty, bo ESP ma inny pinout niż Arduino?

NIGDY WIĘCEJ!

UniDimm

UniDimm to projekt uniwersalnego złącza SoDIMM-260 (DDR4), którego celem jest maksymalne uproszczenie podpinania projektów. Okazuje się, że Arduino jest niewystarczające? Wyjmujesz moduł SoDIMM i wkładasz inny np. z ESP albo z STM32. W wersji o dużych ambicjach nawet może to być moduł z SoC'em.

Features?

  • No bugs, only features
  • 3 piny 12V (I), 3 piny 5V (I/O), 3 piny 3V3 (I/O), 1 pin 1.8V (O), 1 pin 1.2V (O)
  • 5 linii USART (RX, TX, RTS/CLK, CTS).
  • 5 linii SPI (SI, SO, SCK, NSS)
  • 4 linie I2C (SDA, SCL, SMBA)
  • 3 linie CAN (TX/CAN_H, RX/CAN_L) [zależne od konfiguracji]
  • 2 linie SD/SDIO (8bit)
  • 4 linie USB (DN, DP, ID, SOF, VBUS)
  • 3 linie I2S (WS, MCK, CK, SDI, SDO)
  • 2 linie SAI (FS, SCK, SD)
  • wewnętrzne linie programowania (JTAG, ISP, SWD)
  • 2 magistrale ETH (gigabit)
  • 16 linii analogowych
  • 83 linie cyfrowe
  • wewnętrzne złącze programowania (factory)

Założenia?

Sam projekt w założeniu ma maksymalnie uprościć podmienianie mikrokontrolera w projekcie (ale nie tylko). W prosty sposób można budować rozszerzenia dla różnych projektów np. używając magistrali SPI można przesyłać dane do modułu z buzzerem, jak również do modułu z pamięcią flash, gdzie trzeci moduł to mikrokontroler).

Dlaczego SoDIMM-260?

Początkowo miało to być złącze PCIe-16x, aczkolwiek dostępność i cena spowodowały, że wybór padł na SODIMM260, które można kupić (na dzień dzisiejszy) już za 0.65$, co jest dość atrakcyjną ceną. Dodatkowo zawsze można je łatwo odzyskać z "starych" laptopów, których coraz więcej będzie pojawiać się "na śmietniku".

Aktualny stan projektu?

Jak zawsze DHL się obija z przesyłką i leży w Niemczech 😉 Płytki prototypowe zostały zamówione do przetestowania, zobaczymy jak będzie działać. Pierwsza wersja to "Arduino Nano" oraz Carrier Board z pinoutem. (Zdjęcia poniżej)

image.thumb.png.cbc16dd2595374b5eba15edbfa355bd8.png
Arduino na module SODIMM260 (328P-PU) po lewej zasilanie 3.3 oraz 5V. Po prawej przycisk resetu.

image.thumb.png.d8cd2ab90221a2920a47d7b26eac5757.png
Carrier board - zasilanie 12V z zasilacza do LED'ów, konwersja zasilania jest na płytkach. Na dole wyprowadzenia GPIO, po lewej złącze do programowania.

W obu powyższych przypadkach można przelutować rezystory wybierające zasilanie MCU (3.3/5V).

Routing płytek?

Wiem, że pewnie parę osób zapyta o to, więc poniżej routing płytek (nie jest dobry, ale to przecież prototyp, nie chcialem się bawić w kombinowanie ze ścieżkami...)

156622746_PCB_PCB_ACUNano_2_2021-04-09.thumb.png.b0e0451e743deee164d9cb997fbbe869.png
Moduł SODIMM

565765330_PCB_PCB_SODIMMCarrierBoard(ArduCarry)_2021-04-09.thumb.png.4321ba10ea72fc7bf2f57b2290eb23c2.png
Carrier Board

Co dalej?

Pozostaje czekać na płytki i je przetestować, jak zadziałają to można pokombinować z innymi modułami...

Błędy?

Tak... jakiś palant (tak to o mnie) pomylił strony w module SODIMM, przez co komponenty są na wewnętrznej 😉 

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

3 godziny temu, deshipu napisał:

To nie ma na celu zastępować obecnych standardów, tylko posłużyć głównie dla siebie (nie mogłem znaleźć nic użytecznego, gdzie mógłbym bez problemu sobie podpinać różne mikrokontrolery, poza tym to składowa trochę innego projektu)

Trochę też się z tym nie zgodzę - przykładem może być PCIe - zastąpiło i ASA i PCI. Podobnie w przypadku USB - zastąpiło FireWire, RS232 i LPT. Wszystko ewoluuje, a obecnie są tylko dwie rzeczy powodujące, że dany standard jest używany - reklama i zastosowanie w innych miejscach.

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

Od tego typu płytek zawsze odwodziły mnie ich ceny. Jakby były przystępne chętnie bym je wykorzystał 🙂

Pomimo tego że:

22 godziny temu, H1M4W4R1 napisał:

Czy kiedyś miałeś problem, że wykonałeś projekt na Arduino, ale okazało się ono za słabe przez co trzeba było go przenieść na STM albo ESP?

Nie 🙂

22 godziny temu, H1M4W4R1 napisał:

Czy kiedyś nagle okazało się, że do projektu chcesz dodać WiFi, ale jednak jest z tym dużo roboty, bo ESP ma inny pinout niż Arduino?

Nie🙂

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

4 godziny temu, PiotrekEl napisał:

Od tego typu płytek zawsze odwodziły mnie ich ceny. Jakby były przystępne chętnie bym je wykorzystał 🙂

🙂 Cena jest najlepsza z możliwych - jeżeli projekt się sprawdzi to wszystko pójdzie na OSHW. Stosuję politykę Prusa Research - wszystkie (lub prawie wszystkie) dane techniczne są publiczne.

Aktualny problem to głównie zastanawianie się czy HASL poradzi sobie w złączu SODIMM. Koszty ENIG to 16.7$ za partię płytek (JLC), więc na rzecz prototypów tymczasowo zrezygnowałem. Jeżeli się sprawdzi i nie będzie żadnych problemów z gubieniem styku to całkiem niezła oszczędność, bo zamiast 21.70$ za 5-10 prototypowych modułów płacisz 5$ (ew. 3$ więcej w obu przypadkach jeżeli masz 4 warstwy PCB).

Sam Carrier Board może być wykonany dowolną technologią, bo i tak brak styku poprawi cyna 😉 

4 godziny temu, PiotrekEl napisał:
Dnia 9.04.2021 o 00:18, H1M4W4R1 napisał:

Czy kiedyś miałeś problem, że wykonałeś projekt na Arduino, ale okazało się ono za słabe przez co trzeba było go przenieść na STM albo ESP?

Nie 🙂

Dnia 9.04.2021 o 00:18, H1M4W4R1 napisał:

Czy kiedyś nagle okazało się, że do projektu chcesz dodać WiFi, ale jednak jest z tym dużo roboty, bo ESP ma inny pinout niż Arduino?

Nie🙂

Jak robisz wyłącznie dla siebie to mało prawdopodobne, podobnie w wielu zastosowaniach biznesowych, ale np. jak robisz jakiś kontroler do maszyny (czy to CNC czy budowlanej) to już może się zdarzyć że pinów będzie za mało, albo MCU za wolne 😉 Ostatnio próbowałem sobie zaprojektować pewnego CNC i właśnie przez to pojawił się ten projekt... (zaprojektować nie wykonać - na celu była głównie sama elektronika dla nauki sterowania silnikami, bo jedna rama mi się kurzy ze starej drukarki, to może znalazłaby jakieś zastosowanie...).

Link do komentarza
Share on other sites

Wreszcie nastała mnie cierpliwość do lutowania P=0.5mm... 

Oczywiście jak to ja... coś musiałem zje*** przy projektowaniu płytki... nigdy nie może zabraknąć błędu w designie 😉 Tym razem padło na to, że zapomniałem odwrócić złącza SODIMM projektując moduł, przez co jest zrobiony odwrotnie -,- (pomijając, że nie poprowadziłem ścieżki od jednego pinu ADC...)

W każdym razie wszystko działa, Blinky chodzi 😉 A ja mam (wmiarę) wygodną metodę na podpinanie sobie różnych peryferiów pod różne mikrokontrolery... Oczywiście moduły trzeba jeszcze zaprojektować, ale to już (prawie) czysta przyjemność... [prawie, bo pinout jest niezbyt przyjemny, co widać w pierwszym poście].

A poniżej zdjęcia:

a.thumb.jpg.ea7c8e549a6eec231b713c747a5fe961.jpg
Carrier board

b.thumb.jpg.1faacea1e15cedaa2c4dc1d778de29ad.jpgc.thumb.jpg.1cd1f8c576bc595cb346f103f6f22361.jpg
Góra i dół modułu... Oczywiście musiałem go zrobić na odwrót 😄 Kwarc celowo z drugiej strony, bo od spodu by blokował się o krawędź płytki.

d.thumb.jpg.e2e0f002d505a7255228cd689c9faa61.jpge.thumb.jpg.b90a39939bd0d20428e6be1643034779.jpgf.thumb.jpg.63ce0f0d50a698e3d27d5c15215317ad.jpg
A tutaj moduł włożony do płytki, zablokowany i z drugiej strony 😉 

Podsumowanie

W realnych projektach raczej ciężko o sensowne zastosowanie... chociaż... jeżeli ktoś lubi konstrukcje modularne jak ja ostatnio składałem jeden projekt, to dość wygodna opcja, bo zawsze można szybko podmienić MCU na coś szybszego...

Jedyna wada to lutowanie tego jest cholernie denerwujące... 😄 

ACU-Connector-DDR4-SODIMM-260_2021-06-14.thumb.png.db9e8d7850b99409e2e341fca8fd4d20.png
Pinout złącza ACU 😉 

[EasyEda] ACU_Test.zip
A tutaj pliki projektu (Arduino Nano oraz Carrier Board)

Następne kroki?

Zaprojektować moduły pod RP2040 i STM32L432... Potem już z górki 😉 (no i oczywiście do kompletu jakaś płytka z wygodnymi wyprowadzeniami)

Errata

Nie krytykować lutowania złącza... pierwszy raz walczyłem z tak niewygodnym P=0.5mm, ale ćwierć strzykawki RMA223 wystarczyło by to ogarnąć 😉 

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.