10-11-2023, 16:31
Jak wspomniałem w innym poście, rozpocząłem zabawę z prockami STM32. Po jakiś prostych próbach z miganiem LEdami, chciałem zrobić coś bardziej złożonego. Postanowiłem zbudować "symulator" komputerka ZX Spectrum. Kupiłem płytkę - klon BlackPill - z prockiem STM32F401 (64kB RAM). Jako ekran planuje wykorzystać wyświetlacz LCD 320x240 na kontrolerze ILI9341. Wyświetlacz wypróbowałem podłaczając do FTDI232 i sterując z PC, potem podłączyłem do GPIO malinki i też działał. Przygotowałem projekt na STM pod arduino - jest biblioteka do tego wyświetlacza, jest emulator Z80, w zasadzie wystarczy. Projekt skonfigurowany do używania USB jako seriala - pod podłączeniu do kompa pojawia się port szeregowy. Próba szybkości wykazała, że można przesyłać 500kB/s tym "serialem". Wszystko działało na prostych, próbnych, fragmentarycznych projektach. Ale jak zebralem wszystko do kupy dostałem kod wynikowy wielkości 80kB (zawiera kopię oryginalnego ROMu ZX Spectrum). I pomimo, że kod na razie nic takiego nie robi mam kłopoty z USB - pod podłączeniu do kompa często nie zgłasza się "serial", komputer zgłasza jakieś błedy USB. Podejrzewam, że ten procek jest jakoś oszukany, jak to chińczycy potrafią, realnie ma mniej pamięci flash i RAM niż wynikałoby z typu.
Czy można jakoś sprawdzić typ (pewnie jakiś rejestr ID - ale to też może być oszukane) oraz wielkość pamięci - najlepiej poprzez testy. Identyczne problemy mam na płytce z STMF411 - która powinna mieć 512KB flash i 128kB RAM. Może USB działa trochę źle jak procek jest znacznie obciążony? Bo zwykle bootowanie po USB (jak się przytrzyma klawisz w trakcie zerowania - układ po USB zgłasza się inaczej) działa - a wtedy aplikacja użytkownika nie działa.
Czy można jakoś sprawdzić typ (pewnie jakiś rejestr ID - ale to też może być oszukane) oraz wielkość pamięci - najlepiej poprzez testy. Identyczne problemy mam na płytce z STMF411 - która powinna mieć 512KB flash i 128kB RAM. Może USB działa trochę źle jak procek jest znacznie obciążony? Bo zwykle bootowanie po USB (jak się przytrzyma klawisz w trakcie zerowania - układ po USB zgłasza się inaczej) działa - a wtedy aplikacja użytkownika nie działa.