Skocz do zawartości

Pomocna odpowiedź

(edytowany)
2 godziny temu, MR1979 napisał:

Zastosowałem 16-bitową pamięć w drugiej wersji konsolki. Było to tak wąskie gardło że musiałem zarzucić ten projekt i zaprojektować kolejną wersję z 32-bitową szyną danych. Przy czym muszę nadmienić że korzystałem z wyświetlacza 800x480. Przy 320x200 pewnie będzie ok.

Właściwie początkowo myślałem o wyświetlaczu 640x480, ale właśnie obawy o przepustowość pamięci (szczególnie w wersji z 16-bitową magistralą danych) skłoniły mnie do przemyślenia tej kwestii. Moim głównym planem jest odpalenie na tym produkcji retro (Doom, Wolfenstein, może jakiś emulator), więc 320x240 w zupełności wystarczy. Płytkę pewnie zacznę projektować z pamięcią 16 bit uważając jednak, żeby w miarę możliwości nie wykorzystać tych szesnastu pozostałych linii. Jeśli w finalnej wersji będą one nadal wolne, to przed wysłaniem projektu do fabryki podmienię SDRAM na jakiś 32-bitowy.

2 godziny temu, MR1979 napisał:

Co do dźwięku w DOOM, to tam masz próbki PCM i często się zdarza że odtwarzasz kilka sampli jednocześnie (np kilku przeciwników + odgłosy strzału).

To fakt. Czyli tak czy inaczej trzeba by ogarnąć cyfrowe miksowanie sampli...

2 godziny temu, MR1979 napisał:

Co do muzyki to nie jest MID, tylko MUS. Musisz przekonwertować format. Moja konsola nie odtwarza MID i poratowałem tak że zrobiłem konwersję mus->mid->mp3 i tak odtwarzałem ścieżki. Konwersja MUS->MID nie jest trudna. Gdzieś w sieci znalazłem kod w C.

Hmm... W takim wypadku użycie VS1053 broniłoby się o tyle, że odtwarzanie MP3 za pomocą tego układu jest banalne. Po prostu czytamy dane ze źródła i wysyłamy je do kodeka przez SPI. Jeśli konwersja MUS->MIDI jest lekka operacją i może być robiona w czasie rzeczywistym (lub szybciej) przez procesor konsolki, to też poradzi sobie z odtwarzaniem tego soundtracku. Niemniej byłby potrzebny jeszcze jeden DAC w roli osobnego kanału na efekty dźwiękowe. Tylko musiałbym doczytać/sprawdzić jak dobrze VS1053 radzi sobie z miksowaniem dwóch sygnałów w domenie analogowej.

Na początku dźwięk i tak sobie odpuszczę, jednak finalnie chciałbym dodać jego obsługę. Więc jakiś obwód audio na pewno znajdzie się na płytce. Jeszcze nie wiem jak skomplikowany. Ścieżka dźwiękowa to w końcu nieodłączny element Dooma. 😉

Co prawda wytypowany do projektu MCU nie ma dwóch rdzeni, ale zakładam, że sobie poradzi. Biorę pod uwagę użycie w projekcie FreeRTOS-a. Wtedy sama gra mogłaby zostać odpalona wewnątrz jednego tasku, a drugi zajmowałby się operacjami związanymi z obsługą audio. Są też inne opcje - można by np. wcisnąć na płytkę jakiś pomocniczy procesor DSP, ale to już za duża komplikacja projektu. 😉

2 godziny temu, MR1979 napisał:

Ja wybrałem opcję 1.

 

Dzięki. Od tego zacznę. 😉

Edytowano przez atlantis86
  • Lubię! 1
(edytowany)

Lepiej daruj sobie muzykę. Sample miksuj na procku a później albo przez wbudowany DAC na jakiś analogowy wzmacniacz audio albo przez I2S do układu typu MAX98357. 

Co do pozycji SDRAM to zrób jak ci będzie najwygodniej. Ja przylutowałem po przeciwnej stronie dlatego żeby płytka się zmieściła w obudowie.

Edytowano przez MR1979
  • Lubię! 1
2 godziny temu, MR1979 napisał:

Lepiej daruj sobie muzykę.

Na początku tak zrobię, ale jednak będę dążył do tego, żeby urządzenie jednak obsługiwało muzykę, bo jest ona dość ważnym elementem gier, które chciałem na tym odpalić. Poza tym odtwarzaniem muzyki zajmowało się kilka z moich dotychczasowych projektów - radia internetowe na PIC32 oraz odtwarzacz audio na STM32, więc jakieś doświadczenie mam. 😉

2 godziny temu, MR1979 napisał:

Sample miksuj na procku a później albo przez wbudowany DAC na jakiś analogowy wzmacniacz audio albo przez I2S do układu typu MAX98357.

Pewnie własnie tak zrobię. I własnie gdybym dodał do tego jeszcze VS1053, to miałbym osobny kanał do odtwarzania muzyki, choćby nawet skonwertowanej do MP3. A jedynym obciążeniem dla procesora byłoby przesyłanie danych przez SPI.

2 godziny temu, MR1979 napisał:

Co do pozycji SDRAM to zrób jak ci będzie najwygodniej. Ja przylutowałem po przeciwnej stronie dlatego żeby płytka się zmieściła w obudowie.

To akurat nie będzie ograniczeniem w moim przypadku. Mam zamiar zastosować wyświetlacz 5,7", pod którym będzie sporo miejsca na płytkę.

BTW, wyświetlacz użyty w twoim projekcie był podłączony przez LTDC?

  • Lubię! 1

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