Goto page 1, 2 Next
heby
Guest
Sun Jan 21, 2024 11:56 pm
Cześć.
Czasami przydałby się jakiś prosty przyrząd, potrafiący "odtworzyć"
pewna sekwencję logiczną na wyjsciach.
Obecnie mam taki problem, że musze zdebugować dość złożony problem, na
około 16 liniach logicznych. Częstotliwości rzędu pojedynczych MHz. W
zasadzie potrzebuję tylko sterować liniami, bez czytania (ale z
czytaniem, przynajmniej kilku, była by bajka).
Widział ktoś może jakiś projekt takiego "odtwarzacza", do którego mogę
wrzucić "nagranie" w formacie VCD oraz, najlepiej, miałby jakieś API do
pythona lub C++?
To jest o rząd wielkości bardziej skomplikowane niż taki BusPirate.
Szukam bardziej projektu DIY niż gotowca.
Nie chcę tego robić samodzielnie. To ciężka orka jest. Ostatecznie wezmę
Pi Pico, ale dalej: to jest ogrom pracy, może ktoś już to zrobił.
Ghost
Guest
Mon Jan 22, 2024 9:50 am
W dniu 21.01.2024 o 22:56, heby pisze:
Quote:
Cześć.
Czasami przydałby się jakiś prosty przyrząd, potrafiący "odtworzyć"
pewna sekwencję logiczną na wyjsciach.
Obecnie mam taki problem, że musze zdebugować dość złożony problem, na
około 16 liniach logicznych. Częstotliwości rzędu pojedynczych MHz. W
zasadzie potrzebuję tylko sterować liniami, bez czytania (ale z
czytaniem, przynajmniej kilku, była by bajka).
Widział ktoś może jakiś projekt takiego "odtwarzacza", do którego mogę
wrzucić "nagranie" w formacie VCD oraz, najlepiej, miałby jakieś API do
pythona lub C++?
To jest o rząd wielkości bardziej skomplikowane niż taki BusPirate.
Szukam bardziej projektu DIY niż gotowca.
Nie chcę tego robić samodzielnie. To ciężka orka jest. Ostatecznie wezmę
Pi Pico, ale dalej: to jest ogrom pracy, może ktoś już to zrobił.
Moze czegos nie dostrzegam, dlaczego ma to byc ogrom (przy jakiejs
amatorskiej rozdzielczosci)?
heby
Guest
Mon Jan 22, 2024 11:19 am
On 22/01/2024 08:50, Ghost wrote:
Quote:
Nie chcę tego robić samodzielnie. To ciężka orka jest. Ostatecznie
wezmę Pi Pico, ale dalej: to jest ogrom pracy, może ktoś już to zrobił.
Moze czegos nie dostrzegam, dlaczego ma to byc ogrom (przy jakiejs
amatorskiej rozdzielczosci)?
1) trzeba zaprojektować trasport USB na zasadzie double buffer i
sensowny koncept kompresji w locie. To jest tygodnie pracy, w jakiejś
prostej wersji, głównie po stronie uC. To nie jest machanie 2 drutami,
tylko, powiedzmy, naście sekund "nagrania", czyli pewnie grube megabajty
danych.
2) Trzeba zaprojektować sprytnie elektronike, być może potrzebna będzie
translacja poziomów, dwukierunkowa, jakies kreatywne wykorzystanie
przerwań, zatrzasków itd do uzyskania dużej rozdzielczości czasowej.
3) Trzeba wykombinować abstrakcyjny clock distribution w środku uC aby
odtwarzanie eventów odbywało się w precyzyjny sposób, zgodny z czasem
rzeczywistym.
3) Trzeba stworzyc jakąs namiastkę aplikacji, choćby prosty player z
konsoli, jakies API itd.
4) Trzeba poprawić dziesietki bugów.
Na oko pół roku walki aby uzyskac jako tako uniwersalne narzędzie i to w
jakiejś kompromisowej wersji. Pełnie: ciężko ocenić.
Zapewne, do jednego zastosowania dało by radę odpierniczyć byle jak,
zahardkodować "nagranie" w Flashu i napisać na kolanie machanie drutami.
Rzecz w tym, że ja chce symulować w *HDL jakąs magistrale, wynikowy plik
VCD załadować do takiego magnetofonu i odtworzyć, majac za kazdym razem
stabilne warunki do debugowania kodu w prawdziwym hardware.
To by się mi przydało już kilka razy, więc przyda się pewnie kilka
nastepnych razy.
Stąd pytanie o uniwersalny. Jestem zmęczony programowaniem kolejnego AVR
na "jeden raz" udającego master magistrali ISA, czy coś w tym guście.
Ghost
Guest
Mon Jan 22, 2024 1:29 pm
W dniu 22.01.2024 o 10:19, heby pisze:
Quote:
On 22/01/2024 08:50, Ghost wrote:
Nie chcę tego robić samodzielnie. To ciężka orka jest. Ostatecznie
wezmę Pi Pico, ale dalej: to jest ogrom pracy, może ktoś już to zrobił.
Moze czegos nie dostrzegam, dlaczego ma to byc ogrom (przy jakiejs
amatorskiej rozdzielczosci)?
1) trzeba zaprojektować trasport USB na zasadzie double buffer i
sensowny koncept kompresji w locie. To jest tygodnie pracy, w jakiejś
prostej wersji, głównie po stronie uC. To nie jest machanie 2 drutami,
tylko, powiedzmy, naście sekund "nagrania", czyli pewnie grube megabajty
danych.
2) Trzeba zaprojektować sprytnie elektronike, być może potrzebna będzie
translacja poziomów, dwukierunkowa, jakies kreatywne wykorzystanie
przerwań, zatrzasków itd do uzyskania dużej rozdzielczości czasowej.
3) Trzeba wykombinować abstrakcyjny clock distribution w środku uC aby
odtwarzanie eventów odbywało się w precyzyjny sposób, zgodny z czasem
rzeczywistym.
3) Trzeba stworzyc jakąs namiastkę aplikacji, choćby prosty player z
konsoli, jakies API itd.
4) Trzeba poprawić dziesietki bugów.
Na oko pół roku walki aby uzyskac jako tako uniwersalne narzędzie i to w
jakiejś kompromisowej wersji. Pełnie: ciężko ocenić.
Zapewne, do jednego zastosowania dało by radę odpierniczyć byle jak,
zahardkodować "nagranie" w Flashu i napisać na kolanie machanie drutami.
Rzecz w tym, że ja chce symulować w *HDL jakąs magistrale, wynikowy plik
VCD załadować do takiego magnetofonu i odtworzyć, majac za kazdym razem
stabilne warunki do debugowania kodu w prawdziwym hardware.
To by się mi przydało już kilka razy, więc przyda się pewnie kilka
nastepnych razy.
Stąd pytanie o uniwersalny. Jestem zmęczony programowaniem kolejnego AVR
na "jeden raz" udającego master magistrali ISA, czy coś w tym guście.
ale tak na prawde brakuje ci tylko playera
heby
Guest
Mon Jan 22, 2024 1:35 pm
On 22/01/2024 12:29, Ghost wrote:
Quote:
ale tak na prawde brakuje ci tylko playera
Tak, "tylko" playera.
Cezar
Guest
Mon Jan 22, 2024 1:46 pm
On 21/01/2024 21:56, heby wrote:
Quote:
Cześć.
Czasami przydałby się jakiś prosty przyrząd, potrafiący "odtworzyć"
pewna sekwencję logiczną na wyjsciach.
Obecnie mam taki problem, że musze zdebugować dość złożony problem, na
około 16 liniach logicznych. Częstotliwości rzędu pojedynczych MHz. W
zasadzie potrzebuję tylko sterować liniami, bez czytania (ale z
czytaniem, przynajmniej kilku, była by bajka).
Widział ktoś może jakiś projekt takiego "odtwarzacza", do którego mogę
wrzucić "nagranie" w formacie VCD oraz, najlepiej, miałby jakieś API do
pythona lub C++?
To jest o rząd wielkości bardziej skomplikowane niż taki BusPirate.
Szukam bardziej projektu DIY niż gotowca.
Nie chcę tego robić samodzielnie. To ciężka orka jest. Ostatecznie wezmę
Pi Pico, ale dalej: to jest ogrom pracy, może ktoś już to zrobił.
Kiedyś (jakieś 8-10 lat temu) do podobnych celów używałem płytki z
FT2232H a dokładnie do odczytywania i pisania pamięci równoległych NAND.
Jest tam opcja synchronicznego bit-bang i do tego dość dobre biblioteki
w pythonie.
Ma też funkcję typu "Host Bus Emulation Mode" gdzie może emulować szynę
AT lub dowolnego MCU / CPU
https://ftdichip.com/software-examples/mpsse-projects/#HostBusEmulation
Gotowe płytki są do dostania:
https://www.ebay.co.uk/itm/195476693047 -
Z tego co pamiętam to każdy kanał można osobno ustawić na 3.3 lub 5V
więc odpada robienie level shiftera
c.
Ghost
Guest
Mon Jan 22, 2024 5:53 pm
W dniu 22.01.2024 o 12:35, heby pisze:
Quote:
On 22/01/2024 12:29, Ghost wrote:
ale tak na prawde brakuje ci tylko playera
Tak, "tylko" playera.
no moim zdaniem analizator to wieksza czesc roboty
heby
Guest
Mon Jan 22, 2024 5:58 pm
On 22/01/2024 12:46, Cezar wrote:
Quote:
Kiedyś (jakieś 8-10 lat temu) do podobnych celów używałem płytki z
FT2232H a dokładnie do odczytywania i pisania pamięci równoległych NAND.
Hmmm tam jest chyba trochę mało drutów. Zastanowie się nad tym jako
opcją awaryjną.
Cezar
Guest
Mon Jan 22, 2024 6:41 pm
On 22/01/2024 15:58, heby wrote:
Quote:
On 22/01/2024 12:46, Cezar wrote:
Kiedyś (jakieś 8-10 lat temu) do podobnych celów używałem płytki z
FT2232H a dokładnie do odczytywania i pisania pamięci równoległych NAND.
Hmmm tam jest chyba trochę mało drutów. Zastanowie się nad tym jako
opcją awaryjną.
ZTCP tam są cztery 8-bitowe porty
Piotr GaĹka
Guest
Tue Jan 23, 2024 5:36 pm
W dniu 2024-01-21 o 22:56, heby pisze:
Quote:
Cześć.
Czasami przydałby się jakiś prosty przyrząd, potrafiący "odtworzyć"
pewna sekwencję logiczną na wyjsciach.
Obecnie mam taki problem, że musze zdebugować dość złożony problem, na
około 16 liniach logicznych. Częstotliwości rzędu pojedynczych MHz. W
zasadzie potrzebuję tylko sterować liniami, bez czytania (ale z
czytaniem, przynajmniej kilku, była by bajka).
Widział ktoś może jakiś projekt takiego "odtwarzacza", do którego mogę
wrzucić "nagranie" w formacie VCD oraz, najlepiej, miałby jakieś API do
pythona lub C++?
To jest o rząd wielkości bardziej skomplikowane niż taki BusPirate.
Szukam bardziej projektu DIY niż gotowca.
Nie chcę tego robić samodzielnie. To ciężka orka jest. Ostatecznie wezmę
Pi Pico, ale dalej: to jest ogrom pracy, może ktoś już to zrobił.
Gdy komputery były na etapie 386 i DOS zrobiłem z PC analizator stanów
logicznych. Zapełniałem RAM próbkami ze złącza Centronix. Było tam 5
linii wejściowych. Jeśli mnie pamięć nie myli to próbkowanie wtedy
wyszło mi prawie równe 1MHz.
Centronix ma więcej linii wyjściowych. Jeśli to jeszcze istnieje (może w
formie jakiejś przejściówki) to może jest szansa uzyskać większą
prędkość i równomierne wystawiania kolejnych stanów.
Przypuszczam, że to jest zły kierunek, ale może nasunie komuś coś innego.
A może pamiętać 'nagranie' w komputerze a na zewnątrz tylko mały bufor
niezbędny do równomiernego wystawiania stanów. Może komunikacja Ethernet
a nie USB.
P.G.
heby
Guest
Tue Jan 23, 2024 5:53 pm
On 23/01/2024 16:36, Piotr Gałka wrote:
Quote:
logicznych. Zapełniałem RAM próbkami ze złącza Centronix. Było tam 5
linii wejściowych. Jeśli mnie pamięć nie myli to próbkowanie wtedy
wyszło mi prawie równe 1MHz.
Wszystkie współczesne komputery sprzetowo ograniczają prędkosc czytania
z LPT (o ile mają, ale to sam jak wsadzisz np. wersję na PCIe), nie
wykluczam że na poziomie haltowania procesora, bo cieżko to inaczej
wyjaśnić.
Jesli napiszesz prosty program w asm robiący out w pętli na i7-12xx,
dostaniesz taką samą częstotliwość jak na P1. Mowa o gołym DOSie. Około
500kHz<>1MHz. W dodatku jest to mocno niestabilne, w zależności od
wersji chipsetu.
Sprawdzałem to kiedyś, nawet może i na grupie jakiś ślad po tym się
pozostał, bo kiedyś pytałem, z resztą nie ja jeden.
Quote:
A może pamiętać 'nagranie' w komputerze a na zewnątrz tylko mały bufor
niezbędny do równomiernego wystawiania stanów. Może komunikacja Ethernet
a nie USB.
To wszystko kosztuje czas na dev.
Marek
Guest
Wed Jan 24, 2024 11:22 am
On Tue, 23 Jan 2024 16:53:46 +0100, heby <heby@poczta.onet.pl> wrote:
Quote:
500kHz<>1MHz. W dodatku jest to mocno niestabilne, w zależności od
wersji chipsetu.
Ale w jakim trybie był skonfigurowany port? SPP? ECP? Tych trybów
było trochę i każdy pracował z inną prędkością max.
Ze 25 lat temu robiłem coś w asm z lpt1 w trybie rzeczywistym
(domyślam się, że to masz na myśli pisząc "goły dos") i na pewno
osiągałem powyżej 1MHz (coś mi się kojarzy ~8Mhz) na Pentium 200 MHz.
--
Marek
heby
Guest
Wed Jan 24, 2024 11:52 am
On 24/01/2024 10:22, Marek wrote:
Quote:
Ale w jakim trybie był skonfigurowany port? SPP? ECP? Tych trybów było
trochę i każdy pracował z inną prędkością max.
Sprawdzałem to. Chyba wszystkie działały tak samo, czyli nie przeraczały
jakiejś arbitralnej prędkości.
Quote:
Ze 25 lat temu robiłem coś w asm z lpt1 w trybie rzeczywistym (domyślam
się, że to masz na myśli pisząc "goły dos") i na pewno osiągałem powyżej
1MHz (coś mi się kojarzy ~8Mhz) na Pentium 200 MHz.
Nie wykluczone, że stare chipsety nie miały w ogóle funkcji haltowania
CPU lub miały ją inaczej zrobioną. Mnogoś chipsetów i sposoby podpięcia
też robią swoje. Nie wyklcuzam, że istnieje gdzieś płyta która nie
haltuje CPU, ale używanie P200 ze specyficzną płytą do jakiegoś
zastosowania dzisiaj, nie ma sensu.
Ba, nawet nie wiem jak to haltowanie było realizowane sprzętowo.
Ostatnia płyta, na której bawiłem się z LPT i nie udało się wyskoczyć
poza 1MHz to był jakieś coś z Duronem i miagistralą PCI. Najstarszy, to
był jakiś system na P1 (acz z końca produkcji, z wypasami) i tam nie
pamiętam precyzyjnie, ale prędkość na pewno nie była kilka MHz.
Mam w domu Della SSF, który ma dedykowany port LPT. Jak znajdę chwię to
odpale FreeDOSa z jakimś TurboC i zobaczymy co on potrafi, tam w środku
jest bodaj i5-4xxx.
J.F
Guest
Mon Jan 29, 2024 7:43 pm
On Wed, 24 Jan 2024 10:22:05 +0100, Marek wrote:
Quote:
On Tue, 23 Jan 2024 16:53:46 +0100, heby <heby@poczta.onet.pl> wrote:
500kHz<>1MHz. W dodatku jest to mocno niestabilne, w zależności od
wersji chipsetu.
Ale w jakim trybie był skonfigurowany port? SPP? ECP? Tych trybów
było trochę i każdy pracował z inną prędkością max.
Ze 25 lat temu robiłem coś w asm z lpt1 w trybie rzeczywistym
(domyślam się, że to masz na myśli pisząc "goły dos") i na pewno
osiągałem powyżej 1MHz (coś mi się kojarzy ~8Mhz) na Pentium 200 MHz.
Gdzies tam w okolicach ISA pojawiały sie cykle oczekiwania na
magistrali, i z grubsza pamietam, ze własnie ok 1us to trwało dla I/O.
Calkiem sporo strat, jak procesor ma zegar 33 .. 50 .. 100 .. 200 Mhz.
Albo GHz.
Pózniejsze płyty główne, co miały port na pokładzie, moze i potrafiły
być szybsze - nie wiem.
Drukarka swoją szybkość ma, i za szybko tez nie ma sensu.
W ECP pojawiło się DMA, to i sporo się zmieniło.
Niedawno mi chodził pomysł - konwerter USB-Centronics, i dorobić
zewnętrzne taktowanie na linii Busy i/lub ACK.
Moze by dało radę szybko wypluwać.
Z drugiej strony - jakis atmega troche pamięci ma, i jak mu nie
przeszkadzać, to wypluwać potrafi dosc szybko. PIC tez szybkie.
kilkanascie MHz sie chyba nie da, ale kilka wyrobi ..
tu przykład generacji video
https://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
J.
ptoki (ptoki)
Guest
Tue Jan 30, 2024 1:14 am
Goto page 1, 2 Next