Skocz do zawartości

Stroik do gitary elektrycznej


Pomocna odpowiedź

Czy to są problemy wieku dziecięcego? 

Nowe ATTiny z serii 0 i 1 mają różne rodzaje liczników, które spierają rozmaite tryby pracy. Wydaje się, że licznik TCB w ATTiny414 ma tryb, który został stworzony dokładnie do tego czego potrzebuje - Input Capture Frequency Measurement:

image.thumb.png.dd548110faa4b64f3b4ce1573bd293b3.png

Przy dowolnie wybranym zboczu, licznik przepisuje wartość do CCMP i CAPT, resetuje się i wyzwala przerwanie. Wszystko pięknie, ale od wtorku zastanawiam się jak w takim przypadku obsłużyć sytuację kiedy następuje przepełnienie licznika, co by zachodziło przy częstotliwościowych, które mnie interesują. Licznik ten ma bardzo ograniczony prescaler, który dzieli zegar na dwa. Można co prawda wymusić tryb użycia zegara z licznika TCA, który ma bardziej rozbudowany prescaler, ale wtedy ograniczamy możliwości zastosowania TCA. Można obniżyć częstotliwość zegara głównego, ale nadal jest trudno obsłużyć w ten sposób sytuację kiedy z jakiegoś powodu impuls się wydłuży. Myślałem, żeby może wysłać event z jednego licznika do drugiego i w ten sposób używać jednego licznika do mierzenia długości impulsu, a drugiego do wykrywania przepełnienia.

Ale to jest "overcomplicated", przecież logicznym jest, że w momencie przepełnienia licznika, coś powinno się wydarzyć, coś innego oprócz liczenia od zera oczywiście. Niestety nota katalogowa jest jednoznaczna - nic innego się nie dzieje:

image.thumb.png.333d0f46962ccc619f0d531b35d47d7d.png

Czy tylko mi brakuje takiej funkcjonalności? Wychodzi na to, że nie. Bo jak zajrzymy (co uczyniłem dziś) do noty katalogowej układów ATTiny z serii 2 to co widzimy:

image.thumb.png.aaeba1bba3ada6601d2596c84b70a4ba.png

Zostało dołożone w tym trybie jeszcze jedno przerwanie. Czyli nowy układ zachowuje się dokładnie jakbym tego oczekiwał. 

Płyną z tego dwa wnioski:

  1. Mógłbym projektować mikrokontrolery 🙂
  2. Niestety ATTiny z serii 0 i 1 cierpią na problemy wieku dziecięcego, ale na szczęście Microchip stara je się naprawiać w serii 2.

Nie wiem ile jeszcze takich poprawek odkryję. Na razie mam dwie, które wydają się dla mnie w wielu zastosowaniach kluczowe. Ta tu właśnie opisana i możliwość kalibracji zegara sterowanego przez kwarc zegarkowy.

Link to post
Share on other sites
(edytowany)

Mikrokontroler ma wbudowany komparator, więc powinien mieć również przerwanie od przejścia sygnału przez zero (zbocze roznące i/lub opadające do wyboru). Ustaw dowolny timer jaki ci pasuje niech liczy non stop. W obsłudze przerwania on komparatora odczytaj wartość rejestru timera na moment przerwania oraz oblicz okres porównując z wartością poprzednią. Skoryguj okres o błąd oscylatora. Uaktualnij wartość średnią. Zapisz aktualną wartość licznika jako poprzednią:
Tsr(t) = 0.9 * Tsr(t-1) + 0.1 * Tzmierzone

F  = 1/Tśr - Dalej już wiesz co z tym zrobić, bo pewnie chcesz aby ci wyświetlało literę dźwięku muzycznego i czy jesteś poniżej czy powyżej.

Upewnij się tylko że zakres liczenia timera obejmuje dłuższy okres niż spodziewany przy najniżeszej częstotliwości. Ułatwi to liczenie różnicy modulo.

 

Edytowano przez MR1979
  • Lubię! 1
Link to post
Share on other sites
5 minut temu, MR1979 napisał:

