Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2866
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    216

Elvis zajął 1. miejsce w rankingu.
Data osiągnięcia: 12 maja.

Treści użytkownika Elvis zdobyły tego dnia najwięcej polubień!

Reputacja

1507 Mistrz

3 obserwujących

O Elvis

  • Ranga
    8/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Warszawa
  • Zawód
    programista
  • Moje zainteresowania:
    Linux, STM32, FPGA

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Cześć @Gieneq Pisałem na szybko, więc może nieco nieprecyzyjnie się wyraziłem. Chodziło mi o sprawdzenie jak zachowuje się ADS1256, kiedy odbierasz z niego 32 bity, czyli 4 bajty w trybie DMA. Dla SPI nie ma różnicy czy to 4x8b czy 1x32b, DMA jest ważne, żeby między danymi nie było przerw. Nie mam niestety tego układu, więc nie mogę przetestować, ale ciekaw jestem jak zachowa się pin DRDY jeśli będziemy odbierać >24 bity. Kolejny test to byłoby odebranie 8 bajtów i obserwacja DRDY. Przy odrobinie szczęścia i taktowaniu ADS1256 z 8MHz oraz ustawieniu SPI na 1MHz, mogłoby
  2. To może jeszcze jeden test - czy jeśli wywołanie GPS() zastąpisz czekaniem (Delay) przez powiedzmy 200ms, to program będzie działał? Wydaje mi się, że dla krótkich komend, czyli "Z" i "W" powinien działać, natomiast dla długich "GPS_ON"/"GPS_OFF" ma prawo mieć problemy. Ale warto byłoby to sprawdzić. Bo jeśli działa dla "Z" i "W" to raczej problem nie wynika z przepełniania bufora Serial2 i może trzeba poszukać innej przyczyny.
  3. Ciekawe, też myślałem że problemem jest odczyt z serial2, ale teensy 4.0 ma niby 4 bajtowy bufor, wiec dla krótkiego komunikatu powinno działać. Ale skoro nie działa, to może problem jest gdzie indziej. Czy serial2 to sprzętowy uart, czy SoftSerial?
  4. @keram167 czy mógłbyś zrobić mały test i zamiast GPS_ON i GPS_OFF użyć krótkich napisów, np. „N”, „F”?
  5. Faktycznie, jest tam więcej przykładów. Chociaż z tego co widzę to są one przeznaczone dla innych płytek: Ale warto chociaż spróbować, może faktycznie GW1NSR4C ma pamięć zintegrowaną. Inna sprawa, to nie wiem, czy model użyty w płytkach Sipeed nie ma prędzej HyperRAM niż PSRAM. W dokumentacji jest taki fragment: Wygląda jakby typ pamięci zależał od obudowy. Więc największa szansa, że w modułach Sipeed znajdzie się pamięć HyperRam. Ale moim zdaniem jedyny sposób na sensowną zabawę GW1NSR4C to kupienie jednej z płytek ewaluacyjnych. Ten wynalazek Sipeed jest delikatn
  6. Gdzie jest ten program testujący PSRAM?
  7. Trochę to dziwne - w przypadku stm32, powiedzmy stm32f429 jest tak, że pamięć nie jest zintegrowana, ale sterownik tak. Więc po podłączeniu i skonfigurowaniu zewnętrznej pamięci jest widoczna w przestrzeni adresowej jak wewnętrzny SRAM, czy Flash. Tylko dostępy są wolniejsze - ale jeśli nie zależy na szybkości, to można w niej nawet stos umieścić, a już stertę to jak najbardziej. Niestety bez pamięci cache, używanie pamięci po SPI/QSPI jest średnio wydajne. ESP32 ma właśnie dlatego cache dla danych i instrukcji, podobnie jest z większością mikroprocesorów.
  8. Czytam sobie na szybko o tej pamięci i moim zdaniem do ściema. Tutaj jest schemat z dokumentacji układu: PSRAM jest podłączony przez IOB, czyli to pamięć zewnętrzna. To nawet pasuje do dokumentacji IPU6525E, gdzie jako przykład podają układ W955D8MBYA, czyli zwykłą pamięć Winbond-a, nic zintegrowanego. Ciężko zrozumieć tę ich dokumentację, ale moim zdaniem zintegrowany jest tylko sterownik dla 64Mb pamięci PSRAM, 64Mb pamięci hyper i 32Mb flash. Na płytce Sipeed jest tylko flash, a reszta to "błąd w tłumaczeniu" - tylko przypadkowo na korzyść producenta
  9. Edit: Chociaż może i faktycznie ta pamięć jest zintegrowana... W dokumentacji na stronie: https://alcom.eu/uploads/gOWIN-DS861-1.4.2E_GW1NSR-series-of-FPGA-Products-Datasheet.pdf jest coś takiego: Jeśli faktycznie ten układ ma 64Mb PSRAM + 64Mb HyperRAM + 32Mb Flash to super. Informacja jak używać pamięci PSRAM jest tutaj: http://cdn.gowinsemi.com.cn/IPUG525E.pdf
  10. Jak chodzi o pamięć to na pewno dostępne jest co zdefiniowano w skrypcie linkera: /* @Description Linker script for GW1NS-4C Device with 32K-Byte FLASH, 16K-Byte RAM * Set heap size, stack size and stack location according to application * requirements. * Set memory bank area and size if external memory is used. */ MEMORY { FLASH (rx) : ORIGIN = 0x0, LENGTH = 0x8000 /* 32KByte */ RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x4000 /* 16KByte */ } Na schemacie modułu Tang Nano 4K jest widoczna zewnętrzna pamięć Flash, jest jej 32mbit-y, czyli 4MB, podłączona j
  11. @Gieneq Próbowałeś może czytać 32 bity zamiast 24 z tego czujnika? Bo gdyby to działało poprawnie, tzn. ostatnie 8 bitów byłoby nieistotne, ale można byłoby spróbować bardzo uprościć całe zadanie. Przeczytałem tylko wyrywkowo i bardzo pobieżnie dokumentację od ADS1256, ale zauważyłem kilka ciekawych informacji. Po pierwsze samplowanie 30SPS jest podawane dla zegara f=7.68MHz. To "domyślna" konfiguracja, ale nie jedyna możliwa, można używać sygnału o częstotliwości od 0.1 do 10 MHz. Jeśli podzielimy 7.68MHz przez 30kHz to wychdzi równo 256, więc można się domyślać, że tyle trwa konwer
  12. @Gieneq Przerwanie jak najbardziej, ale po a nie przed transmisją. Czyli DMA powinno wykonać odczyt, a jak skończy to generowane jest przerwanie. Konfigurując DMA w trybie circular z przerwaniem w połowie mamy sporo czasu na obsługę przerwania, więc kolejny transfer może się rozpocząc nawet podczas wykonywanie procedury obsługi przerwania od poprzedniego. A co do ilości kodu w bibliotece HAL... to delikatnie mówiąc jest mało optymalna, SPI dla Arduino jest o wiele lepiej napisane. Więc jeśli w przerwaniu dopiero konfigurujesz transfer przez SPI to musi trwać wieki. Można użyć LL, ale najl
  13. Na stronie AliExpress jest informacja o 64mb, czyli 8MB pamięci PSRAM... ale nie jestem pewien, czy to prawda. O ile kontroler pamięci brzmi sensownie, to zintegrowana pamięć wydaje się nieco zbyt piękna. Jak chodzi o flash to jest trochę zintegrowanego - podobno 256kbit, więc nie za dużo, ale na bootloader wystarczy. Dodatkowe 32mb jest na płytce, podłączone przez SPI. Po przejściach z JTAG-iem mam bardzo ograniczone zaufanie do parametrów podawanych przez tego producenta Szkoda, bo układ zapowiadał się bardzo ciekawie, ale może pojawią się inne płytki, z lepszą dokumentacją i programa
  14. @FlyingDutch Mam kilka różnych J-Linków, najwięcej używałem wersji dedykowanej dla układów Atmela, nazywało się to chyba SAM-BA, w każdym razie był to zwykły J-Link z licencją na układy Atmel. Poza tym mam kilka programatorów z licencją "edu" i jeden J-Trace Pro. Przyznam się też że raz kupiłem "klona"... i przestał działać po aktualizacji softu. Więc ogólnie jak chodzi o J-Link to mam czym testować, a klonów stanowczo nie polecam.
  15. Nie próbowałem, bo te piny na płytce Sipeed są już podłączone... i nie miałem odwagi podłączać 2 programatorów jednocześnie. Gdzieś w sieci widziałem dokumentację, gdzie im to działało jako J-Link... dziwne trochę, ale gdyby nie licencja to pewnie miałoby szansę zadziałać, w końcu FT232H w zupełności wystarcza jako JTAG. Udało mi się zaprogramować ten układ tak jak opisałeś - tworząc plik z wsadu dla FPGA oraz programu i wgrywając wszystko do pamięci flash. Niestety zajmuje to sporo czasu, więc pisanie programu byłoby mega męczące. Teraz nie mogę odszukać tej dokumentacji, powin
×
×
  • 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.