eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem z odczytem karty CF
Ilość wypowiedzi w tym wątku: 21

  • 11. Data: 2025-01-15 18:03:21
    Temat: Re: Problem z odczytem karty CF
    Od: Atlantis <m...@w...com>

    Ok, przeanalizowałem jeszcze raz sytuację za pomocą oscyloskopu i wydaje
    mi się, że znalazłem potencjalną przyczynę.

    Na linii CS karty CF widać krótkie szpilki. Gdy linia jest w stanie
    wysokim, przechodzi na krótki moment do stanu niskiego, gdy natomiast
    znajduje się w stanie niskim, przechodzi na moment do wysokiego.
    Sprawdziłem inne sygnały z dekodera IO (74HTC138) i podobną sytuację
    widać także na niektórych (obecnie niewykorzystywanych liniach CS).

    Wygląda na to, że źródłem tych zakłóceń jest linia adresowa A5, ale
    podobne szpilki widzę także na innych liniach z mniej znaczącego bajtu
    linii adresowych (a więc multipleksowanego z magistralą danych). Więcej
    znaczące linie adresowe wyglądają zupełnie czysto. Momenty wystąpienia
    tych zakłóceń korelują narastającym zboczem sygnału ALE. Czasami widać
    to jako wyraźną szpilkę wyraźnej zmiany stanu, ale często też w tych
    punktach widać jedynie drobne wahania sygnału.

    Wygląda na to, że szpilki są za krótkie, żeby zakłócić działanie retro
    peryferiów (jak 8251 albo 8253) ale już karta CF rejestruje je jako
    normalny sygnał aktywacji i stąd zaburzona komunikacja. Przynajmniej
    taka hipoteza wydaje się być sensowna.

    Problem jest powtarzalny - występuje na dwóch egzemplarzach urządzenia.

    Ktoś spotkał się z czymś takim? Zastanawiam się jak temu przeciwdziałać.
    Opóźnić aktywację rejestru 74HCT573 (trzymającego dolny bajt adresu) za
    pomocą jakiegoś filtra RC na linii ALE? A może winny jest rejestr z
    rodziny HCT, który działa za szybko?


  • 12. Data: 2025-01-15 18:56:51
    Temat: Re: Problem z odczytem karty CF
    Od: Mirek <m...@n...dev>

    On 15.01.2025 18:03, Atlantis wrote:

    > Wygląda na to, że źródłem tych zakłóceń jest linia adresowa A5,

    Ale to jakaś wyjątkowo dziwnie jest poprowadzona? Zbocza ma szczególnie
    ostre? Dlaczego tylko ona? Nie szarpie zasilaniem? Sygnały, które
    zakłóca typu OC są ze słabymi pull-upami? ...choć jeśli to się dzieje w
    obydwie strony to bardziej to na hazard wygląda.

    --
    Mirek


  • 13. Data: 2025-01-15 20:34:24
    Temat: Re: Problem z odczytem karty CF
    Od: Atlantis <m...@w...com>

    On 15.01.2025 18:56, Mirek wrote:

    > Ale to jakaś wyjątkowo dziwnie jest poprowadzona? Zbocza ma szczególnie
    > ostre? Dlaczego tylko ona?

    Nie wyraziłem się dostatecznie jasno. Problem nie dotyczy tylko linii
    A5, a całego niższego bajtu magistrali adresowej (który w 8085 jest
    multipleskowany z magistralą danych). Po prostu po linii A5 te szpilki
    przez 74HCT138 propagują na linię CS karty.
    Wygląda na to, że miejsca występowania szpilek korelują z narastającym
    zboczem sygnału ALE, który zatrzaskuje młodszy bajt adresu w układzie
    74HCT573. Przy czym nie jest tak, że każdy impuls na ALE = jedna
    szpilka. Czasem w tych miejsach widoczny jest jedynie lekki szum na
    liniach adresowych, a czasami w ogóle nie widać szpilek.

    W ramach eksperymentu próbowałem dodać filtr RC (330om, 100pF) na linii
    ALE. Jednak o ile zbocza sygnału się wygładziły, to problem ze szpilkami
    na liniach adresowych nie zniknął.


  • 14. Data: 2025-01-15 21:05:17
    Temat: Re: Problem z odczytem karty CF
    Od: Mirek <m...@n...dev>

    On 15.01.2025 20:34, Atlantis wrote:

    > Nie wyraziłem się dostatecznie jasno. Problem nie dotyczy tylko linii
    > A5, a całego niższego bajtu magistrali adresowej (który w 8085 jest
    > multipleskowany z magistralą danych).

    A ten 573 odfiltrowany dobrze?
    Czyli on jest źródłem szpilek?.
    ALE jest tylko do niego?
    No dobra, a jak 8085 wystawi ALE, to linie do 573 zmieniają natychmiast
    stan? - chodzi mi o to czy ta zmiana jest jakoś skorelowana ze szpilkami.


    > Po prostu po linii A5 te szpilki
    > przez 74HCT138 propagują na linię CS karty.[...]

    > ramach eksperymentu próbowałem dodać filtr RC (330om, 100pF) na linii
    > ALE. Jednak o ile zbocza sygnału się wygładziły, to problem ze szpilkami
    > na liniach adresowych nie zniknął.

    To ja bym próbował kondensatory dawać na A5, na CS...

    A jak wyglądają czasy tych szpilek w porównaniu do taktu procesora?


    --
    Mirek


  • 15. Data: 2025-01-16 09:38:03
    Temat: Re: Problem z odczytem karty CF
    Od: Atlantis <m...@w...com>

    On 15.01.2025 21:05, Mirek wrote:

    > A ten 573 odfiltrowany dobrze?

    Masz na myśli zasilanie? Standardowo (jak każdy układ scalony w
    projekcie) ma kondensator 100 nF do masy przy pinie VCC. Jednak jak
    przyjrzałem się projektowi płytki, to może faktycznie moża by w tej
    okolicy dać jakiś mały elektrolit i poprowadzić zasilanie jakaś krótszą
    drogą z okolicy miejsca podpięcia zasilacza. To samo z masą...


    > Czyli on jest źródłem szpilek?.

    Na to wygląda. Na wyjściach 74HCT573 pojawiają się po raz pierwszy i
    stamtąd propagują na dekoder adresów IO.


    > ALE jest tylko do niego?

    Tak.


    > No dobra, a jak 8085 wystawi ALE, to linie do 573 zmieniają natychmiast
    > stan? - chodzi mi o to czy ta zmiana jest jakoś skorelowana ze szpilkami.

    Jeśli dobrze rozumiem działanie 74573, to w stanie wysokim na wejściu LE
    będzie on po prostu powtarzał stany wejść na wyjściach. Zatrzaśnięcie
    następuje dopiero wraz ze zboczem opadającym na LE. Czyli mamy do
    czynienia z następującą sytuacją:
    - Procesor ustawia stan wysoki na ALE.
    - Na liniach AD0..AD7 nie zdążyły się jeszcze ustalić właściwe poziomu
    odpowiadające dolnemu bajtowi adresu. Przez chwil mamy tam stare dane z
    D0..D7 albo stany nieustalone. Mogą to tłumaczyć np. pojemności
    montażowe - magistrala rozciąga się na dwie płytki, podczas gdy sygnał
    ALE to krótka ścieżka pomiędzy dwoma sąsiadujacymi scalakami.
    - Przez moment ten niepoprawny, niestabilny stan jest widoczny na
    wyjściach 74573 (bo w stanie wysokim LE jest on przezroczysty), co
    objawia się w postaci szpilki.
    - Po chwili sytuacja się stabilizuje, na wyjścia przekazywane są już
    właściwe sygnały, a na zboczu opadającym ALE następuje ich zatrzaśnięcie.
    - To też tłumaczyć dlaczego szpilki nie są widoczne przy każdym impulsie
    na ALE. Raz na jakiś czas po prostu zdarza się, że poprzedni stan jest
    zgodny z tym, co finalnie ma się znaleźć na danej linii Ax.


    > To ja bym próbował kondensatory dawać na A5, na CS...

    Tak, ale to będzie tylko walka z objawem, a nie przyczyną.
    Przy założeniu, że powyższa diagnoza jest prawidłowa, powinienem opóźnić
    moment, w którym 74HCT573 widzi stan wysoki na ALE, żeby linie AD0..AD7
    miały czas się ustabilizować. Temu miał służyć filtr na tej linii, ale
    może zwyczajnie dałem za małe opóźnienie? Albo zamiast filtra RC
    powinienem dać jakąś linię opóźniającą na bramkach/inwertorach?


    > A jak wyglądają czasy tych szpilek w porównaniu do taktu procesora?

    Są znacząco krótsze od czasów trwania normalnych sygnałów w tym
    systemie. Wydaje mi się, że właśnie dlatego nie wpływają na działanie
    innych komponentów, poza kartą CF. Stare peryferia w stylu 8251 albo
    8253 zwyczajnie ignorują tak krótkie anomalie na liniach CF, podczas gdy
    (relatywnie) współczesna karta CF jest już na tyle szybka, że
    interpretuje je jako normalny sygnał aktywacji, co miesza w komunikacji
    z nią.


  • 16. Data: 2025-01-16 16:49:33
    Temat: Re: Problem z odczytem karty CF
    Od: "J.F" <j...@p...onet.pl>

    On Thu, 16 Jan 2025 09:38:03 +0100, Atlantis wrote:
    > On 15.01.2025 21:05, Mirek wrote:
    >> A ten 573 odfiltrowany dobrze?
    >
    > Masz na myśli zasilanie? Standardowo (jak każdy układ scalony w
    > projekcie) ma kondensator 100 nF do masy przy pinie VCC. Jednak jak
    > przyjrzałem się projektowi płytki, to może faktycznie moża by w tej
    > okolicy dać jakiś mały elektrolit i poprowadzić zasilanie jakaś krótszą
    > drogą z okolicy miejsca podpięcia zasilacza. To samo z masą...
    >
    >
    >> Czyli on jest źródłem szpilek?.
    >
    > Na to wygląda. Na wyjściach 74HCT573 pojawiają się po raz pierwszy i
    > stamtąd propagują na dekoder adresów IO.

    Po zatrzaśnieciu adresu szpilek nie powinno być.
    Przed, przy wysokim ALE - mogą, bo rejestr jest transparentny.

    Datasheet nawet sugeruje, że wtedy jeszcze linie AD0-7 mogą się
    zmieniac.

    Ale ... wtedy sygnały /RD i /WR nie są jeszcze aktywne.


    >> No dobra, a jak 8085 wystawi ALE, to linie do 573 zmieniają natychmiast
    >> stan? - chodzi mi o to czy ta zmiana jest jakoś skorelowana ze szpilkami.
    >
    > Jeśli dobrze rozumiem działanie 74573, to w stanie wysokim na wejściu LE
    > będzie on po prostu powtarzał stany wejść na wyjściach. Zatrzaśnięcie
    > następuje dopiero wraz ze zboczem opadającym na LE. Czyli mamy do

    Tak.

    > czynienia z następującą sytuacją:
    > - Procesor ustawia stan wysoki na ALE.
    > - Na liniach AD0..AD7 nie zdążyły się jeszcze ustalić właściwe poziomu
    > odpowiadające dolnemu bajtowi adresu. Przez chwil mamy tam stare dane z
    > D0..D7 albo stany nieustalone. Mogą to tłumaczyć np. pojemności
    > montażowe - magistrala rozciąga się na dwie płytki, podczas gdy sygnał
    > ALE to krótka ścieżka pomiędzy dwoma sąsiadujacymi scalakami.
    > - Przez moment ten niepoprawny, niestabilny stan jest widoczny na
    > wyjściach 74573 (bo w stanie wysokim LE jest on przezroczysty), co
    > objawia się w postaci szpilki.

    Jakos tak,

    > - Po chwili sytuacja się stabilizuje, na wyjścia przekazywane są już
    > właściwe sygnały, a na zboczu opadającym ALE następuje ich zatrzaśnięcie.

    Tak.

    > - To też tłumaczyć dlaczego szpilki nie są widoczne przy każdym impulsie
    > na ALE. Raz na jakiś czas po prostu zdarza się, że poprzedni stan jest
    > zgodny z tym, co finalnie ma się znaleźć na danej linii Ax.

    Wiekszość peryferiow z tamtej rodziny, jest na takie zmiany na linii
    CS odporna - musi być jeszcze dodatkowo sygnał RD lub WR.

    Karty CF ... chyba tak samo.

    Tryb 8-bit ustawiłes, karty nie resetujesz, zasilania jej nie
    wyłączasz?

    To jeszcze niby jakies czasy propagacji mogą być, że ten 573 i 138
    jakies powolne, i zmiany docierają, gdy już sygnaly RD/WR są aktywne.

    Ale wątpie, nie przy tym zegarze ...

    >> To ja bym próbował kondensatory dawać na A5, na CS...
    >
    > Tak, ale to będzie tylko walka z objawem, a nie przyczyną.
    > Przy założeniu, że powyższa diagnoza jest prawidłowa, powinienem opóźnić
    > moment, w którym 74HCT573 widzi stan wysoki na ALE, żeby linie AD0..AD7
    > miały czas się ustabilizować.

    Ogolnie to chyba o nic.
    Sam procesor zapewnia odpowiedni czas.
    Szpile mogą się pojawić, ale powinny być niegroźne.

    J.


  • 17. Data: 2025-01-16 19:02:18
    Temat: Re: Problem z odczytem karty CF
    Od: Mirek <m...@n...dev>

    On 16.01.2025 09:38, Atlantis wrote:

    > Przy założeniu, że powyższa diagnoza jest prawidłowa, powinienem opóźnić
    > moment, w którym 74HCT573 widzi stan wysoki na ALE, żeby linie AD0..AD7
    > miały czas się ustabilizować. Temu miał służyć filtr na tej linii, ale
    > może zwyczajnie dałem za małe opóźnienie? Albo zamiast filtra RC
    > powinienem dać jakąś linię opóźniającą na bramkach/inwertorach?


    Może wystarczy tą ścieżkę ALE wydłużyć?
    Z drugiej strony - źle masz zrobione to generowanie CS - może powinno
    być dodatkowo uzależnione od ALE w stanie niskim?
    Ja źle zrozumiałem twoje "propaguje się" - skojarzyłem jako przesłuch
    między ścieżkami albo zakłócenie na zasilaniu itp. a wygląda na to, że
    to jest prawidłowe działanie 138 - dostaje szpilkę, to dekoduje szpilkę.


    --
    Mirek


  • 18. Data: 2025-01-17 11:30:45
    Temat: Re: Problem z odczytem karty CF
    Od: a...@f...org (Waldek Hebisch)

    Atlantis <m...@w...com> wrote:
    > On 15.01.2025 21:05, Mirek wrote:
    >
    >> A ten 573 odfiltrowany dobrze?
    >
    > Masz na myśli zasilanie? Standardowo (jak każdy układ scalony w
    > projekcie) ma kondensator 100 nF do masy przy pinie VCC. Jednak jak
    > przyjrzałem się projektowi płytki, to może faktycznie moża by w tej
    > okolicy dać jakiś mały elektrolit i poprowadzić zasilanie jakaś krótszą
    > drogą z okolicy miejsca podpięcia zasilacza. To samo z masą...
    >
    >
    >> Czyli on jest źródłem szpilek?.
    >
    > Na to wygląda. Na wyjściach 74HCT573 pojawiają się po raz pierwszy i
    > stamtąd propagują na dekoder adresów IO.
    >
    >
    >> ALE jest tylko do niego?
    >
    > Tak.
    >
    >
    >> No dobra, a jak 8085 wystawi ALE, to linie do 573 zmieniają natychmiast
    >> stan? - chodzi mi o to czy ta zmiana jest jakoś skorelowana ze szpilkami.
    >
    > Jeśli dobrze rozumiem działanie 74573, to w stanie wysokim na wejściu LE
    > będzie on po prostu powtarzał stany wejść na wyjściach. Zatrzaśnięcie
    > następuje dopiero wraz ze zboczem opadającym na LE. Czyli mamy do
    > czynienia z następującą sytuacją:
    > - Procesor ustawia stan wysoki na ALE.
    > - Na liniach AD0..AD7 nie zdążyły się jeszcze ustalić właściwe poziomu
    > odpowiadające dolnemu bajtowi adresu. Przez chwil mamy tam stare dane z
    > D0..D7 albo stany nieustalone. Mogą to tłumaczyć np. pojemności
    > montażowe - magistrala rozciąga się na dwie płytki, podczas gdy sygnał
    > ALE to krótka ścieżka pomiędzy dwoma sąsiadujacymi scalakami.
    > - Przez moment ten niepoprawny, niestabilny stan jest widoczny na
    > wyjściach 74573 (bo w stanie wysokim LE jest on przezroczysty), co
    > objawia się w postaci szpilki.
    > - Po chwili sytuacja się stabilizuje, na wyjścia przekazywane są już
    > właściwe sygnały, a na zboczu opadającym ALE następuje ich zatrzaśnięcie.
    > - To też tłumaczyć dlaczego szpilki nie są widoczne przy każdym impulsie
    > na ALE. Raz na jakiś czas po prostu zdarza się, że poprzedni stan jest
    > zgodny z tym, co finalnie ma się znaleźć na danej linii Ax.
    >
    >
    >> To ja bym próbował kondensatory dawać na A5, na CS...
    >
    > Tak, ale to będzie tylko walka z objawem, a nie przyczyną.
    > Przy założeniu, że powyższa diagnoza jest prawidłowa, powinienem opóźnić
    > moment, w którym 74HCT573 widzi stan wysoki na ALE, żeby linie AD0..AD7
    > miały czas się ustabilizować. Temu miał służyć filtr na tej linii, ale
    > może zwyczajnie dałem za małe opóźnienie? Albo zamiast filtra RC
    > powinienem dać jakąś linię opóźniającą na bramkach/inwertorach?

    Gdyby to był problem to 574 powinien go rozwiązać.

    >> A jak wyglądają czasy tych szpilek w porównaniu do taktu procesora?
    >
    > Są znacząco krótsze od czasów trwania normalnych sygnałów w tym
    > systemie. Wydaje mi się, że właśnie dlatego nie wpływają na działanie
    > innych komponentów, poza kartą CF. Stare peryferia w stylu 8251 albo
    > 8253 zwyczajnie ignorują tak krótkie anomalie na liniach CF, podczas gdy
    > (relatywnie) współczesna karta CF jest już na tyle szybka, że
    > interpretuje je jako normalny sygnał aktywacji, co miesza w komunikacji
    > z nią.

    Karta powinna ignorować co jest na szynie dopuki nie jest wybrana.
    Może wymagać żeby sygnał był stabilny jakiś czas przed wybraniem.
    Ja by raczej patrzył na logikę zmieniającą sygnały sterujące do
    karty, jeśli tam masz szpilki czy za małe opóźnienie to może być
    problem.

    --
    Waldek Hebisch


  • 19. Data: 2025-01-18 19:56:31
    Temat: Re: Problem z odczytem karty CF
    Od: Atlantis <m...@w...com>

    On 16.01.2025 16:49, J.F wrote:

    > Po zatrzaśnieciu adresu szpilek nie powinno być.
    > Przed, przy wysokim ALE - mogą, bo rejestr jest transparentny.
    > Datasheet nawet sugeruje, że wtedy jeszcze linie AD0-7 mogą się
    > zmieniac.

    Szpilki właśnie najwyraźniej wynikały z transparentności 573. W ramach
    eksperymentu zmieniłem podejście i zastosowałem 574 zatrzaskiwany
    zanegowanym sygnałem ALE. Teraz rejestr jest uzupełniany dopiero na
    zboczu opadającym ALE, już po ustabilizowaniu się adresu.
    Szpilki zniknęły, ale i tak mam fałszywą aktywność na liniach CS
    wychodzących z dekodera IO. Nie wziąłem pod uwagę tego, że samo
    połączenie linii IO_M z wejściem G1 74HCT138 nie wystarczy aby
    skutecznie zablokować dekoder. Linia IO_M przechodzi w stan wysoki już
    na samum początku cyklu, zanim adresy się zaktualizują, więc przez
    chwilę siedzi tam jeszcze stara wartość. Mógłbym to rozwiązać stosując
    dodatkowy układ 7474, ale chyba sobie daruję, bo bo te fałszywe stany
    niskie i tak pojawiają się przed sygnałami RD/WR. Chociaż może pomyślę o
    tym przy projektowaniu kolejnej wersji płytki. ;)


    > Ale ... wtedy sygnały /RD i /WR nie są jeszcze aktywne.

    No właśnie... Początkowo myślałem, że te szpilki na linii CS karty CF
    mogą mieć jakiś związek z moimi problemami z kartą CF. Ale im więcej o
    tym myślę... Przecież w poprzednim komputerku z 8080 karta działała bez
    problemu, a tam dekoder IO w ogóle nie był w żaden sposób blokowany
    (choćby dlatego, że 8080 nie ma linii IO_M i trzeba by ją generować z
    innych sygnałów). Dekoder działał cały czas, reagując na wszystko, co
    akurat pojawiło się na dolnym bajcie magistrali adresowej. Dopiero
    aktywność na jednej z linii IORD, IOWR, MEMRD, MEMWR powodowała
    aktywację konkretnego urządzenia.


    > Karty CF ... chyba tak samo.

    Właśnie... Sam fakt, że byłem w stanie używac karty CF w systemie z 8080
    tego dowodzi.


    > Tryb 8-bit ustawiłes, karty nie resetujesz, zasilania jej nie
    > wyłączasz?

    Kod jest dokładnie taki sam jak w systemie z 8080 (gdzie karta działała
    bez problemu). Jedyna zmiana polegała na podmianie adresów rejestrów
    karty (które w nowym komputerze znalazły się w innych miejscach) oraz
    podniesieniu timeoutów przy odczytach (to już później, w ramach
    eksperymentów). Poza tym sterownik jest identyczny.
    Linię reset też sprawdziłem. Od razu przyszło mi do głowy, czy
    przypadkiem nie pomyliłem się i nie podpiąłem jej do linii reset o
    odwróconej logice, ale nie. Zresztą wtedy karta w ogóle byłaby trzymana
    w stanie wiecznego resetu, a ona reaguje na próby komunikacji (dioda
    miga przy próbie inicjacji i odczytu, jestem w stanie odczytywać rejestr
    STATUS). Po prostu gdy próbuję odczytać strukturę info i MBR, przychodzą
    bzdury.


    > To jeszcze niby jakies czasy propagacji mogą być, że ten 573 i 138
    > jakies powolne, i zmiany docierają, gdy już sygnaly RD/WR są aktywne.

    Oscylogramy tego nie potwierdzają. Dodatkowo jeszcze dodałem w GAL-u
    logikę opóźniającą aktywację linii RD i WR dla karty CF o jeden cykl
    zegara. Niektóre źródła zalecają takie rozwiązanie dla większej
    kompatybilności - niektóre karty są ponoć na to wyczulone.


    > Ogolnie to chyba o nic.
    > Sam procesor zapewnia odpowiedni czas.
    > Szpile mogą się pojawić, ale powinny być niegroźne.

    Właśnie też zaczyna mi się wydawać, że przyczyna pewnie leży gdzie
    indziej...


  • 20. Data: 2025-01-19 16:36:03
    Temat: Re: Problem z odczytem karty CF
    Od: Eneuel Leszek Ciszewski <Z...@d...czytania.fontem.Lucida.Console>

    W dniu 17 sty 2025 o 11:30, Waldek Hebisch pisze:

    > Karta powinna ignorować co jest na szynie dopuki nie jest wybrana.

    Sie znaczy pUka do dnia wyborów?...

    --
    `_._ _,-'""`-._ .`'.-. ._. .-.
    (,-.`._,'( |\`-/| '.'O`-,` .,; o.' eneuel@@gmail.com '.O_'
    `-.-' \ )-`( , o o) `-:`-'.'.`\.'.' '~'~'~'~'~'~'~'~' o.`.,t
    -bf- `- \`_`"'-.o'\:/.d`|'.p \; https://www.eneuel.ct8.pl \|/..s

strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: