Podłączanie kasety komputerowej w stylu lat 80-tych do FPGA

9

Wdrażam ponownie komputer Microbee z 1980 roku na FPGA (patrz tutaj ) i próbuję wymyślić, jak zrobić port kasety. Oto schematy oryginalnego interfejsu kasety Microbee:

MicrobeeSchematic
(źródło: toptensoftware.com )

Znalazłem też ten opis w instrukcji technicznej:

Wyjście danych kasety składa się jedynie z sieci RC, która przyjmuje sygnał z DB1, pin 28 PIO. Sygnał jest tłumiony, a następnie odłączany przed wysłaniem go do wejścia MIC magnetowidu. Ten sygnał pojawia się na pinie 3 5-pinowego gniazda DIN.

Obwód wejściowy danych kasety jest nieco bardziej skomplikowany. Wejście z pinu 5 gniazda DIN przechodzi najpierw do rozdzielacza akcentatora. Następnie jest wzmacniacz operacyjny CA3140, aby umożliwić podniesienie poziomu zakresu wejściowego do kwadratu, zanim sygnał zostanie przekazany do pinu 27 PIO, DBO. Dwie diody na wejściu odwracającym i nieodwracającym do zacisku wzmacniacza operacyjnego wszystkie sygnały wejściowe większe niż napięcie przewodzące diody w obu kierunkach. Kondensator 47pF jest wymagany przez wzmacniacz operacyjny CMOS do wstępnej kompensacji.

Moje pytania:

  1. Co oznacza „odłączony” w opisie?
  2. Czy ten sam obwód działałby, gdyby był podłączony do dwóch styków we / wy na Xilinx Spartan 6 FPGA (przez złącze PMod na Nexys3), a jeśli nie, czy można go dostosować, aby działał?

Pierwsza próba, oparta na komentarzach w odpowiedziach, ale rezystor wyjściowy nie powinien być szeregowy.

Zostawiam to tutaj z powodów kontekstowych i instruktażowych, proszę zobaczyć następny schemat

MicrobeeSchematic2 http://www.toptensoftware.com/fpgabee/MicrobeeCassettePortSchematic2.png

Nowe pytania:

  1. Czy polaryzacja komparatora jest prawidłowa?
  2. Czy dla MCP6546 Vss przechodzi do masy, a Vdd do 3,3 V?
  3. Nie jestem pewien, co zrobić z „przerywanym” opornikiem na wejściach taśmy w oryginalnym obwodzie.

Uwzględniając informacje zwrotne dotyczące wyjścia komparatora będącego otwartym drenem:

MicrobeeSchematic3 http://www.toptensoftware.com/fpgabee/MicrobeeCassettePortSchematic3.png

Jakich alternatyw mogę użyć dla MCP6546, których nie udało mi się znaleźć w sklepach detalicznych tutaj w Australii. Mogę dostać LM311 lub LM393, które z tego, co mogę powiedzieć, są podobne. Czy te będą działać równie dobrze?

Brad Robinson
źródło

Odpowiedzi:

6
  1. Kondensatory odsprzęgające są znane w zasilaczach obwodów, gdzie służą do utrzymywania napięcia zasilania w czystości od szumów (wysokiej częstotliwości). Mam jednak wrażenie, że tutaj usunięcie zawartości prądu stałego ma na myśli kondensator szeregowy, podobnie jak C24 dla wejścia. Który, w zależności od twojego punktu widzenia (DC lub AC), można nazwać kondensatorem sprzęgającym. Ale nie ma kondensatora, który robi to na twoim wyjściu. Wartość C23 jest również podejrzanie niska. Częstotliwość odcięcia dla rezystorów R23 i R24 wynosi 12 kHz, co jest bezużyteczne, ponieważ i tak będzie dotyczyło zakresu częstotliwości kasety. Wolałbym tutaj oczekiwać 5 kHz. Również tekst mówi o wejściu MIC, ale w tym celu poziom wyjściowy jest zbyt wysoki. Schemat wspomina o wejściu liniowym.

  2. CA3140 nie jest dobry. Jego minimalne napięcie robocze wynosi 4 V, a przy 5 V wysoka moc wyjściowa nie przekracza 3 V, więc dla zasilania 4 V może być tak niskie, jak 2 V, a to może nie wystarczyć dla Spartana. Zamiast tego użyj opamp Rail-To-Rail lub jeszcze lepiej komparatora.

edytuj ponownie swoje nowe pytania

  1. Polaryzacja jest OK, ponieważ nie ma znaczenia :-). Masz sygnał prądu przemiennego nad i pod ziemią. Jak narysowałeś, dodatnie pół cykli sprawią, że wyjście przejdzie do Vcc, ujemne do masy. Jeśli przełączysz wejścia, uzyskasz odwrotność, ale oba sygnały będą wyglądały tak samo.

  2. Tak.

  3. Zignorowałbym to. Wygląda na to, że nie ma funkcji innej niż ładowanie danych wyjściowych, a poza tym, jeśli je odrzucisz, poprosisz o zignorowanie :-).

Ważna rzecz w R1: to powinno iść do Vcc, twojego 3.3 V, nie szeregowo z wyjściem. Wyjście z otwartym drenem oznacza, że ​​tylko FET przełącza wyjście na masę, więc może tylko obniżyć, a nie wysokie. Rezystor podciągający sprawi, że moc wyjściowa będzie wysoka, gdy FET jest wyłączony.