Ustaw dowolny timer jaki ci pasuje niech liczy non stop. W obsłudze przerwania on komparatora odczytaj wartość rejestru timera na moment przerwania oraz oblicz okres porównując z wartością poprzednią. Skoryguj okres o błąd oscylatora. Uaktualnij wartość średnią. Zapisz aktualną wartość licznika jako poprzednią

W tym kierunku też zmierzałem na początku, ale jak chcesz zmierzyć częstotliwość i w nocie katalogowej czytasz: Input Capture Frequency Measurement Mode - no to aż się prosi, żeby rozkminić temat. Przecież nie spodziewałem się, że znajdę taką "lukę". Byłem przekonany, że mi coś umyka i nie potrafię z tego dobrze skorzystać. A tu się okazało, że to chyba jednak inżynierom z Microchipa coś umknęło...

Link to post
Share on other sites
(edytowany)
Dnia 18.01.2022 o 09:43, pmochocki napisał:

Wczoraj usiałem znów do tego projektu. Jakie było moje zdziwienie, gdy się okazało, że zegar z kwarcu zegarkowego nie da się przekierować na żaden licznik oprócz RTC. Myślałem aby wykorzystać system eventów, ale wtedy zegar jest jeszcze dodatkowo dzielony i dokładność będzie mizerna.

Sprawdziłem to na https://start.atmel.com/ no i wyszło mi że timery mogą być taktowane bezpośrednio z zewnętrznego kwarcu bez prescalera. Popatrz

timer.thumb.JPG.614bedc424744c719c3ee913352a10b1.JPG

No tak problemem może być że w tej konfiguracji rdzeń też jest taktowany tym zewnętrznym zegarem

Edytowano przez _LM_
Link to post
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

(edytowany)
11 godzin temu, _LM_ napisał:

No tak problemem może być że w tej konfiguracji rdzeń też jest taktowany tym zewnętrznym zegarem

No właśnie. Taktowanie całości kwarcem zegarkowym, to chyba nie jest dobry pomysł.

Wczoraj spędziłem wieczór bawiąc się Atmel Start. Nie mam jeszcze wyrobionego zdania o tym narzędzia, ale generowanie kodu do ustawień peryferiów ma sens. Na razie planowałem użyć 10MHz:

 image.thumb.png.b7c22256bc2ba4b919b9d8fc85345134.png

W TCB0 mogę go podzielić na 2:

image.thumb.png.f0e53aa92dac4a9c1881ed92ee75d4e9.png

Przy 5MHz i 16bit liczniku powinienem mieć dość zakresu przy najniższej częstotliwości, która mnie interesuje (82.41 Hz). Potem będę się zastanawiał czy użyję kwarcu zegarkowego, aby policzyć błąd wewnętrznego oscylatora. Czy może szarpnę się na całe 15zł i kupię temperaturowo skompensowany zegar o 2.5ppm. Mam nadzieję, że dzieci zaraz pójdą spać i uda mi się sprawdzić to co wczoraj kodowałem w ciemno...

 

Edytowano przez pmochocki
Link to post
Share on other sites
(edytowany)

To co programowałem wczoraj w ciemno, wydaje się działać. Struna B3:

Frequency: 246Hz
Duty cycle: 48.8
Frequency: 245Hz
Duty cycle: 48.8
Frequency: 246Hz
Duty cycle: 51.1

Nie doszedłem do sprawdzania dokładności, bo znów pojawiło się duże ALE... Mimo włączonej histerezy wyjście komparatora czasami wariuje. Na początku myślałem, że to może szumy z zasilacza, czy coś w tym stylu, ale nie... Wystarczyło zbadać wejście do AC:

SDS00001.thumb.png.c1a8e96172a86c6b3eb351d53391da4e.png

Problem pojawia się raz na sekundę i to jest moment wysyłania danych po serialu. Muszę przemyśleć zasilanie części analogowej...

Edytowano przez pmochocki
Link to post
Share on other sites
48 minut temu, pmochocki napisał:

Nie doszedłem do sprawdzania dokładności

o właśnie... z jaką dokładnością (w centach) chcesz mierzyć częstotliwość?

  • Lubię! 2
