Skocz do zawartości

Pomocna odpowiedź

(edytowany)
Dnia 24.01.2022 o 15:53, pmochocki napisał:
Dnia 24.01.2022 o 15:07, ethanak napisał:

Najprościej: albo mierzysz częstotliwość, albo używasz seriala.

No tak - czasami na oczywiste rozwiązania najtrudniej wpaść.

Zastosowałem to rozwiązanie, ale nie mogłem z nim pozostać. Może dlatego, że nie dawało mi spokoju skąd biorą się szpilki. A może dlatego, że w pracy powtarzam, że dział architektury tak powinien projektować sprzęt, abyśmy nie musieli uprawiać jogi podczas pisania oprogramowania do niego.

Byłem przekonany, że te szpilki przechodzą przez zasilanie/masę z ATTiny do wzmacniacza operacyjnego, gdzie są wzmacniane. Odświeżyłem wiadomości z zakresu teorii obwodów i liczb zespolonych. Znalazłem dławik 10uH w szufladzie i zrobiłem filtr LC na zasilaniu MCP6002. Oczywiście zmierzyłem rezystancję szeregową dławika. Dobroć układu wychodziła za duża, więc zwiększyłem pojemność o jeden rząd wielkości i dodałem 1Ω w szereg do indukcyjności. Swoje obliczenia sprawdziłem na kalkulatorze ze strony http://www.stades.co.uk/RLC filters/RLC LPF.html

image.thumb.png.4a379b35da79108539976330fb28c1f5.png

Zabieg ten oczywiście nie pomógł.

Stwierdziłem więc, że zupełnie oddzielę zasilania części analogowej i cyfrowej - nie pomogło.

I teraz najlepsze. Przeniosłem ATTiny na inną płytkę stykową. Odłączyłem totalnie całą część ze wzmacniaczem operacyjnym. Zostało same ATTiny. Zmniejszyłem długości kabli do UART do minimum. Pociągnąłem linie UART zupełnie w inną stronę niż wejście to AC. Histereza na AC ustawiona na maxa, czyli na 50mV. 

IMG_20220128_001202.thumb.jpg.7aa2f46d4455035d398acba1335dd4b2.jpg

Jak wejście do AC jest długości do około 2cm:

image.thumb.png.724e665cf0cf1658bf626029ce2c190b.png

Wszystko jest ok:

image.thumb.png.a7b1e97c6f0c527efb1970871bbca624.png

Jak wydłużę je o 1cm:

image.thumb.png.b4d56ba9d0fb5e8d2ea049d2f796e505.png

Pojawiają się szpilki:

image.thumb.png.641bb1dc290c722ffd9151e90bf6f103.png

Serial miał służyć do celów uruchomieniowo-debugowwych, ale te same problemy pojawią się przy podłączaniu wyświetlacza na I2C. 
Czy na płytce stykowej coś z tym da się w ogóle zrobić? Kabel ekranowany?
Co powinienem uwzględnić podczas projektowania PCB? 
Jakaś książka, artykuł lub inna lektura którą polecacie na ten temat? Języki publikacji, które potrafię obsłużyć to: polski, angielski, niemiecki.

Edytowano przez pmochocki
(edytowany)
3 godziny temu, MR1979 napisał:

Na płytce PCB układy analogowe i zasilania działają znacznie lepiej niż na stykówce. Dla uruchomienie jakiegokolwiek przetwornika buck/boost na stykówce jest baaaardzo trudne (mi się jeszcze nie udało). A dokładnie ten sam układ polutowany na PCB startuje bez problemu. Jest duże prawdopodobieństwo że twój układ ruszy bez problemu gdy już go polutujesz na PCB.

Dzięki to jest pocieszająca wiadomość. 

3 godziny temu, MR1979 napisał:

Z moich rad to:
- Używaj ground plane - przy dwuwarstwowej płytce najlepiej po obu stronach.
- Upewnij się że ground plane na górze i na dole są połączone przez tzw: via stitching
- Utrzymuj możliwie duże odległości pomiędzy częścią analogową, częścią cyfrową i częścią zasilania
- Utrzymuj możliwie duże odległości pomiędzy poszczególnymi liniami (np przy I2C SCK i SDA) aby uniknąć przesłuchów
- Kondensatory decoupling możliwie blisko odpowiadających im układów

Dzięki za konkrety. 

3 godziny temu, MR1979 napisał:

Odnośnie materiałów o projektowaniu PCB to polecam kanały YouTube:
https://www.youtube.com/c/PhilS94

https://www.youtube.com/c/RobertFeranec

https://www.youtube.com/c/AltiumAcademy

Phil (z pierwszego linku) wypuścił niedawno bardzo fajny kurs projektowania dla początkujących (platforma UDEMY) oraz średniozaawansowanych (Fedevel Academy). Pana Roberta z drugiego linku proponuję słuchać na prędkości x1,5, bo baaardzo wolno mówi 🤣

Ja jestem przyzwyczajony do książek i not katalogowych. Ale czas wkroczyć w XXI wiek. 

3 godziny temu, MR1979 napisał:

Na to sam wpadłem, ale nie ma nic dla nowych ATTiny. Czytając pierwszy dokument stwierdziłem że zastosuję filtr LC - nie zadziałał...

Edytowano przez pmochocki

Troszkę długo się tu nic nie działo, bo dopadła mnie praca, a dokładnie jej nadmiar. Dziś też nie miałem za dużo czasu, ale udało się kupić mikrofonowy przewód ekranowany i zrobić eksperymenty.