stevenvh
źródło
„Odsprzęganie zwykle oznacza usunięcie zawartości prądu stałego twojego sygnału za pomocą kondensatora szeregowego” - czy szeregowa kondensator nie jest kondensatorem sprzęgającym? Czapka odsprzęgająca usuwa zawartość prądu przemiennego.
Kellenjb,
@Kellen - O kochanie. Tak, masz rację, zwłaszcza jeśli myślisz o oddzieleniu linii zasilających. Tutaj myślałem o oddzieleniu DC od sygnału :-).
stevenvh,
@stevenvh Dziękuję za szczegółową odpowiedź, choć niektóre z moich wypowiedzi przechodzą mi przez głowę. Mam ograniczoną wiedzę na temat elektroniki, ale staram się ją rozwijać, więc właśnie czytałem o obwodach RC, wzmacniaczach operacyjnych i komparatorach. Prawdopodobnie powinnam zamieścić je jako osobne pytania, ale: 1) w jaki sposób wymyśliłeś 12 Hz i 2) czy mógłbyś polecić komparator? Mam nadzieję, że jeśli to możliwe, zlikwiduję to z 3,3 V dostępnego na PMod.
Brad Robinson,
Poza tym Microbee miał wyjście liniowe, a nie mikrofonowe. Co mnie ciekawi - jak możesz to zmodyfikować, aby działało na poziomie mikrofonu (myślę o wysłaniu tego do iPhone'a w celu nagrania).
Brad Robinson,
@Brad - kHz! nie Hz. Częstotliwość odcięcia = 1 / (2 pi RC), gdzie R jest równoległością R23 i R24 ( ta odpowiedź wyjaśnia, dlaczego). Więc f = 1 / (2 pi 1,3kΩ10nF) = 12,2 kHz. To jest odpowiedni komparator. Będziesz musiał dodać rezystor podciągający 10k do jego wyjścia.
stevenvh
3

Kondensatory szeregowe są zwykle nazywane kondensatorami „sprzęgającymi”, ponieważ łączą one składnik ac sygnału źródłowego z miejscem docelowym. Kondensatory odsprzęgające są kondensatorami bocznikowymi zaprojektowanymi w celu zapobiegania sprzężeniu sygnałów prądu przemiennego od źródła do detekcji.

W tym kontekście C23 oddziela składowe wysokiej częstotliwości PIO od uziemienia, tak że wyjście fali prostokątnej zostaje zaokrąglone, tj. W przybliżeniu sinusoidalnie (cytowany artykuł odnosi się do „odsprzęgania” w opisie wyjścia do portu taśmy i dlatego musi odnosić się do C23).

MikeJ-UK
źródło
Odnosi się to również do „tłumika-odsprzęgacza” na wejściu z magnetofonu, co sprawiło, że zastanawiałem się, czy używają go w znaczeniu dwóch różnych rzeczy.
Oli Glaser,
1

Obwód zgodnie z rysunkiem powinien prawdopodobnie współpracować z układem FPGA, jeśli IC35 wysyła sygnał o napięciu od 0 do 3,3 wolta. Jednym niewielkim zastrzeżeniem jest to, że ponieważ wejście kasety nie ma żadnej histerezy, możliwe jest, że sygnał, który powinien pojawić się jako pojedyncza zbocze narastające lub opadające, może pojawiać się jako szybka sekwencja narastających i opadających zboczy, która następnie ustawia się wysoko lub nisko kilka mikrosekund później . Nie powinno to stanowić problemu, jeśli projektujesz układ FPGA tak, aby ignorował zmiany wejściowe, które trwają krócej niż np. 10 mikrosekund, i ignoruje wszelkie zmiany wejściowe, które występują w ciągu 20 mikrosekund od wykrytej zmiany, ale jeśli Twoja logika próbuje zmierzyć długości impulsów wejściowych bez wymuszania minimalnej długości może to mieć problemy.

supercat
źródło
1
  1. „Odsprzęgnięty” w tym scenariuszu prawdopodobnie odnosi się zarówno do kondensatora szeregowego, który blokuje DC (C24), jak i części C RC (C23), chociaż powinien to być „kondensator sprzęgający” dla C24 (odsprzężenie jest również używane w odniesieniu do Funkcja blokowania prądu stałego, ale myślę, że robi się to mylące, ponieważ zwykle oznacza to „inny rodzaj”, który przetacza prąd przemienny do ziemi) i „odsprzęganie” dla C23 (jeśli w ogóle)
    Czapka sprzęgająca jest powszechnie stosowana w obwodach wzmacniacza audio aby umożliwić niezależne stronniczenie jednego wejścia wejściowego od poziomu wyjściowego prądu stałego poprzednich stopni.

  2. Tak, o ile dostarczasz opampowi takie samo napięcie jak piny FPGA (np. 3,3 V, 2,5 V itp.), A nie pokazane 5 V. Powinieneś być w stanie używać praktycznie dowolnego opampa dla funkcji komparatora (lepiej, żeby to było łatwiejsze, jak mówi Steven, ale nie jest to konieczne, dopóki spełniasz wejście FPGA min-high max-low)

Oli Glaser
źródło