Link to post
Share on other sites
38 minut temu, pmochocki napisał:

muszę pomyśleć jak sprawić, aby używanie seriala nie wpływało na pomiar

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

39 minut temu, pmochocki napisał:

Efekt pewnie jest potęgowany faktem, że gitara jest w rozmiarze 3/4 dla dziecka

To akurat najmniej ważne. Ukulele jest jeszcze mniejsze a zasada strojenia jest taka sama.

Tak w ogóle to zadałem pytanie kontrolnie i nie oczekiwałem wykładu, ale coś dorzucę.

Dokładność 5 centów jest aż nadto wystarczająca - to jest mniej więcej granica rozdzielczości słuchu (przy słuchu absolutnym). Tak więc upływność zegara możesz spokojnie pominąć.

Ważniejsze jest wzajemne zestrojenie strun niż dostrojenie do jakiegoś teoretycznego wzorca. Czasem zachodzi konieczność przestrojenia gitary np. o pół tonu czy cały ton w dół (w górę można użyć kapodastera) aby dostosować się do technicznych możliwości "śpiewaka" (no, chyba że opanowałeś sztukę transpozycji i potrafisz zagrać w fis-dur coś co zawsze grałeś w g). W takiej sytuacji częstotliwości są zupełnie inne, chociaż ich wzajemny stosunek pozostaje ten sam.

Również często zachodzi potrzeba dostrojenia gitary do innego instrumentu, który nie daje się tak łatwo stroić (raczej nie wyobrażam sobie strojenia pianina przez kogoś innego niż zawodowy stroiciel, a takie coś - szczególnie takie używane przez okazjonalnych muzyków czy stojące w jakiejś knajpie - potrafi puścić nawet ćwierć tonu w dół).

O strojach otwartych już nie wspomnę...

Pomyśl o tym, jeśli chcesz zrobić coś co będzie w jakiś sposób użyteczne a nie tylko wynikiem eksperymentów, który będzie leżał sobie w szufladzie i się kurzył.

 

 

 

  • Lubię! 2
Link to post
Share on other sites
19 minut temu, ethanak napisał:

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

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

20 minut temu, ethanak napisał:

Tak w ogóle to zadałem pytanie kontrolnie i nie oczekiwałem wykładu,

Przepraszam, że wyszło jak wykład. Raczej chciałem przedstawić swój tok rozumowania. Jak już zacząłem sprawdzać i liczyć wszystko na kartce i upewniać się w necie, że to co piszę ma sens, to stwierdziłem, że mogę wszystko napisać tu na forum.

30 minut temu, ethanak napisał:

Ważniejsze jest wzajemne zestrojenie strun niż dostrojenie do jakiegoś teoretycznego wzorca. Czasem zachodzi konieczność przestrojenia gitary np. o pół tonu czy cały ton w dół (w górę można użyć kapodastera) aby dostosować się do technicznych możliwości "śpiewaka" (no, chyba że opanowałeś sztukę transpozycji i potrafisz zagrać w fis-dur coś co zawsze grałeś w g). W takiej sytuacji częstotliwości są zupełnie inne, chociaż ich wzajemny stosunek pozostaje ten sam.

Również często zachodzi potrzeba dostrojenia gitary do innego instrumentu, który nie daje się tak łatwo stroić (raczej nie wyobrażam sobie strojenia pianina przez kogoś innego niż zawodowy stroiciel, a takie coś - szczególnie takie używane przez okazjonalnych muzyków czy stojące w jakiejś knajpie - potrafi puścić nawet ćwierć tonu w dół).

O strojach otwartych już nie wspomnę...

Pomyśl o tym, jeśli chcesz zrobić coś co będzie w jakiś sposób użyteczne a nie tylko wynikiem eksperymentów, który będzie leżał sobie w szufladzie i się kurzył.

Hmmm... może to jest moment, gdzie trzeba sobie powiedzieć, że pomysł jest nietrafiony... Kamerton można kupić za 15zł 🙂 Z drugiej strony fajnie by było dokończyć... Z trzeciej strony można przenieść zebrane doświadczenia i zrobić coś przydatnego: np mikrofon USB do gitary elektrycznej...

 