image.thumb.png.4f26dc7903b1d01ab2254a30db3059ff.png

IMG_20220203_004322_edit_1903351645449148.thumb.jpg.35ee1ad8797a305a5546ae1ce2b869e2.jpg

Jak widać zabieg ten pomógł i nie ma już losowego przerzucania na wyjściu komparatora. Będę musiał to uwzględnić projektując PCB. Zainstalowałem sobie już KiCada v6 i powoli uczę się jak znajdzie się wolna chwila.

Dnia 28.01.2022 o 17:56, MR1979 napisał:

Phil (z pierwszego linku) wypuścił niedawno bardzo fajny kurs projektowania dla początkujących (platforma UDEMY)

Kurs wykupiony 🙂 

Dnia 28.01.2022 o 17:56, MR1979 napisał:

oraz średniozaawansowanych (Fedevel Academy).

Tu na razie cena jest zaporowa ... 😞 

Mam nadzieję, że jutro uda się znów podłączyć część analogową i gitarę oraz sprawdzić jaką częstotliwość w ten sposób mierzę i czy pomiar jest stabilny.

  • Lubię! 2
  • 1 miesiąc później...
(edytowany)

Pewnie myśleliście, że projekt umarł, ale nie...
Troszkę zamieszania w życiu i w pracy, ale wczoraj dostałem doła z powodu tego co się dzieje na świecie. Stwierdziłem, że myśli trzeba przekierować na inne tory. Złożyłem znów całość. Połączyłem część cyfrową i analogową kablami ekranowanymi. Muszę to zrobić jeszcze dla połączenia gniazda i kabli dla UARTa. 

Mierzę częstotliwość i wypełnienie. Obecnie uśredniam dziesięć pomiarów, ale docelowo muszę wymyślić lepszą metodę, aby odrzucać złe pomiary, które pojawiają się zaraz po uderzeniu w strunę i gdy dźwięk już wygasa. Na razie wypisuje pomiary na serial i patrzę czy wypełnienie jest około 50%. Jeśli tak to uznaję, że częstotliwość jest wiarygodna.

Ale już teraz uprzędzenie pokazało swoją moc i pomogło mi się wyregulować menzurę.

IMG_20220304_143718.thumb.jpg.05e18e3cda16d563b4273401bcc7df17.jpg

Menzurę, czyli długość czynną struny, lub inaczej mówiąc odległość struny pomiędzy mostkiem a siodełkiem w gitarze. W  klasycznych konstrukcjach używany jest podstrunnik, który odpowiada za odpowiednią długość czynna każdej ze strun:

image.thumb.png.32f069413e63497b4c3e027689739e1d.png
https://guitarmagz.blogspot.com/2017/02/menzura-w-gitarze.html

W gitarze elektrycznej menzurę należy ustawić. I tak po zestrojeniu pustych strun, zacząłem sprawdzać częstotliwość na progu 12 (oznaczony podwójnymi kropkami):

IMG_20220304_143739_edit_126587382173912.thumb.jpg.1268761cb7f15ea5976f2766abfd543c.jpg

Na tym progu częstotliwość różni się o oktawę w stosunku do pustej struny. Czyli częstotliwość jest dwa razy większa. Zadanie było żmudne, ale było warto. Teraz stroi na wszystkich pozycjach na gryfie.

Edytowano przez pmochocki
  • Lubię! 2

@pmochocki fajnie, że wróciłeś 🙂 forum już się na nowo rozkręca i tak przeglądając wpisy właśnie zabrakło mi kogoś. Fakt jest nieciekawie, ale nie ma co się załamywać 🙂 też staram się robić coś jak za starych lepszych czasów.

  • Lubię! 2
(edytowany)

Dziś coś na poprawę humoru. Uruchamianie wyświetlacza SH1106 na I2C. Wyświetlacz ma 1.3" przekątnej i głównie dlatego był wybrany, bo inne w podobnej cenie były mniejsze. Okazało się, że ten sterownik ma fajną właściwość. Można dość precyzyjnie modyfikować jego bufor RAM:

sh1106.thumb.png.23ad6d391007b3b5c66b0b687e2e5acb.png

Całość jest podzielona na 8 stron. Każda strona składa się z 128 kolumn. A następnie w każda kolumna składa się z 8 wierszy pikseli.
Oczywiście można zawsze zarezerwować miejsce na mikrokontrolerze i odświeżać cały bufor. Ale w związku z tym, że jest możliwość odczytu RAMu wyświetlacza, można odczytać dany bajt i z ORować go z pixelem który chcemy wyświetlić.

Na początku prędkość nie powalała:

sh1106.thumb.gif.5534e41a60ba87f847244d9f1cab98e6.gif

Ale potem okazało się, że zamiast transmisji 100kHz można użyć 400kHz i to zgodnie ze specyfikacją. A tak na prawdę nawet 1MHz 😛 
Jest też plan roboczy jak całość można zoptymalizować. Dynamiczne dane związane ze strojeniem konkretnej struny będą zajmować 2-3 strony. Wtedy mogę te strony kasować i pisać do nich dane nie przejmując się co było wcześniej wyświetlone w tym obszarze.

Wiem, że komunikacja z wyświetlaczem to raczej nic ambitnego, ale chodziło raczej o to aby coś szybko zrobić w godzinkę i mieć z tego jakąś satysfakcję. 😉 

PS - Wyświetlacz jest biały, ale miałem problem z korektą kolorów przy nagrywaniu i na filmiku wygląda na niebieski...

 

Edytowano przez pmochocki

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...