Link to post
Share on other sites

Myślę że jak już ogarniesz precyzyjny pomiar częstotliwości to wszystkie pozostałe wymagania o których wspomniał @ethanak to już tylko oprogramowanie i interfejs użytkownika.

Nie znam się na muzyce i całym tym strojeniu ale wydaje mi się że chodzi o to żeby urządzenie pokazywało na jakiejś skali najbliższą częstotliwościowo nutę oraz odchylenie w centach.

Mam nadzieję że doprowadzisz projekt do końca.

  • Lubię! 2
Link to post
Share on other sites
24 minuty temu, MR1979 napisał:

wszystkie pozostałe wymagania o których wspomniał @ethanak to już tylko oprogramowanie i interfejs użytkownika.

Dokładnie tak.

A mi się w głowie zrodził zarys takiego urządzenia...

Przede wszystkim: zakładam, że o ile jedną strunę masz nastrojoną, to do reszty nie trzeba żadnych kamertonów, mierników czy innych wymyślnych urządzeń; jeśli wiesz na którym progu na danej strunie masz dany dźwięk to wszystko sprowadza się do odróżnienia czy dwa dźwięki są takie same (ew. czy różnica między nimi to oktawa albo dwie). Bez tego należy jak najszybciej sprawdzić swój talent w dziedzinie malarstwa, poezji czy tworzenia kolejnych tomów Star Wars 🙂 Czyli rzecz musi sprowadzić się do porównania na słuch danej struny albo z inną, albo nawet z kamertonem.

Wyobraźmy więc sobie taki bardziej skomplikowany kamerton, który potrafi dostroić się do innego źródła. Może to być np. druga gitara (której właściciel nie pozwala tknąć, a która jest "deczko" odstrojona), jakieś rzężące pianino, jakiś mniej lub bardziej profesjonalny odpowiednik cymbałków (marimba? wibrafon?) czy nawet te właśnie dziecięce cymbałki. Niech taki kamerton potrafi przyjąć za podstawę nie ustaloną odgórnie częstotliwość, a dźwięk wydawany przez ów instrument. Przykładowo - uderzamy w 'a' i to, co zmierzy miernik brane jest za 'a' zamiast koszernego 440 Hz. Niech dalej ten kamerton potrafi na tej podstawie wyemitować dźwięk odpowiadający każdej nucie w obrębie oktawy - to może być bardzo przydatne szczególnie w tanich gitarkach, które niespecjalnie dobrze stroją po progach (czyli trzeba stroić na progu), a jednocześnie załatwia stroje otwarte.

Może coś w tym kierunku? Bo przecież zostaje ten cały miernik częstotliwości, do tego jakiś fikuśny generator no i trochę softu?

@pmochocki - co o tym sądzisz?

 

 

 

 

 

  • Lubię! 1
Link to post
Share on other sites
23 minuty temu, ethanak napisał:

Może coś w tym kierunku? Bo przecież zostaje ten cały miernik częstotliwości, do tego jakiś fikuśny generator no i trochę softu?

Wygląda na ciekawą propozycję, dochodzi obsługa mikrofonu i głośnika.

25 minut temu, ethanak napisał:

to może być bardzo przydatne szczególnie w tanich gitarkach, które niespecjalnie dobrze stroją po progach (czyli trzeba stroić na progu)

Co oznacza po progach i na progu? Nie zrozumiałem, a mnie zaciekawiłeś...

14 minut temu, Zealota napisał:

A może wykorzystać tę o to koncepcję 🙂

https://ep.com.pl/projekty/projekty-ep/11968-stroik-gitarowy

Ciekawa propozycja. Dzięki za link.

Link to post
Share on other sites
6 minut temu, pmochocki napisał:

Co oznacza po progach i na progu?

Te co nie stroją po progach to takie gitary, co jak nastroisz strunę na 'e' to na pierwszym progu zagra zamiast 'f' to 'f z kawałkiem' 🙂

W takiej sytuacji nie możesz stroić pustych strun.

 

Link to post
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.