forum speccy.pl

Komputery z Z80 => TIMEX => Wątek zaczęty przez: pear w 2023.04.11, 18:10:45

Tytuł: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.11, 18:10:45
Od pierwszego podejścia do klona stacji Timex FDD3/3000 minęło już ponad 7 lat. Jak ten czas leci :o
Żeby nie przeciągać więc tamtego wątku (https://www.speccy.pl/forum/index.php?topic=2213.0) założę nowy, bo jest "trochę" zmian w projekcie.

Główną przyczyną nowego podejścia jest problem, z którym walczę od kilku lat i straciłem już nadzieję na jego rozwiązanie.
Kolega hsimpson zadał mi podłączenie trzech napędów jednocześnie. Niby prosta sprawa, bo stacja może obsłużyć do czterech napędów.
Okazuje się, że proste to jest jedynie w teorii.
Do podłączenia dostałem napęd 3" od CPC, napęd 3,5" od PC oraz HxC. Dowolne 2 z tych napędów podłączone na jednej taśmie pracują bez problemu.
Podłączenie wszystkich trzech jednocześnie powoduje, że nie działa komunikacja z żadnym.
Najprawdopodobniej przyczyną są wbudowane terminatory wewnątrz napędów, a nie chcę w nich grzebać.
Każdy z napędów inaczej obciąża linie i póki są 2, to jeszcze jakoś to działa (HxC i stary napęd z CPC pracują niezbyt stabilnie, ale pracują).
Przy trzech napędach tolerancja poziomów na liniach się kończy.

Dlatego w końcu przeprojektowałem FDD35 tak, aby miała niezależne 2 kanały dla napędów (po 2 napędy na kanał).
Na każdym z kanałów można użyć innej taśmy - z przeplotem lub bez.
A że już i tak rysuję na nowo, to zrobiłem "trochę" modyfikacji:
- z płytki wyleciał GAL, dzielnik LS393, rejestr pomocniczy FDC LS273 i trochę logiki - teraz cała logika jest w jednym CPLD Xillinx XC9572-10PC84,
- zamiast ROM jest 512 KB FlashROM, zamiast dwóch kostek RAM jest jedna, ale też 512 KB,
- obszar pamięci dla procesora został podzielony na 4 segmenty po 16 KB każdy, dla każdego segmentu jest w CPLD zdefiniowany rejestr banku, w którym można zapisać adres jednego z 32 dostępnych banków RAM lub 32 banków ROM,
- banki ROM są z cieniem w RAM, czyli można odczytać zawartość ROM i zapisać RAM "pod spodem" w tym samym numerze banku, a potem bezkolizyjnie przełączyć bank z ROM na RAM,
- dzielnik zegara jest konfigurowalny - można podwoić częstotliwość dla procesora (Turbo 8 MHz) i/lub układu WD1772 (obsługa dysków HD, wymaga napisania oprogramowania),
- dodana została obsługa przerwań z kontrolera UART (ze względu na ograniczoną pojemność CPLD nie udało mi się rozdzielić kanałów i przerwania albo są wszystkie albo wcale, również wymagane napisanie oprogramowania do obsługi),
- pod adresem rejestru pomocniczego FDC (#E0) można odczytać status zgłoszonego przerwania UART (po 4 bity na każdy kanał, wszystkie bity wyzerowane oznaczają przerwanie z kontrolera FDC),
- dodane dwa nowe porty do zapisu rejestrów konfiguracji (#D0) i banków (#F0), w związku z czym dekodowanie pozostałych portów ma dodaną linię A4 (w oryginale dekodowane są tylko A5..A7),
- rejestr konfiguracji można odczytać - zawiera informacje o domyślnych (zworki) oraz zachowanych ustawieniach Turbo, HD i obsługi przerwań UART,
- podwójny układ resetowania - jeden reset jest na stałe od załączenia zasilania i kasuje rejestry konfiguracyjne, drugi reset to ten z przycisku działa jak w oryginalnej stacji, ale nie kasuje rejestru konfiguracji (Turbo, HD i obsługa przerwań UART mogą być włączane/wyłączane programowo, na zworkach jest ustawienie domyślne po włączeniu zasilania),
- żaden z układów reset nie zatrzymuje dzielnika zegara, drobiazg, ale to właśnie zostało popsute w SAM Coupe,
- wyprowadzone złącze Expansion Bus, z drobnymi odstępstwami - zegar jest tylko wyjściem (jest bufor i zworka, którą można sygnał odłączyć) oraz można wybrać zworką, czy IROM odłącza tylko ROM, czy całą pamięć w stacji,
- gniazda portów interfejsu oraz RS-232 można zamontować bezpośrednio na PCB albo wyprowadzić taśmą IDC na zewnątrz płytki,
- każdy sygnał wyboru napędu A, B, C, D może być dowolnie przezworkowany do dowolnego napędu w dowolnym z dwóch kanałów,
- wyprowadzone sygnały dla LED Turbo, HD oraz InUse (świeci, gdy stacja rzeczywiście coś czyta z napędu, a nie tylko został wybrany).

Koncepcyjnie projekt jest zamknięty (nie ma więcej miejsca w CPLD). Projekt CPLD jest gotowy, schemat przerysowany. Teraz czas na płytkę.
Prawdopodobnie PCB będzie nieco dłuższe niż poprzednie (nie będzie już pasować do oryginalnej obudowy FDD3), a to dlatego, że napęd 3,5" jest dłuższy od poprzedniej wersji płytki i źle wyglądały gniazda RS-232 wciśnięte pod spodem (napędy nadal będą montowane nad płytką).
Co wyjdzie w praniu, to się jeszcze okaże.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.04.11, 18:19:49
Stale podnosisz poprzeczkę :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: skoti w 2023.04.11, 18:32:43
 :o WOW. To jest News na który warto było czekać. Już czuję zapach topnika unoszący się nad płytką.  ;D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.04.11, 19:04:29
Fiu, fiu, fajnie :)
Tylko wybór CPLD mnie zastanawia, bo chyba będzie go dość ciężko kupić? Nie widzę nigdzie u "normalnych" sprzedawców.
Ale rozumiem jego atuty, 5V i obudowa do podstawki.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.04.11, 19:12:47
Super, ale XC9572 jest archaiczny i to bardzo. Wersje XL można upolować na Ali za rozsądne pieniądze. Może Altera Max7000 (7064S na 5 V i PLCC), są dostępne jej odpowiedniki z Atmela.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.11, 19:13:29
Zamówiłem 10 szt. CPLD ze starego źródła, jeszcze z przed ery zarazy. Zobaczymy co przyjdzie.
O ile przyjadą niemalowane i sprawne, to cena przystępna ok. 40 zł.

Wersja XL nie występuje w obudowie większej niż 44 piny, która nadaje się do montażu THT (w podstawce), a mnie się zwyczajnie nie chce szarpać z SMT.
Poza tym seria XL owszem jest 5V-tolerant, ale wymaga dodatkowych zabiegów (zasilanie 3,3V oraz zewnętrzne pull-up'y).
I ostatni argument - Xillinx'a znam najlepiej.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.04.11, 20:12:30
Poszukałem pobieżnie i chyba jedyne źródło XC9572-10PC84 to Aliexpress, a chętnych może być więcej, niż 10.
Ja też bym chętniej zobaczył Alterę 7000, wybór PLCC jest tu większy, plus jeszcze wspomniane odpowiedniki ATF15xx (rozumiem, że Microchip to teraz Atmel, a raczej dokładnie odwrotnie :D).
Albo chociaż dwa mniejsze CPLD (np. 2x9536) w PLCC44 (ile pinów jest używanych przez Twój projekt?).

Ale rozumiem Twój opór przed zmianami, skoro już zamówiłeś te układy.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.11, 20:27:02
Miałem jeszcze kilka sztuk z poprzednich projektów. Mam też jakieś Altery EPM7xxx i jeszcze większe, w których z powodzeniem upchnąłbym wszystko z WD1772 włącznie, ale już w obudowie QFP. Tym razem chodzi mi tylko o to, że ma działać i chcę uruchomić projekt w możliwie najkrótszym czasie.
Na starcie potrzebowałem 46 pinów, a skoro już mam ich 69, to zostały mi 3 wolne. Wykorzystałem CPLD "po korek" - zostały 3 makrocele i 3 bloki funkcjonalne nieobsadzone.

Prawdę mówiąc, to bardziej liczyłem na jakieś uwagi do funkcjonalności niż na temat doboru CPLD.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.04.11, 21:01:23
First things first :)
Odnośnie funkcjonalności, masz gdzieś rozpisane te nowe rejestry i jak się one przekładają na mapę pamięci? Bo opisałeś to mocno po łebkach.
I jak ten ROM shadow zrobiłeś? W sensie, jak będzie w praktyce wyglądało jego kopiowanie?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.04.11, 21:14:28
Taki WD1772 w CPLD byłby jak najbardziej zasadny.
Nawet, jako odrębna jednostka.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.04.11, 22:24:36
FDC w CPLD ciężko będzie wcisnąć, to już raczej jakieś FPGA.
Znalazłem jakąś niby open-sourcową implementację w VHDL, ale jako fragment większego projektu (Atari ST), więc nie chciało mi się zbytnio ściągać i dłubać w tym, by oszacować zasobożerność.
Fajna by była też możliwość uruchomienia maszyny bez FDC. W końcu jest kawał ROM-u, a skoro na dodatek można go przeprogramowywać, to może któregoś dnia pojawiłby się moduł SD/MMC na przykład :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.04.11, 22:35:26
Super koncepcja, trzymam kciuki i nie mogę się doczekać finalizacji :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.12, 05:31:08
Odnośnie funkcjonalności, masz gdzieś rozpisane te nowe rejestry i jak się one przekładają na mapę pamięci? Bo opisałeś to mocno po łebkach.
Jak się okazało do pierwszej prezentacji nie były potrzebne szczegóły. Całe skupienie poszło na model CPLD :P

Rejestr konfiguracji  banków jest tylko do zapisu na porcie #F0.
Bity 7 i 6 to numer segmentu przestrzeni adresowej CPU od 0 do 3 po 16 KB (wewnętrznie adresują cztery 6-bitowe rejestry banków).
Bit 5 to wybór banku RAM (0) lub ROM (1).
Pozostałe bity to adres banku od 0 do 31 po 16 KB każdy.

Rejestr konfiguracji zegara i przerwań jest do zapisu i odczytu na porcie #D0. Zapisywane są tylko bity od 0 do 2.
Bit 0 - aktualne ustawienie zegara CPU - 4 MHz (0) lub 8 MHz (1),
Bit 1 - aktualne ustawienie zegara FDC - 8 MHz (0) lub 16 MHz (1), ustawienie 1 wymusza też 8 MHz dla procesora, żeby się wyrobił z obsługą FDC,
Bit 2 - aktualny stan obsługi błędów UART - wyłączone (0) lub włączone (1),
Bit 3 - można odczytać ustawienie linii DDEN kontrolera dyskietek (zanegowana kopia bitu 5 rejestru pomocniczego FDC, którego nie można odczytywać),
Bit 4 - początkowe ustawienie zegara CPU (zworka zwarta to 1),
Bit 5 - początkowe ustawienie zegara FDC (jw.)
Bit 6 - początkowe ustawienie obsługi przerwań UART (jw.)
Bit 7 - konfiguracja tylko z dwoma dwustronnymi napędami dyskietek (na stałe tylko na zworce) - napędy A i B mogą być obsługiwane dwustronnie lub jednostronnie, a napędy C i D to druga strona dyskietki A i B

Przy włączonej obsłudze przerwań UART można odczytać status przerwania z portu #E0 (przy wyłączonych przerwaniach nie jest adresowany).
Bit 0 - TxRDY kanał A,
Bit 1 - TxE kanał A,
Bit 2 - RxRDY kanał A,
Bit 3 - BRKDET kanał A,
Bit 4 - TxRDY kanał B,
Bit 5 - TxE kanał B,
Bit 6 - RxRDY kanał B,
Bit 7 - BRKDET kanał B

I jak ten ROM shadow zrobiłeś? W sensie, jak będzie w praktyce wyglądało jego kopiowanie?
Jeśli został wybrany bank ROM, to odczyt następuje z tegoż banku, a zapis jest możliwy do banku RAM o tym samym adresie.
Można odczytać komórkę ROM i zapisać do komórki RAM "pod spodem". Nie jest to cień sprzętowy, jeśli o to pytałeś (samo się nie kopiuje).

Trochę to psuje możliwość programowego nadpisywania FlashROM, ale może to i dobrze.
Zawsze mogę zrobić inną wersję wsadu dla CPLD (bo na kolejny rejestr do wyłączania w trakcie pracy już nie mam miejsca).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.04.12, 22:16:23
[Jak się okazało do pierwszej prezentacji nie były potrzebne szczegóły. Całe skupienie poszło na model CPLD :P

Wiesz, najpierw ogół, potem szczegół :)

Cytuj
Pozostałe bity to adres banku od 0 do 31 po 16 KB każdy.

Czyli dowolne 16 KB z RAM i ROM można przyporządkować do dowolnej ćwiartki przestrzeni adresowej, łącznie z powtórzeniami? W sensie - można mieć to samo 16 KB "widziane" przez CPU cztery razy?

Cytuj
Można odczytać komórkę ROM i zapisać do komórki RAM "pod spodem". Nie jest to cień sprzętowy, jeśli o to pytałeś (samo się nie kopiuje).

Rozumiem: /RD wybiera ROM, /WR wybiera RAM w tej samej przestrzeni adresowej CPU.
Sprzętowe kopiowanie nie miałoby specjalnie sensu raczej.

Cytuj
na kolejny rejestr do wyłączania w trakcie pracy już nie mam miejsca

To jest znak! Potrzebujesz więcej makrocel! :D EPM7096LC84 można kupić poniżej 40 zł...
Wiem, wiem - znowu przynudzam o CPLD ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.13, 05:34:13
Czyli dowolne 16 KB z RAM i ROM można przyporządkować do dowolnej ćwiartki przestrzeni adresowej, łącznie z powtórzeniami? W sensie - można mieć to samo 16 KB "widziane" przez CPU cztery razy?
Nie wiem w jakim celu, ale można.

Cytuj
Rozumiem: /RD wybiera ROM, /WR wybiera RAM w tej samej przestrzeni adresowej CPU.
W tym samym segmencie ORAZ w banku RAM o tym samym numerze co bank ROM (banki mają wspólne adresowanie A14..A18).

Cytuj
To jest znak! Potrzebujesz więcej makrocel! :D EPM7096LC84 można kupić poniżej 40 zł...
Wiem, wiem - znowu przynudzam o CPLD ;)
Mam też Xillinx XC95108, ale nie o to chodzi, żeby to rozciągać.
Pierwotnie miała być FDD3500 z procesorem Z180 i jeszcze większą ilością bajerów, ale już się w jeden "zbyt ambitny" projekt utopiłem i nie wiem czy mi życia wystarczy na dokończnie (to frustrujące).
Tak więc trzeba raczej zachować umiar i FDD3500 już sobie odpuszczę.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.13, 06:42:00
Do opisania został jeszcze tryb BOOT. Po włączeniu zasilania banki domyślnie dostają adresy od 0 do 3 w RAM.
Po resecie (obojętnie czy od zasilania czy z przycisku), pierwsze 8 KB jest czytane z ROM o numerze zawartym w banku 0.
W tym czasie 8 KB RAM w banku 0 jest niedostępne (tak jest w oryginale i tego nie będę zmieniał).
Po wyjściu z trybu BOOT (bit 6 rejestru pomocniczego FDC ustawiany na 1) wraca "normalne" adresowanie, które opisałem wcześniej.

Ponieważ rejestry banków nie są kasowane resetem z przycisku, jest możliwość zamiany procedury startującej.
System nie musi być ładowany z dyskietki, ale na przykład z któregoś z banków ROM (ktoś kiedyś pytał o CP/M ładowany z ROM ;) ).

A w sumie co mi tam:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity FDDX is
  Port (
-- inputs
    CLK16      : in  std_logic;                        -- wejście generatora 16 MHz
    nRESET     : in  std_logic;                        -- /RESET
    nPwrOn     : in  std_logic;                        -- kasowanie rejestrów konfiguracyjnych po włączeniu zasilania
    nBUSGE     : in  std_logic;                        -- /BUSGE - przekazanie sterowania zewnętrznemu układowi
    IROM       : in  std_logic;                        -- IROM - odłączenie wewnętrznej pamięci ROM
    nRFSH      : in  std_logic;                        -- /RFSH
    nIORQ      : in  std_logic;                        -- /IORQ
    nMREQ      : in  std_logic;                        -- /MREQ
    nRD        : in  std_logic;                        -- /RD
    nWR        : in  std_logic;                        -- /WR
    AL         : in  std_logic_vector(7 downto 4);     -- A4..A7
    AH         : in  std_logic_vector(15 downto 13);   -- A13..A15
    nMixDrive  : in  std_logic;                        -- /MixDrive - napędy C i D jako druga strona dyskietki A i B
    nTurbo     : in  std_logic;                        -- /Turbo CPU_CLK = 8 MHz
    nHD        : in  std_logic;                        -- /HD obsługa dysków HD
    nUINT      : in  std_logic;                        -- /UINT obsługa przerwań UART
    INTRQ      : in  std_logic;                        -- FDC INT in
    TxRDY      : in  std_logic_vector (1 downto 0);    -- UART Tx Ready
    TxE        : in  std_logic_vector (1 downto 0);    -- UART Tx End
    RxRDY      : in  std_logic_vector (1 downto 0);    -- UART Rx Ready
    BRKDET     : in  std_logic_vector (1 downto 0);    -- UART Break Detected
--  bidirectional
    DB         : inout  std_logic_vector (7 downto 0); -- D0..D7
-- outputs
    RESET      : out std_logic;                        -- RESET dla WD2123
    CLK_CPU    : out std_logic;                        -- CLK dla CPU
    CLK_FDC    : out std_logic;                        -- CLK dla FDC
    CLK4       : out std_logic;                        -- CLK 4 MHz na wyjście Ext CLK
    MA         : out std_logic_vector (18 downto 14);  -- MA14..MA18
    nROMCS     : out std_logic;                        -- /ROM CS
    nRAMCS     : out std_logic;                        -- /RAM CS
    nOUT       : out std_logic;                        -- /OUT
    nIN        : out std_logic;                        -- /IN
    nFDC       : out std_logic;                        -- FDC CS
    nDDEN      : out std_logic;                        -- FDC DDEN
    nINT       : out std_logic;                        -- FDC INT out
    nRS1       : out std_logic;                        -- UART CS1
    nRS2       : out std_logic;                        -- UART CS2
    nRS3       : out std_logic;                        -- UART CS3
    nDRV       : out std_logic_vector (3 downto 0);    -- /SEL0../SEL3
    nSide      : out std_logic;                        -- /SIDE1
    nInUse     : out std_logic;                        -- /INUSE
    LED_Turbo  : out std_logic;                        -- LED Turbo mode
    LED_HD     : out std_logic;                        -- LED HD mode
    LED_InUse  : out std_logic);                       -- LED InUse
end FDDX;

architecture Behavioral of FDDX is

attribute NOREDUCE: string;

signal BNK0    : std_logic_vector (5 downto 0);        -- rejestr banku segmentu 0 (0000-3FFF), bit 5: 0=RAM, 1=odczyt ROM, zapis RAM
signal BNK1    : std_logic_vector (5 downto 0);        -- rejestr banku segmentu 1 (4000-7FFF)
signal BNK2    : std_logic_vector (5 downto 0);        -- rejestr banku segmentu 2 (8000-BFFF)
signal BNK3    : std_logic_vector (5 downto 0);        -- rejestr banku segmentu 3 (C000-FFFF)
signal CONF    : std_logic_vector (2 downto 0);        -- rejestr konfiguracji CLK, INT
signal REGD    : std_logic_vector (7 downto 0);        -- rejestr wyboru napędów
signal REGC    : std_logic_vector (1 downto 0);        -- rejestr dzielnika CLK
signal RD      : std_logic;
signal WR      : std_logic;
signal IORQ    : std_logic;
signal MREQF   : std_logic;                            -- MREQ and not RFSH
signal portOUT : std_logic;                            -- zapis        #20
signal portIN  : std_logic;                            -- odczyt       #20
signal portE0  : std_logic;                            -- zapis/odczyt #E0 zapis REGD, odczyt status przerwań UART
signal portFDC : std_logic;                            -- zapis/odczyt #C0..#C3
signal portRS1 : std_logic;                            -- zapis/odczyt #80..#81 i #A0..#A1
signal portRS2 : std_logic;                            -- zapis/odczyt #40..#41 i #60..#61
signal portRS3 : std_logic;                            -- zapis/odczyt #00..#01
signal portCTL : std_logic;                            -- zapis/odczyt #D0, bit 0: Turbo, bit 1: HD, bit 2: MixDrive (tylko odczyt)
signal portBNK : std_logic;                            -- zapis        #F0, bit 7,6: segment 0..3, bit 5: 0=RAM, 1=ROM, bit 4..0: nr banku
signal ROMCS   : std_logic;
signal RAMCS   : std_logic;       

attribute NOREDUCE of CLK16   : signal is "TRUE";
attribute NOREDUCE of CLK_CPU : signal is "TRUE";
attribute NOREDUCE of CLK_FDC : signal is "TRUE";
attribute NOREDUCE of CLK4    : signal is "TRUE";
attribute NOREDUCE of RESET   : signal is "TRUE";

begin
  RD      <= not nRD;
  WR      <= not nWR;
  IORQ    <= not nIORQ and nBUSGE;
  MREQF   <= not nMREQ and nRFSH and nBUSGE;
 
  portOUT <= IORQ and  WR        and not AL(7) and not AL(6) and     AL(5) and not AL(4); -- #20
  portIN  <= IORQ and        RD  and not AL(7) and not AL(6) and     AL(5) and not AL(4); -- #20
  portRS1 <= IORQ and (WR or RD) and     AL(7) and not AL(6)               and not AL(4); -- #80, #A0
  portRS2 <= IORQ and (WR or RD) and not AL(7) and     AL(6)               and not AL(4); -- #40, #60
  portRS3 <= IORQ and (WR or RD) and not AL(7) and not AL(6) and not AL(5) and not AL(4); -- #00
  portFDC <= IORQ and (WR or RD) and     AL(7) and     AL(6) and not AL(5) and not AL(4); -- #C0
  portE0  <= IORQ and                    AL(7) and     AL(6) and     AL(5) and not AL(4); -- #E0   
  portCTL <= IORQ and                    AL(7) and     AL(6) and not AL(5) and     AL(4); -- #D0
  portBNK <= IORQ and                    AL(7) and     AL(6) and     AL(5) and     AL(4); -- #F0
 
  REGDlatch : process (nRESET, nPwrOn, nWR)
  begin
    if (nRESET = '0' or nPwrOn = '0') then
      REGD <= "00000000";
    elsif (portE0 = '1' and nWR'event and nWR = '1') then
      REGD <= DB;
    end if;
  end process;
 
  CONFlatch : process (nRESET, nPwrOn, nTurbo, nHD, nUINT, nWR)
  begin
    if (nRESET = '0' and nPwrOn = '0') then 
      CONF(0) <= not nTurbo;
      CONF(1) <= not nHD;
      CONF(2) <= not nUINT;
    elsif (portCTL = '1' and nWR'event and nWR = '0') then
      CONF <= DB(2 downto 0);
    end if;
  end process;
 
  STATread : process (nMixDrive, nPwrOn, nTurbo, nHD, nUINT, TxRDY, TxE, RxRDY, BRKDET, nRD)
  begin
    if ((portCTL = '1' or (portE0 = '1' and CONF(2) = '1')) and nRD = '0') then
      DB(7) <= (portCTL and not nMixDrive) or (portE0 and CONF(2) and BRKDET(1));
      DB(6) <= (portCTL and not nUINT)     or (portE0 and CONF(2) and RxRDY(1));
      DB(5) <= (portCTL and not nHD)       or (portE0 and CONF(2) and TxE(1));
      DB(4) <= (portCTL and not nTurbo)    or (portE0 and CONF(2) and TxRDY(1));
      DB(3) <= (portCTL and not REGD(5))   or (portE0 and CONF(2) and BRKDET(0));
      DB(2) <= (portCTL and CONF(2))       or (portE0 and CONF(2) and RxRDY(0));
      DB(1) <= (portCTL and CONF(1))       or (portE0 and CONF(2) and TxE(0));
      DB(0) <= (portCTL and CONF(0))       or (portE0 and CONF(2) and TxRDY(0));
    end if;
  end process;

  BANKlatch : process (nRESET, nPwrOn, nWR, DB, AH, BNK0, BNK1, BNK2, BNK3)
  begin
    if (nRESET = '0' and nPwrOn = '0') then
      BNK0 <= "000000";
      BNK1 <= "000001";
      BNK2 <= "000010";
      BNK3 <= "000011";
    elsif (portBNK = '1' and nWR'event and nWR = '0') then
      case DB(7 downto 6) is
        when "00"   => BNK0 <= DB(5 downto 0);
        when "01"   => BNK1 <= DB(5 downto 0);
        when "10"   => BNK2 <= DB(5 downto 0);
        when others => BNK3 <= DB(5 downto 0);
      end case;
    end if;
    case AH(15 downto 14) is
      when "00"   => MA <= BNK0(4 downto 0);
      when "01"   => MA <= BNK1(4 downto 0);
      when "10"   => MA <= BNK2(4 downto 0);
      when others => MA <= BNK3(4 downto 0);
    end case;
  end process;
 
  MemorySelect : process (AH, BNK0, BNK1, BNK2, BNK3, REGD, MREQF, RD, WR)
  begin
    if (REGD(6) = '0') then -- BOOT
      ROMCS <= MREQF and RD and not AH(15) and not AH(14) and not AH(13);
      RAMCS <= MREQF and (WR or RD) and AH(15) and AH(14) and AH(13);
    else
      case AH(15 downto 14) is
        when "00"   => ROMCS <= MREQF and RD and BNK0(5);
                       RAMCS <= MREQF and (WR or (RD and not BNK0(5)));
        when "01"   => ROMCS <= MREQF and RD and BNK1(5);
                       RAMCS <= MREQF and (WR or (RD and not BNK1(5)));
        when "10"   => ROMCS <= MREQF and RD and BNK2(5);
                       RAMCS <= MREQF and (WR or (RD and not BNK2(5)));
        when others => ROMCS <= MREQF and RD and BNK3(5);
                       RAMCS <= MREQF and (WR or (RD and not BNK3(5)));
      end case;
    end if;
  end process;
 
  ClockDivider : process (CLK16, CONF, REGC)
  begin
    if (CLK16'event and CLK16 = '1') then
      if (REGC = "11") then
        REGC <= "00";
      else
        REGC <= REGC + 1;
      end if;
    end if;
    if (CONF(1) = '1') then -- dyskietki HD
      CLK_FDC <= not CLK16;   -- 16 MHz
      CLK_CPU <= not REGC(0); -- 8 MHz wymuszone turbo CPU
    else
      CLK_FDC <= not REGC(0); -- 8 MHz
      if (CONF(0) = '1' ) then -- turbo CPU
        CLK_CPU <= not REGC(0); -- 8 MHz
      else
        CLK_CPU <= not REGC(1); -- 4 MHz
      end if;
    end if;
    CLK4 <= REGC(1);
  end process;
 
  DRVout : process (nMixDrive, REGD)
  begin
    if (nMixDrive = '0') then
      nDRV(0) <= REGD(0) and REGD(2);
      nDRV(1) <= REGD(1) and REGD(3);
      nDRV(2) <= not nMixDrive;
      nDRV(3) <= not nMixDrive;
      nSide   <= REGD(2) and REGD(3) and REGD(4);
    else
      nDRV    <= REGD(3 downto 0);
      nSide   <= REGD(4);
    end if;
  end process;
 
  RESET      <= not nRESET;
  nROMCS     <= not ROMCS and IROM;
  nRAMCS     <= not RAMCS;
  nINT       <= not (INTRQ or (CONF(2) and (TxRDY(0) or TxE(0) or RxRDY(0) or BRKDET(0) or TxRDY(1) or TxE(1) or RxRDY(1) or BRKDET(1))));
  nOUT       <= not portOUT;
  nIN        <= not portIN;
  nFDC       <= not portFDC;
  nDDEN      <= REGD(5);
  nRS1       <= not portRS1;
  nRS2       <= not portRS2;
  nRS3       <= not portRS3;
  nInUse     <= REGD(7);
  LED_Turbo  <= CONF(0);
  LED_HD     <= CONF(1);
  LED_InUse  <= not REGD(7);

end Behavioral;
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.04.13, 08:03:25
@pear: bardzo dobra robota i ciekawe nowe funkcje. Tylko czy żadna z nich nie pogryzie się z istniejącym oprogramowaniem? 
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.13, 08:13:51
Nie powinno się pogryźć. Adresowanie zostało oryginalne.
Jedyna zmiana, to dodatkowa linia A4 w dekodowaniu portów.
Czy to zaszkodzi ? Wyjdzie w praniu.

Przy okazji. Czy jak wystawiam dane na szynę danych to tam powinno być nRD'event (zapis do rejestru i wystawienie na zewnątrz) czy samo nRD='0' (wystawienie sygnału z bufora) ?
Nie robiłem dotąd dwukierunkowych sygnałów w VHDL.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.13, 10:45:23
Doczytałem o portach dwukierunkowych, poprawiłem (trzeba było dodać stan "Z").
Trochę zoptymalizowałem i zmieściła się dodatkowa zworka i bit w konfiguracji do przełączania Flash do zapisu w trakcie pracy (wtedy nie ma cienia na RAM).
Bity 3 i 7 przy odczycie rejestru konfiguracji zmieniły znaczenie na obsługę /FlashWriteEnable.

Zostały 2 nóżki, 2 makrocele i zwolniło się trochę logiki (zostało 10 niewykorzystanych bloków funkcjonalnych).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.14, 06:45:13
Zrobiłem pierwszą przymiarkę do płytki. Niestety przybyło drugie tyle buforóŵ do napędów.
Wydłużenie płytki o te kilka centymetrów brakujących do długości przeciętnego napędu to za mało.
Zmieni się więc format na Mini ITX. I tak będzie potrzebna obudowa na zmieszczenie wszystkich napędów i solidny zasilacz. No i odpadnie rysowanie obudowy i czekanie 3 dni na wydruk.
Skoro ITX, to muszę jeszcze doprojektować jakiś sensowny układ do załączania zasilacza. Ma ktoś jakieś sprawdzone rozwiązanie (start na przycisk, wyłączenie po przytrzymaniu przycisku kilka sekund) ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.04.14, 07:06:39
Może taki gotowiec: https://www.analog.com/media/en/technical-documentation/data-sheets/2955fa.pdf

Nie trzeba wyważać otwartych drzwi.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.14, 08:45:03
Dlatego pytam, żeby niczego nie wyważać.
Fajny układ, czegoś takiego szukałem.
Jednym przyciskiem załatwi włączanie zasilania i ręczny reset.
Dzięki.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.15, 15:59:58
Wstępny draft rozmieszczenia elementów. Płytka w formacie Mini ITX (170x170 mm, otwory montażowe zgodnie ze specyfikacją standardu).
Teraz wszystko się mieści, a nawet jest dość luźno i przewiewnie.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.04.15, 16:07:53
O, i o to się partia biła! ;)
Śliczne :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.04.15, 18:34:19
To teraz trasowanie na dwóch warstwach :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.04.15, 22:07:50
Zgrabnie wyszło.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.25, 05:35:55
Płytka wydziergana bez autoroutera, ale lubię jak ścieżki są poprowadzone regularnie, a nie chaotycznie gdzie popadnie.
Ponieważ ten układ do sterowania zasilaczem ATX w pojedynczych sztukach, owszem jest dostępny, ale w cenach dla mnie nieakceptowalnych jak za wyłącznik, powstała jeszcze druga płytka.
Za cenę tego scalaka, ze szpargałów w garażu zmontuję sobie moduł (a'la SO DIMM). Będzie więcej pola do zabawy ;)

W międzyczasie dotarły CPLD. Wszystkie czyściutkie, pięknie pomalowane i z jednej serii ... Taa, programator miał jednak inne zdanie.
Szczęśliwie wewnątrz wszystkie są Xillinxami XC9752, ale z trzech różnych serii. Oczywiście wszystkie używane, a nie nowe, ale do tego już przywykłem.
Z 10 sztuk: 3 są takie jak powinny być; kolejne 2 są starszego typu, ale stosując sztuczkę udaje się je zaprogramować przez kabel USB; pozostałe są jeszcze starsze i nie nadają się do programowania kablem USB, a że na razie nie mam odpowiedniego adaptera, to nie wiem czy całkiem sprawne.

Do końca tygodnia powinienem dopieścić płytki i posłać do produkcji.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.04.25, 06:13:21
Ładnie.

Tak, ten scalak nie jest tani, ale jeśli policzysz wszystkie części na dodatkową płytkę, czas i prąd poświęcony na zaprojektowanie, zaprogramowanie i składanie dodatkowego modułu, to scalak może wyjść taniej. Na Ali leży po 30-40 dolców za 10 sztuk. ;) RS Polska ma po 34 zł za sztukę (w detalu) i są dostępne. A wykorzystany przez Ciebie AT89C2051 jest po 12 zł u dużych dystrybutorów. Moim zdaniem skórka za wyprawkę. No ale ja nie lubię dodatkowych uP, które trzeba dodatkowo programować. No może ATtiny jestem w stanie przeboleć, ale 8051?

CPLD z Chin to loteria. Mam kilka XC9536/72, sygnatura mówi, że są programowalne przez USB, ale za żadne skarby nie chcą się programować, pomimo sztuczek i zaklęć (http://www.blunk-electronic.de//ise/howto_erase_XC9500.pdf).

Tak z ciekawości, czy piszesz też nowy ROM lub patcha do TOSa, który wykorzysta wszystkie dodatkowe "bajery"?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.04.25, 07:07:22
Moim zdaniem skórka za wyprawkę. No ale ja nie lubię dodatkowych uP, które trzeba dodatkowo programować.
Napisałem, że będzie więcej zabawy :) Poza tym zalega mi co najmniej listwa AT89C2051, których już raczej do niczego poważnego nie wykorzystam.
Oprócz tego złącze modułu zaprojektowałem w takim układzie, że zamiast niego można wstawić ... zworki i wyłącznik.

Tak z ciekawości, czy piszesz też nowy ROM lub patcha do TOSa, który wykorzysta wszystkie dodatkowe "bajery"?
Cały projekt opiera się na tym, że nie trzeba niczego nowego napisać, żeby go uruchomić. W teorii powinien zadziałać na tym oprogramowaniu, które już istnieje.
Jeśli ktoś zechce wykorzystać nowe możliwości, to trzeba będzie dopisać nowy kawał kodu. Ale coś mi się zdaje, że trojacek od dawna ostrzy sobie na to zęby ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Tygrys w 2023.04.25, 19:48:32
Ciekawy projekt! Trzymam kciuki.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.04.26, 14:53:33
I have my eyes on this and will keep looking for updates.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.15, 19:52:06
Płytki przyszły. Pierwszy testowy prototyp zmontowany.
Diody świecą, nawet reagują na ustawienie zworek po załączeniu zasilania.
Taktowanie dla procesora i FDC jest. Dyskietka się kręci, ale na razie to wszystko.
Trzeba na spokojnie przeanalizować o co chodzi i pomierzyć newralgiczne punkty.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.05.15, 20:50:35
Jak widzę, pole masy tradycyjnie a'la Timex, w krateczkę :)
Bardzo fajnie to wyszło, gratuluję jeszcze raz pomysłu.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.15, 23:46:55
Śliczności!
Czas zacząć szukać obudowę :D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.05.16, 13:54:24
Zapytaj Pear'a. Ma on namiary na fajne obudowy akurat pod ten projekt.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.16, 16:52:12
Pear, masz? :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.16, 17:44:29
Jak się dobrze poszuka, to się znajdzie ;) I to niedrogo.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KrisZX w 2023.05.16, 18:39:50
Piękne. I w końcu właściwy format PCB, świetnie że będzie można dobrać obudowę taka jaka komu pasuje. Doskonała robota.  ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.16, 20:06:33
Po całym dniu walki, dzięki wsparciu i pomysłowi trojacka, w końcu ruszyło (https://www.youtube.com/watch?v=oU0te1p8MgQ) :)
Taka głupota, że sam bym na to nie wpadł. Teoretycznie sygnały WR i IORQ są generowane w tym samym momencie, ale w praktyce okazało się, że nie i co gorsze nie wiadomo, który wyjdzie pierwszy o koński włos.
System z dyskietki w końcu się wczytuje. Testy z komputerem niebawem.
Procesor taktowany na 8 MHz też bez problemu startuje i wczytuje system. A że się skubany wieszał, mimo namalowanych dumnie 20 MHz, to mu strzeliłem fotkę.
Taki on jest 20 MHz jak ze mnie muzyk - ponad 60 stopni przy taktowaniu na 4 MHz.
Reszta grzeje w normie.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.17, 00:50:06
Cieszę się, że mogłem jakoś pomóc :)
Ale z tymi malowanymi prockami to zdrowa skucha. W sumie ciężko będzie znaleźć coś, co pomyka na choćby 8 MHz...
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.05.17, 06:48:45
Po całym dniu walki, dzięki wsparciu i pomysłowi trojacka, w końcu ruszyło (https://www.youtube.com/watch?v=oU0te1p8MgQ) :)
Gratulacje!

Taka głupota, że sam bym na to nie wpadł. Teoretycznie sygnały WR i IORQ są generowane w tym samym momencie, ale w praktyce okazało się, że nie i co gorsze nie wiadomo, który wyjdzie pierwszy o koński włos.

A przypadkiem nie jest tak, że /WR wyprzedza /IORQ o kilka nanosekund? Wyprzedzenie zależne jest od pojemności obciążenia każdej z tych linii oraz zegara taktującego.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.17, 06:57:56
Wyszło na to, że te sygnały niby są równoczesne, ale niekoniecznie równocześnie docierają do celu. A to zaledwie 4 MHz.
Rozwiązaniem było zsumowanie sygnałów /IORQ oraz /WR i zatrzaskiwanie danych na zboczu wynikowego /IOWR.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KWF w 2023.05.17, 08:36:32
W kilku konstrukcjach widziałem takie rozwiązania dla /RD i /WR. Chyba nawet w Juniorze tak jest zrobione odwołanie do I/O.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.17, 11:48:13
Kilku?
Mnie natchnęło złącze ISA :D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.21, 14:43:02
Wiadomości z frontu (robót).
Płyta w wersji zmontowanej pod zasilacz ATX zasadzona w obudowie. Trzeba jeszcze podorabiać detale do zaślepienia dziury z tyłu obudowy.
Kontroler zasilacza ATX wymaga jeszcze drobnych poprawek, ale funkcjonalnie robi to co do niego należy:
- załącza zasilacz (jedno przyciśnięcie przycisku POWER, czas nieistotny),
- wyłącza zasilacz (przycisk przytrzymany powyżej 3 sekund),
- reset + ewentualny powrót do normalnych ustawień prędkości procesora i trybu kontrolera dyskietek (jedno krótkie przyciśnięcie),
- reset + załączenie Turbo (2 krótkie przyciśnięcia),
- reset + załączenie trybu HD (3 krótkie przyciśnięcia).
Diody LED na przednim panelu przystosowane pod potrzeby FDD X.
Dioda LED HDD (bo to obudowa PC ;)) (trójkolorowa): zielony/niebieski tryb pracy kontrolera dyskietek normalny/HD, czerwony załącza się od sygnału InUse (zmienia barwę wypadkową na żółtą lub magenta).
Dioda LED zasilania (trójkolorowa): zielony/niebieski prędkość procesora normalna/Turbo, czerwony świeci, gdy zasilacz jest wyłączony, ale podłączony do sieci.
Kable do zasilania napędów zrobione.

Najważniejsze, że główne założenie projektu zostało spełnione - działają poprawnie 3 napędy podłączone jednocześnie.
Na jednej taśmie (z przeplotem) napęd 3,5" i HxC (z przełącznikiem AB/BA), na drugiej taśmie (bez przeplotu, jak w PC XT) napęd 3" z CPC (oczywiście z odpowiednim adapterem z 34 na 26 pin).

Zostało jakoś te wszystkie napędy rozplanować w obudowie. Z 3" i 3,5" nie będzie problemu, ale HxC jakoś trzeba będzie wyrzeźbić, bo to wersja nie do kieszeni.

PS. Procesor pracujący z taktowaniem 8 MHz działa prawidłowo z systemem TOS, ale zwiększona prędkość nie wpływa na przyspieszenie przesyłania danych do ZX Spectrum.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.21, 15:05:13
Rewelka!
Czyli PCB już nie wymaga poprawek i może iść do fabryki, tak?

Cytuj
PS. Procesor pracujący z taktowaniem 8 MHz działa prawidłowo z systemem TOS, ale zwiększona prędkość nie wpływa na przyspieszenie przesyłania danych do ZX Spectrum.

To akurat mnie nie dziwi. Szybkość transmisji zależy od wolniejszego z procesorów. Ten w Spectrum jest wolniejszy i ogranicza przepustowość niezależnie od tego, czy stacja ma CPU z zegarem 4, 8 czy 300 MHz.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.21, 15:14:33
Czyli PCB już nie wymaga poprawek i może iść do fabryki, tak?
Nuda, prawda ? ;)

Nie no jest jeden kynarek, ale mało istotny. Czerwoną diodę od sygnalizacji standby zasilacza podłączyłem pod główne zasilanie i chwilę mi zeszło zanim rozkminiłem dlaczego nie świeci :D

Płytkę kontrolera zasilacza muszę lekko przeprojektować, bo nie dałem tam buzzera, a dobrze jak coś potwierdza co się kliknęło. Na obecnej płytce jest wciśnięta modyfikacja pod buzzer (nawet nie wygląda najgorzej).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.21, 15:16:56
Nuda, prawda ? ;)

Nie.
Dobra robota :)

Cytuj
Płytkę kontrolera zasilacza muszę lekko przeprojektować

Czy dobrze zrozumiałem, że ta płytka jest opcjonalna?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.21, 15:20:20
Tak, całkowicie opcjonalna. Wszystkie funkcje, którymi zawiaduje można załatwić zworkami i/lub przełącznikami.
Oprócz funkcji monitorowania zasilacza ATX (sygnał Power Good), o której zapomniałem wspomnieć.

Zresztą zasilacz ATX też jest opcjonalny :)
Jest wejście pod zasilacz wtyczkowy 5V lub 12V (wtedy na płycie montuje się stabilizator impulsowy na 5V). Identyczne rozwiązanie jakie było w poprzedniej FDD35.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.21, 16:10:34
To kiedy rusza fabryka?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.21, 16:35:43
Nie planuję fabryki. Jest kilka płytek do wzięcia, w razie potrzeby można dorobić więcej, ale w żadnym razie nie deklaruję się, że będę to tłukł seryjnie.
No chyba, że zaxon chciałby nowy produkt do oferty, to mogę przekazać komplet dokumentacji :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.05.21, 19:22:44
Gratuluje!!!
Czekam z niecierpliwością na dystrybucję PCB. W piwnicy poiwnna być u mnie jeszcze stacja 3" z rozmontowanego CPC512W.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.05.22, 09:01:32
Looks great!
I want one!
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.25, 18:58:58
Stan surowy prawie zamknięty ;)
Zamiast HxC wszedł Gotek przechrzczony na FlashFloppy, bo idealnie się wpasował w miejsce po panelu z gniazdami USB :)
Zostało jeszcze kilka drobiazgów do zrobienia i można budę zamykać.

Testy "ficzerów" z pamięcią pewnie dopiero na drugim egzemplarzu, a właściwie tym pierwszym, testowym, na którym dopracowywałem CPLD.

Ktoś się orientuje, czy FlashFloppy pracuje w trybie HD ?

PS. Procesor z prawdziwym nadrukiem nie grzeje prawie wcale.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: skoti w 2023.05.25, 19:58:55

Ktoś się orientuje, czy FlashFloppy pracuje w trybie HD ?


FlashFloppy obsługuje obrazy dyskietek HD bez problemu.

Super projekt. Gratulacje.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.05.25, 20:04:42
Piękne :)
Przypomina mi to trochę konstrukcję sprzętów grających Kasprzaka.

Można by jeszcze dodać wyjście zasilania w postacji gniazdka do podłączenia zasilania komputera.
Wtedy całość zasilana była by z jednego zasilacza.
Mocy raczej starczy :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: hsimpson w 2023.05.25, 20:15:47
Rewelacyjnie to wygląda :). Super robota.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.05.25, 22:19:53
Super, doskonale przemyślane :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.26, 05:30:01
Było dużo czasu na przemyślenia ;) Kolega hsimpson czeka na tą zabawkę coś z 5 lat (szybciej doczekał się wnuków ;) ).
Najwięcej czasu zajęło mi pogodzenie się z faktem, że poprzednia wersja FDD35 nie będzie pracować z "tymi" trzema napędami (bo nie i już).
Projekt spędzał mi sen z powiek, potem jeszcze świat się zaczął walić i tak sobie to wszystko leżało i czekało.
Przypomina mi to trochę konstrukcję sprzętów grających Kasprzaka.
Obudowa jest kupiona po taniości, zupełnie przypadkowo ma metalową siatkę na froncie jak w Kasprzaku.
Można by jeszcze dodać wyjście zasilania w postacji gniazdka do podłączenia zasilania komputera.
Za późno. Ramka do napędu 3" drukowała się 13 godzin, a specjalnych dziur w obudowie pod dodatkowe gniazda nie chcę robić.

Też mi się spodobał efekt końcowy, więc kupiłem sobie jeszcze 2 takie obudowy.
Jest szansa, że jeden egzemplarz zrobię dla siebie (drugi jak znam życie, ktoś wyrwie ;) ).

Ze względu na trudności z dostępnością sprawnych części i haracze nakładane przez zbójecki aparat państwowy, zaxon nie zdecydował się na produkcję.
Nie pozostaje mi więc nic innego jak projekty udostępnić (ten poprzedni również), ale to pewnie chwilę potrwa, bo jakiś opis wypadałoby zrobić.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Radosław w 2023.05.29, 21:14:43
Super projekt - Super wykonanie.

Kiedyś chodziło mi po głowie podłączenie do stacji TIMEX FDD3000 wszystkiego co się da tj. :
1. Stacja 3"
2. Stacja 3,5" lub zamiennie Gotek
3. Stacja 5 1/4" o małej gęstości 360 Kb
4. Stacja 5 1/4" o dużej gęstości zapisu  720Kb
Czy ten projekt ma takie możliwości ?

Obecnie mam nagrania pliki na wszystkich wymienionych nośnikach - zarchiwizowane dyskietki upubliczniłem na serwerze TDU.

Pozdrawiam serdecznie
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.30, 05:28:51
Teoretycznie to nawet FDD35 takie możliwości ma, ale dopiero podłączenie konkretnych trzech modeli napędów pokazało, że to tylko teoria.
Jednak podłączenie dwóch dowolnych napędów (nawet dowolnej kombinacji dwóch z tych trzech) zawsze działało.
W tym projekcie są 2 odseparowane od siebie kanały, więc podłączając do każdego z nich po 2 napędy powinno zadziałać.
W teorii. W praktyce, dopóki nie podłączysz i nie sprawdzisz, to nic pewnego nie ma.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.30, 08:37:05
Ja mam konfigurację 3" + 5,25" 360K + 5,25" 720K i działają wszystkie trzy napędy.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.30, 08:43:49
Prawdopodobnie wszystkie z podobnego okresu produkcji albo nawet ten sam producent. Farciarz :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Radosław w 2023.05.30, 16:08:22
Czyli teoretycznie  jeśli są dwa kanały to powinno to pozwolić również teoretycznie na podłączenie po 4 urządzenia na każdy kanał.
Czyli TEORETYCZNIE 8 napędów  ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.30, 16:27:06
System obsługuje tylko 4 napędy. Teoretycznie można by zrobić po 4 napędy na każdej taśmie i obsłużyć to odpowiednio w systemie, ale w tym projekcie sygnały wyboru napędów są te same do obu kanałów.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.30, 18:47:56
To ja może doprecyzuję, bo zaczynają się pojawiać dziwne tezy ;)

Poczynając od najbardziej logicznej warstwy - systemu operacyjnego, TOS V. A2 obsługuje maksymalnie 4 napędy (ale, uwaga, CP/M potrafi obsłużyć do 16 dysków!).

Z kolei FDC (kontroler napędów dyskietek), czyli w tym przypadku WD1770, nie zajmuje się zarządzaniem napędami, a jedynie obsługuje aktywny w danej chwili napęd. Wyborem aktywnego napędu zajmuje się dodatkowy rejestr I/O, który ma w FDD3000 przewidziane 4 bity na 4 napędy. Jak ktoś sobie dołoży rejestr albo zakombinuje numer napędu binarnie, to mamy 2 do potęgi 4 czyli 16 możliwości. Ale znów - o ile sobie do tego stworzy wsparcie w systemie operacyjnym.

Dalej mamy taśmę lub taśmy interfejsu kontroler->napęd (FDC->FDD). Pierwotny, 50-pinowy standard (dla dyskietek 8") przewidywał możliwość obsługi do 4 napędów, podobnie przycięty do 34 pinów najpowszechniejszy niegdyś standard dla napędów 5,25". Dopiero epoka PC przyniosła zmiany, w postaci obsługi co prawda tylko 2 napędów (ograniczenie wynikało z zastosowanego tam FDC, który sam obsługiwał wybór drive 0/1), ale z pozbyciem się obsługi opuszczania/podnoszenia głowic (bo ten mechanizm zniknął) i z dołożeniem rozdzielonego sterowania silnikami napędów (MOTOR ON/OFF). Tak więc w PC nie kręciły się niepotrzebnie wszystkie napędy, gdy dyskietka była tylko w jednym z nich (w retrokomputerach problem ten był czasem obchodzony dodatkową logiką na samym napędzie). A kto w PC chciał mieć więcej napędów dyskietek, instalował kolejny kontroler ("kanał") w innej przestrzeni adresowej.

Ostatni element to sam napęd. Stare flopy miały zworki, pozwalające zamapować napęd jako jeden z czterech. Późniejsze konstrukcje miały już tylko 2 zworki, a potem możliwość zmiany całkowicie zniknęła, bo każdy napęd był ustawiany fabrycznie jako "B" (drugi), bo pecety miały taśmę z przeplotem fragmentu i mapowanie A/B polegało na wpięciu drajwu za lub przed tym przeplotem.

Tak więc w FDD3000 (i klonach) z systemem TOS, o więcej niż 4 napędach możemy zapomnieć.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.05.30, 19:26:52
Tutaj są dwie tażmy, w każdej są 4 możliwe do wyboru napędy.
Można tak zmodyfikać projekt, aby na każdej taśmie były to 4 różne napędy.
Wymagałoby to dodatkowego rejestru wyboru napędu (lub zmiana sposobu wykorzystania tych 4 bitów w istniejącym rejestrze) oraz modyfikacji systemu TOS.
Gdyby się ktoś uparł i włożył trochę (nikomu niepotrzebnej) pracy, to jest to jak najbardziej możliwe.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.05.31, 13:49:01
Trzeba się cieszyć, że Pear-owi się chciało i zrobił.
Z tego, co wiem, to jest to jedyny działający "klon" Timex FDD 3/3000 na planecie Ziemia :)
Siłą tej stacji była możliwość uruchomienia na niej systemu CP/M i praca na nim.
Patrząc z pewnej perspektywy, wg. mnie, przystosowanie jej do pracy z Timex 2048 etc. było dołożone trochę " na siłę".
Widać to po transferze stacja - komputer.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.31, 16:32:11
Na siłę to raczej dołożono  CP/M.
FDD (3-pudełkowa) powstała jako pamięć zewnętrzna do TS2068. I w tej roli sprawdza się całkiem, całkiem.
Chwała Pearowi za jedynego klona stacji!
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.05.31, 18:27:46
A to nie było tak, że FDD 3 powstała po FDD 3000 ?
Właśnie jako wersja okrojona z RAM.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.05.31, 18:58:31
Z tego co wiem, to nie.
Zauważ,  że FDD3000 ma nowocześniejszą logikę - scalaki EFGJ zamiast kupy TTL-i oraz PAL-a. Podobnie w TI, jeden scalak z logiką zamiast 2 płytek.
Z tego co udało mi się przeczytać,  pierwszą stacją była srebrna,  3-pudełkowa "FDD" (w oznaczeniu nie ma cyfry "3") przeznaczona do współpracy z TS2068. Miała 16 KB RAM i została następnie przystosowana do współpracy z ZX Spectrum poprzez wymianę interfejsu (na czarny,  by się ludziom nie myliło).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.05.31, 20:04:23
Actually I believe that the Timex FDD (3 box) was made to work first for the Spectrum.
TI ROM have copyright 1984 for Spectrum/TC2048 and 1985 for the 2068 machines.
The design might had started for the TS2068 but probably for some problem it was changed for the Spectrum.

The FDD3000 appeared later with Terminal 3000. A campaign was launched to trade your Timex FDD for a FDD3000 by paying the price of a drive B for the normal FDD. First units have the same FDD controller with a RAM upgrade for 64K to run CP/M (and use the Terminal 3000). You can even find FDD3000 units with the original power supply box sawed in half inside FDD3000.
Big board version came later.
Last batch of TI used a gate array instead of PAL/GAL and TTL chips. Timex of Portugal was learning with INESC to use gate arrays to remove a lot of TTL chips.

Z tego co wiem, to nie.
Zauważ,  że FDD3000 ma nowocześniejszą logikę - scalaki EFGJ zamiast kupy TTL-i oraz PAL-a. Podobnie w TI, jeden scalak z logiką zamiast 2 płytek.
Z tego co udało mi się przeczytać,  pierwszą stacją była srebrna,  3-pudełkowa "FDD" (w oznaczeniu nie ma cyfry "3") przeznaczona do współpracy z TS2068. Miała 16 KB RAM i została następnie przystosowana do współpracy z ZX Spectrum poprzez wymianę interfejsu (na czarny,  by się ludziom nie myliło).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.05.31, 22:26:17
So I was wrong. Thanks for the correction.
My FDD 3 was easily upgradeable to a full 64kb of RAM, which I did.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.01, 07:13:15
Przejrzałem swoje zasoby i mam prośbę.
Mam mnóstwo obrazów dyskietek z TOS, kilka z CP/M dla FDD, ale nie mam w tych obrazach żadnych narzędzi, których mógłbym łatwo użyć do przetestowania dodatkowych funkcjonalności (banki pamięci, przełączanie taktowania w trakcie pracy).
Mam Turbo Pascala, ale w obrazach dyskietek dla CPC. Pojęcia nie mam jak to przenieść.

Czy ktoś poświęciłby czas na zmontowanie takiego kompletu obrazów ?
Jeden to TOS terminal (najlepiej w wersji dla ZX Spectrum).
Drugi to CP/M z BDOS pasującym do wersji terminala (bo wiem, że były co najmniej 2 i literki źle wyświetla jak się pomiesza wersje) oraz z Turbo Pascalem 3.0 do napisania prostych testów.

Od razu uprzedzę pytania dlaczego Turbo Pascal, a nie na przykład HiSoft C. Turbo Pascala znam na wylot.
Zaczynałem naukę programowania właśnie na 3.0 i poradzę sobie z obsługą bez marnowania czasu na naukę nowego narzędzia.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.01, 10:23:24
Powinienem mieć.
Ale sprawdzić mogę dopiero wieczorem.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.01, 11:27:28
Będę niezmiernie wdzięczny. Pośpiechu nie ma. Czas na testy będę miał najwcześniej w niedzielę wieczorem.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.06.02, 02:05:43
I have images (DSK format) of Terminal Emulator and CP/M here: https://timex.comboios.info/downdsk.html
I don't have Turbo Pascal 3, only Turbo Pascal 2 -> https://www.dropbox.com/sh/sbeng5e5ozviju3/AACb6RT62toHUgHvb7mKIbPTa?dl=0
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.02, 17:16:24
Thank you very much
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.04, 19:29:36
I po testach.
Pod CP/M wszystko pracuje stabilnie. Przez ponad 6 godzin miałem włączony tryb Turbo 8 MHz i żadnych zawieszeń (oczywiście wymieniłem Z80 na niemalowany).
Przełączanie trybu pracy Turbo/Normal i HD/DD w trakcie pracy bez resetu działa prawidłowo, bankowanie pamięci też (w CP/M można podmieniać segmenty 1 i 2, segmentów 0 i 3 nie ruszamy).
Można budę zamykać i oddać :)
W końcu :)
Do ogarnięcia została dokumentacja do udostępnienia.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.06.05, 07:21:48
Gratuluję po tylu latach zamknięcia projektu.
Nie każdy byłby tak wytrwały.
Zwłaszcza osoba, dla której miało być to zrobione :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.06, 07:02:14
Dojechała kolejna dostawa XC9572-PC84. Tym razem 10/10 sprawne (oczywiście malowane, 6 oryginałów i 4 od innej matki, ale programują się prawidłowo).
Do sprzedania będzie 5 zestawów płytka + zaprogramowany CPLD (https://www.speccy.pl/forum/index.php?topic=7223.0).
Dokumentacja dostępna na github (https://github.com/maciejgruszecki/FDD-X) (jeszcze niekompletna, ale już jest schemat i BOM).
I to by było na tyle.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.06, 22:42:00
Właśnie zaczynam kompletować elementy, bo udało mi się szczęśliwie w ostatnim momencie załapać na płytki :D
A gdzie dokładnie jest ten wspomniany BOM, bo na github'ie nie mogę jakoś tego dostrzec ? :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.06.06, 23:41:04
Przewiń schemat do końca :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.07, 06:30:30
Kompletny BOM jest na końcu schematu.
Zrobię jeszcze jeden BOM z podziałem na bloki funkcjonalne i wersję zasilania, bo nie wszystkie elementy są potrzebne.
Na razie można się posiłkować obrazkami (https://github.com/maciejgruszecki/FDD-X/tree/main/PCB/Assembly).

Dwie zworki oznaczone Tie 1 i Tie 2 w aktualnej wersji CPLD powinny być zawsze zwarte.
Zostały dwie niewykorzystane nóżki w układzie i aktualnie muszą być zwarte do masy właśnie tymi zworkami.

Generator montuje się tylko jeden :)
Albo scalony SMD 16 MHz albo układ na tranzystorze (elementy oznaczone jednym kolorem wokół tranzystora).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.07, 10:29:13
O, faktycznie jest na końcu schematów :D
W podglądzie na github'ie po prostu pokazuje dokument nie do końca i trzeba nacisnąć przycisk "więcej" by się BOM ukazał ;)

Czy bez tego UART'a da się to uruchomić i pracuje normalnie jako kontroler FDD bez funkcjonalności portów szeregowych czy też jest on tam niezbędny by w ogóle coś ruszyło ?
Jak się domyślam to zdobycie WD2123 może być sporym problemem, chyba że ktoś ma jakieś źródełko gdzie jeszcze można to zakupić ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.07, 10:37:48
Jeśli nie potrzebujesz interfejsów szeregowych, to zielonego bloku można nie montować. Bez niego reszta działa.
(https://github.com/maciejgruszecki/FDD-X/blob/main/PCB/Assembly/FDDX_options.png?raw=true)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.07, 11:34:56
Jeszcze jedno pytanie, czy zadziała tam też WD1770 czy musi być koniecznie WD1772 ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.07, 11:49:02
Zadziała, ale tylko w trybie DD. Nie będzie działać w HD, a że i tak na razie nie ma do tego trybu oprogramowania, to się nada.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.08, 16:05:12
Podczas przygotowywania dokumentacji znalazłem błąd w CPLD.
Dodałem do dekodowania adresów portów bit 4, aby zdekodować dodatkowe 2 adresy.
W związku z tym dodałem do wszystkich wcześniej istniejących adresów portów sprawdzenie czy bit 4 jest równy 0.
W jednym przypadku powinna być 1. Dotyczy to portu odpowiedzialnego za ustawianie prędkości transmisji UART (dekoduje się port 0x00, a powinien być 0x10).
Niestety w tych CPLD, które już wydałem nie będzie prawidłowo działać ustawianie prędkości UART.
Jeśli ktoś nie planuje użycia portów szeregowych, to nie ma problemu.
W przeciwnym wypadku poprawiony plik JEDEC wrzuciłem na github (https://github.com/maciejgruszecki/FDD-X/tree/main/PLD).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.08, 22:49:51
Dla mnie spoko, i tak nie mam UART'a, a jak by co to się przeprogramuje jeśli jest wsad :D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.18, 22:53:37
Blisko... coraz bliżej ;)

Nie miałem odpowiedniego dławika do przetwornicy więc nawinąłem sobie sam przy pomocy mostka RLC, wyszło 33,4uH.
Oscylator 16MHz na tranzystorku ma trochę małą amplitudę  ~1,6 Vpp, ale Xilinx chyba daje sobie z tym radę bo podzielił poprawnie CLK dla CPU na 4MHz ;)

Mam jeszcze tylko problem z odpowiednimi drabinkami rezystorowymi, dałem 4,7K może też zadziała :)
Gdzie znajdę sprawdzony wsad EPROM do tego FDDX ? OK, wsad jest na GitHub'ie.
Druga sprawa, czy ktoś podpowie jak ustawić zworki na TI-of-TTL A13, A14 i J3 ?
Nie bardzo też wiem o co chodzi z tymi zworkami na FDDX dla AT i XT oraz co zrobić ze złączami PW-RS i L-ATX i czy w przypadku montowania przetwornicy coś jeszcze trzeba mostkować ?

Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.19, 05:46:48
Generator z tranzystorem ma tę zaletę, że zawsze działa (jedynie w przypadku użycia układów HC trzeba mu zmienić nieco parametry pracy, żeby dawał sygnał o większej amplitudzie).

Jeśli w TI-of-TTL masz tylko jeden, podstawowy wsad, to zworki A13 i A14 łączysz do masy. Zworka J3 zostaje otwarta.

Zworki XT/AT służą do wyboru taśmy dla napędów.
XT to taśma ze wszystkimi liniami na wprost, bez przeplotu, która daje możliwość podłączenia wszystkich czterech napędów od A do D.
AT to taśma z przeplotem umożliwiająca podłączenie tylko dwóch napędów sygnowanych jako A i B.

Piny PW-RS służą do podłączenia przycisków Power i Reset. Na L-ATX są napięcia do sterowania diody LED z zasilacza ATX (zielona działa, czerwona wyłączony).

Jeśli zmontowałeś przetwornicę, to zakładam, że masz zasilacz wtyczkowy 12V. Wstawienie mostka LK12 podłącza napięcie z zasilacza do gniazda zasilania napędów.
(https://github.com/maciejgruszecki/FDD-X/blob/main/PCB/Assembly/FDDX_12V.png?raw=true)

Piny PS to miejsce, gdzie należy podłączyć wyłącznik zasilania.

Na złączu ATXctrl trzeba jeszcze zewrzeć dwa pola oznaczone RESET, aby działał przycisk Reset zamontowany z przodu płytki.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.19, 20:20:23
Wreszcie przyszedł czas na podłączenie tego do prądu, niestety nie mam pod ręką żadnego Speccy ani napędów.

Mam może trochę głupie pytania, bo nie miałem nigdy w rękach FDD3000 ani jego żadnego klona i nie wiem jak się to powinno zachowywać.
Wsady zaprogramowane, tylko czy ten 2KB do FDDX ma mieć niespełna kilkadziesiąt bajtów kodu reszta to FF czy może coś nie tak z samym tym wsadem ?
Po włączeniu zasilacza 12V do FDDX mam taki objaw że jedna dioda HD-IU świeci na różowo a druga Turbo na niebiesko i nic się nie dzieje i nie zmienia nawet po zamianie zworek Turbo i HD, tak ma to być ?
Czy istnieje jakiś wsad testowy/diagnostyczny ?
Jaką powinien mieć bezpieczną długość ten kabelek pomiędzy FDDX a TI-of-TTL i czy jest on pinowo 1:1 ?

I tyle testów na dzisiaj  :-X
Jutro jak czas pozwoli przewącham to oscyloskopem czy aby CPU przynajmniej daje oznaki życia i coś mu tam śmiga po magistrali ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.19, 20:51:08
 Może masz inną kolejność pinów w LED, bo HD-IU powinna się świecić zielona i czerwona, a Turbo tylko zielona.
Ustawienie zworek jest czytane tylko po włączeniu zasilania. Sam reset nie zmienia ustawień.
Zamontowałeś układ Power On Reset (to małe coś w obudowie jak tranzystor nad CPLD) ?
Kabel do interfejsu jest 1:1 i sprawdzona przeze mnie długość, na której działa nadal stabilnie to ok. metr.
Tak, kod rozruchowy zmięściłby się w 256 bajtach. Reszta systemu jest na dyskietce (dlatego świeci InUse, bo czeka na odczyt z dyskietki).
Bez podłączonego komputera też wczyta się system. Jeśli masz Goteka, to na wyświetlaczu będzie widać, że "wciągnęło" z dyskietki 4 ścieżki danych. Jeśli zwykły napęd z dyskietką, to będzie charakterystyczna seria stuknięć przesuwaną głowicą (tat tat, ta tat tat ;) )
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.19, 22:25:59
Niestety chip Power On Reset jeszcze nie jest zamontowany, czekam na dostawę.
Czy bez niego system się nie podniesie ?
W każdym razie po włączeniu niezależnie od zworek święcą się zawsze te same kolory LED'ów.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.20, 05:30:53
Bez PoR nie zainicjalizują się ustawienia startowe w rejestrach CPLD.
Testowo możesz zewrzeć pin wyjścia układu PoR (ten najbliżej CPLD) do masy, a potem Reset.

Nie próbowałem uruchamiania bez tego sygnału, a tam nawet nie ma żadnego pull-up'a.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.20, 13:18:17
Płyta ma standardowe wymiary i otwory montażowe w stadardzie Mini ITX, więc będzie pasować również do Micro ATX.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.20, 13:21:11
Tadaaaam, wszystko wstępnie śmiga nawet bez PoR'a.  :D
Zaczytuje TOS i ładują się gry oraz ładuje CP/M i nawet Turbo Pascal się odpalił na moim Timexie 2048.

@Pear, moje gratulacje ten projekt to kawał fajnego hardware i do tego jeszcze z możliwością rozbudowy w przyszłości o nowe ficzery jeśli będzie się komuś kiedyś chciało nad tym pochylić  ;)

Jedna uwaga:
Kabelek nie jest 1:1 tylko musi być tzw "lustro", trochę powalczyłam zanim na to wpadłem a wystarczyło przegwizdać miernikiem zanim zacisnąłem taśmę do TI-of-TTL :P
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.20, 13:26:44
Jest 1:1. To piny w gniazdach męskie-żeńskie są liczone od przeciwnej strony :)
W interfejsie jest męskie, w stacji żeńskie. Teoretycznie można więc spiąć wszystko "na krótko," bez kabla.

Cieszę się, że pierwszy monter przetarł szlak ;)
Dobrej zabawy :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.20, 23:57:10
Jeszcze jedno pytanie bo jakoś nie mogę sobie poradzić z ładowaniem obrazów dyskietek na Gotek'u o pojemności 640KB, czy do tego jest jakaś specjalna procedura lub dodatkowe oprogramowanie by one zadziałały ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.21, 05:27:41
Jeśli obraz dyskietki jest poprawny, to wystarczy zmapować.
Chyba, że przygotowałeś obraz w SCADM. Parę dni temu było o tym w innym wątku.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.21, 09:27:26
Pobrałem obrazy z tutejszego  ftp://speccy:[email protected]/ są tam też obrazy jak mniemam DSDD ~640kb na jakich się to FDC zawiesza do tego stopnia że przycisk RESET nie pomaga i już tylko odciąć zasilanie trzeba.
Działa mi to jedynie poprawnie z typowymi obrazami SSSD ~170kb.

Ktoś może zapodać przykładowy obraz dyskietki DSDD jaka powinna zadziałać z Gotek'iem, bo już nie wiem czy coś jest z tymi moimi orazami dyskietek czy z konfiguracją samego Gotek'a z FlashFloppy ?
 
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: skoti w 2023.06.21, 09:58:42
Sprawdź obrazy z katalogu Batszaman. U mnie działają. Próbowałeś formatować zwykłą dyskietkę na 640kb? Może firmware w goteku ma jakiś problem.
W jakiej wersji masz firmware w goteku?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.21, 11:43:40
Dzięki, z katalogu Batszaman obrazy DSDD mi się teraz ładują :D

Zaktualizowałem też FlashFloppy do najnowszej wersji i zmieniłem Pendrive na nowy, bo tamten coś mi chyba fixował.

Jeszcze pytanie jak formatować dyskietkę na 640kb ?
Wystarczy zwykłym poleceniem "FORMAT *" i odpowiednimi parametrami czy trzeba mieć jakiś program do tego ?

Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: tdu w 2023.06.21, 12:15:51
wystarczy na koncu dodać literkę d
albo uzyc mojego programu START
gdzie jest opcja formatowania
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.21, 23:00:38
Jeśli kogoś to interesuje to na ebay są dostępne WD2123 za niecałe 95zł z przesyłką oraz WD1770 za około 50zł.
Właśnie zamówiłem, zobaczymy czy, kiedy i co to przyjdzie  :)

WD1772 też są, ale cena+porto to około 200zł, ja odpuszczam bo mam jeszcze jeden wylut z Atari ST awaryjnie w zapasie ;)

tanio to już było... i raczej nie będzie  :P
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Maryjan w 2023.06.22, 09:02:54
Kupiłem dwie sztuki WD1770 po 50 pln sztuka od Chińczyka i ...
Jedna sztuka nie działa, zaś druga, działa do czasu aż się nie nagrzeje.
Tak więc ostrożnie bym podchodził do tych zakupów po 50 pln sztuka.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: paroos w 2023.06.22, 10:47:23
Ehh, szkoda że nie nikt się nie pokusił narazie o udostepnienie drop-in replacement do tego.
Implementacja już jakaś jest, chyba w verilogu.
Ale w sumie rozumiem, sprzedawać się tego nie opłaca, bo mało kto się zdecyduje po kosztach jakich by to wymagało (pewnie z 50$)
A jako openhardware mało który twórca decyduje się udostępnić swoją pracę. Wolą żeby leżało w szufladzie.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Waldek w 2023.06.23, 09:11:52
@Maryjan
Mam bardzo dobre doświadczenia z kupowaniem przestarzałych układów na stronie utsource.net.
W ofercie jest wiele używanych układów scalonych, ale są one oryginalnych producentów.
Na przykład tutaj https://www.utsource.net/sch/WD1770.html
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.23, 09:47:33
Z utsource bywa różnie. Czasem jest super, a czasem są problemy.
Zdarzyło mi się, że po złożeniu zamówienia i opłaceniu dostałem zwrot kasy i informację, że towaru nie ma.
Zaxon kilka razy pisał, że żądali dopłaty do ceny, którą podali.
Raz zdarzyło mi się również, że kilka układów w partii przyszło niesprawnych.
Dziś już nie ma pewnych i bezpiecznych źródeł zaopatrzenia w komponenty, zwłaszcza te stare.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Waldek w 2023.06.23, 10:31:13

Dziś już nie ma pewnych i bezpiecznych źródeł zaopatrzenia w komponenty, zwłaszcza te stare.

Mogę się z tobą w pełni zgodzić, czasy się zmieniły.

Jeśli chodzi o utsource, to do tej pory miałem dużo szczęścia,
w przeciwnym razie nie polecałbym go tutaj na forum.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.23, 12:58:46
Utsource jest głównie pośrednikiem,  więc może się wszystko trafić. Ale czasami sprzedaje pod własnym brandem i wtedy raczej wszystko jest cacy. Oczywiście ceny są wtedy wyższe.
Tak kupiłem kiedyśprzez ich stronę kilka CPLD, tańsze (trafił się jeden uwalony) i droższe (pod własną marką,  wszystkie sprawne). 
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.26, 22:10:00
Jeśli kogoś to interesuje to na ebay są dostępne WD2123 za niecałe 95zł z przesyłką oraz WD1770 za około 50zł.
(...)
tanio to już było... i raczej nie będzie  :P

No właśnie.
Skłania mnie do małej rozkminki, czysto teoretycznej.
Mając do dyspozycji szynę systemową, można się pokusić o małe modyfikacje systemu poprzez instalację wtykanej w złącze karty. Czyli np. zamiast WD177x, użyć innego, dostępnego FDC (a jest ich trochę, niedawno kupiłem oryginalne i8272, TVSAT ma tanio N82077SL, gdzieś widziałem też wersję NCR czy może Samsunga) plus kawałek ROM-u z procedurami obsługi (wersja 1 dla TOS, wersja 2 dla CP/M - bo może być trudno załatwić to wspólnym kodem).
Tyle, że odwołania do FDC są w kodzie w kilku miejscach, i to kompletnie innych w przypadku obu tych systemów. Czego zatem brakuje? Mechanizmu, który przy zdekodowaniu określonego adresu (dynamicznie - w formie programowalnego rejestru, a raczej kilku rejestrów) wywołuje przerwanie NMI, obsługiwane najlepiej ROM-em na dołożonej karcie.
Podobnie można załatwić temat kontrolera portów szeregowych.
No ale ja tak lubię sobie pogdybać, wybaczcie ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.06.27, 08:18:35
Można by się nawet pokusić o eksperyment kawałkiem karty wtykanej w slot FDD z zamiennikiem 1772 na jamims większym CPLD lub małym FPGA. Problem zgodności samego firmware w FDD oraz TOS w tym przypadku odpada.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 08:29:57
W ten sposób dojdziemy za moment do 8-bitowego XT ze slotami ISA :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 08:41:18
Jest w tym coś złego?
Noo właśnie,  przydałoby się więcej slotów :D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 10:00:38
Tak miała wyglądać FDD3500 z procesorem Z180. Tylko, czy to ma jakiś sens ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 10:16:53
Dla mnie ma :)
No ale rozumiem, że nie warto robić projektu dla kilku potencjalnych odbiorców.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 11:03:48
Projektu jak projektu, ale to już by trzeba oprogramować od podstaw.
Czyli w zasadzie to ja znam tylko jednego zainteresowanego ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 11:11:36
Dlatego napisałem, że kilku potencjalnych. Bo jeden jest zadeklarowany :D
Co chcesz oprogramowywać, wymieniając Z80 na Z180?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 11:16:57
Większy zakres adresowania pamięci, wbudowane porty UART i chyba jeszcze jakieś drobne sprawy do ogarnięcia tam były. Research robiłem kilka lat temu. Nawet mam kilka procesorów do testów kupionych.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 11:20:45
Ale to wszystko są rzeczy opcjonalne.
W trybie Z80 nic nie trzeba zmieniać.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 11:52:02
Kusisz ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: tapy w 2023.06.27, 12:00:12
Dokładnie, Z180 można używać jako zamiennik Z80 pod pewnymi zastrzeżeniami - w rachubę wchodzą tylko oficjalne instrukcje Z80 (nieoficjalne wywołają wyjątek lub kompletnie inne ich działanie) i zdaje się, że niektóre z nich wykonują się w mniejszej ilości taktów, ale to może być tylko problemem dla systemów czasu rzeczywistego. Dodatkowe peryferia (MMU, DMA, liczniki, asynchroniczne porty szeregowe i synchroniczny port) należy uaktywnić by móc z nich skorzystać. Jak dobrze pamiętam, to nawet Z280 również po RESET działa jak Z80.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 14:15:38
Kusisz ;)

Ktoś musi ;)
A u mnie Z180 leżą i czekają na jakiś fajny projekt...
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 14:57:08
Jakie masz te Z180 (model, taktowanie, typ obudowy) ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 15:03:58
PLCC68, 33 MHz.
Poproszę do nich ładny projekcik :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.27, 15:12:05
Nie pamiętam jakie taktowanie mają te co kupiłem, ale przynajmniej w takiej samej obudowie.
Tak z marszu. Na głównej płycie zostałyby tylko procesor, pamięci i "coś" do zarządzania całością.
Interfejsy wylatują na karty rozszerzeń.
Zobaczymy co z tego wyjdzie, ale raczej po wakacjach. Teraz mało czasu, bo sezon na inne prace.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.27, 15:22:59
Na głównej płycie zostałyby tylko procesor, pamięci i "coś" do zarządzania całością.

No właśnie, CPU, pamięci i jeden lub dwa popularne CPLD na 5V, które pozwalałyby na w miarę proste przeprogramowanie. Dawałoby to dużą swobodę kształtowania logiki.
No i sloty, tam fajnie by mieć kilka pinów z tych CPLD. Pytanie tylko, czy trzymać się standardu ISA (pytanie, czy jest po co), czy po prostu standard FDD3000 (2x23 piny) rozszerzyć o dodatkowe sygnały (czyli np. 2x31, ale zachowując przegródkę, jak w FDD3000).

Cytuj
Zobaczymy co z tego wyjdzie, ale raczej po wakacjach. Teraz mało czasu, bo sezon na inne prace.

Jasne, lato ma swoje prawa. Odpoczywaj :)
Poza tym teraz to warto "przećwiczyć" tę wersję, którą właśnie zrobiłeś.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.06.28, 18:27:37
No właśnie, CPU, pamięci i jeden lub dwa popularne CPLD na 5V, które pozwalałyby na w miarę proste przeprogramowanie. Dawałoby to dużą swobodę kształtowania logiki.
Myślę, że jeden XC95144XL-TQ100 (sacré bleu) powinien wystarczyć. Zmieści się nawet dekoder przerwań (pakowanie zabytkowego i8259 raczej nie ma sensu).

No i sloty, tam fajnie by mieć kilka pinów z tych CPLD. Pytanie tylko, czy trzymać się standardu ISA (pytanie, czy jest po co), czy po prostu standard FDD3000 (2x23 piny) rozszerzyć o dodatkowe sygnały (czyli np. 2x31, ale zachowując przegródkę, jak w FDD3000).
Myślałem o slotach ISA. Co najwyżej nie do końca zgodne będą sygnały (potrzeba 8 przerwań na 4 sloty ?).
Może jakieś stare, 8-bitowe karty z PC by podeszły ?
Muszę na spokojnie usiąść i się przyjrzeć ile Z180 może z tych slotów wykorzystać.

Jasne, lato ma swoje prawa. Odpoczywaj :)
Odpoczywaj ? Sezon wegetacyjny mamy ostatnio równie długi jak na Alasce. Mam tyle roboty sezonowej, że nie bardzo jest miejsce i czas na wypoczynek.
A chciałbym jeszcze wykorzystać też sezon w garażu :(

Poza tym teraz to warto "przećwiczyć" tę wersję, którą właśnie zrobiłeś.
Oćwicz ją Panie ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.06.28, 18:45:07
Myślę, że jeden XC95144XL-TQ100 (sacré bleu) powinien wystarczyć.

No dokładnie, sacré bleu, jeśli ma to być do samodzielnego montażu, to nie idź tą drogą lepiej ;)
PLCC jest IMHO lepszym wyborem. Podstawkę łatwiej wlutować, no i wymiana układu staje się prostsza, bez ryzyka rozwalenia PCB i samego IC.
A wybór jest jeszcze całkiem spory. Z tym, że doradzałbym rozbicie logiki na "ciężką" (właśnie typu kontroler przerwań) do większego układu i "lżejszą" (np. dekodery adresów) do mniejszego. Zmniejszałoby to ryzyko fakapów przy rozwoju logiki.
Przy odrobinie zakombinowania udałoby się też zrobić tak, by w tę samą podstawkę można było wsadzić mniej lub bardziej pojemny CPLD w takiej samej obudowie. Zasilanie jest chyba na tych samych pinach, może też JTAG, w wolnej chwili popatrzę. W ten sposób rosną możliwości wyboru wersji, która nam odpowiada, nie bez znaczenia może się też okazać dostępność (właściwie brak) określonych układów i dobrze mieć wtedy alternatywę.

Cytuj
Myślałem o slotach ISA. Co najwyżej nie do końca zgodne będą sygnały (potrzeba 8 przerwań na 4 sloty ?).
Może jakieś stare, 8-bitowe karty z PC by podeszły ?

Dla starych kart jeden slot całkowicie wystarczy. I tak trudno jest już znaleźć 8-bitowe karty.
A dla nowych rozszerzeń to ISA jest jednak mało praktyczna.
Mając ograniczenie do tylko jednego slotu (jak obecnie), można się też pokusić o zrobienie karty typu riser - uniwersalnej, z gniazdkami dla kilku kart, montowanych poprzecznie (równolegle do płyty głównej). W sumie coś podobnego już było - Yarek zrobił taką kartę do FDD3000, z gniazdami w standardzie Yabus: http://8bit.yarek.pl/upgrade/yabus.tf/index.html

Cytuj
A chciałbym jeszcze wykorzystać też sezon w garażu :(

Znam świetny sposób: należy wjechać do garażu i się zepsuć  ;)

Cytuj
Oćwicz ją Panie ;)

Aaaameeeen!
Chyba jednak inni będą szybsi,  bo ja po prostu nie mam kiedy...
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.07.06, 15:37:41
Szukam napędu gotek do FDD35.  Wiem już że trzeba wgrać flashfloppy.
I mam zagatkę.  Na Youtube widziałem turorial z wgrywaniem  do SFR1M44-U100 oraz przeróbką ( ekran LCD oraz enkoder).
Na ebay, amozon oraz ali widziałem częściej SFR1M44-U100K . Czy ten też nadaje się flaszowania czy jednak zostać przy tyn bez 'K' ?
 
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.07.06, 17:45:13
Na ebay można też kupić już przerobionego goteka (z podatkami i przesyłką wychodzi ok. 250 zł).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.07.11, 09:39:25
Ostatnio trochę zainwestowałem na ebay i zakupiłem UART'a WD2123 do FDD35 oraz WD1770 na zapas.
Oba elementy wyglądają dość wiarygodnie bo ich obudowy są takie jak w oryginałach a sygnatury są nadrukowane a nie wypalane laserem.
Układ WD1770 wydaje się działać poprawnie i wstępne testy wyglądają dość obiecująco, muszę go jeszcze sprawdzić w długoterminowym działaniu czy aby się coś nie sypie jak w przypadku który opisywał Maryjan.

Mam jedynie problem z przetestowaniem układu WD2123 bo nie bardzo wiem jak się do tego zabrać, w każdym razie po wstawieniu go do płytki FDD urządzenie nadal się uruchamia.  :-X
W tzw międzyczasie wgrałem też poprawiony wsad do CPLD.
Jest może do tego jakieś oprogramowanie którym można przetestować czy działa transmisja szeregowa w tym FDD ?
Chyba że są jakiś inne sposoby na sprawdzenie czy nie dostałem jakiejś malowanki WD2123 i weryfikacji poprawności jego działania ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.07.11, 10:45:41
W instrukcji obsługi od stacji jest listing programu do przesyłania danych po RS-232.
Najprościej jest tego użyć i terminala na PC.
Uwaga, złącze RS-232 w FDDX jest w standardzie PC, a nie jak w oryginalnej stacji.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.07.11, 11:55:50
Standard PC to TTL 5V czy jak to przy RS232  -25V i +25V ??
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.07.11, 12:17:25
RS, ale rzeczywiste napięcia tam są ok. +/- 10V.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.07.11, 12:27:28
Coraz mniej jest urządzeń na standard PC RS232. Chyba obecnie standardem jest TTL 3.3V lub 5V .
Czy  czy naszej replice jest gdzieś miejsce na podłączenie seriala ale TTL  ?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.07.11, 12:35:28
Napięcia RS232 jak to w konwerterze MAXIM'a to zwykle 7-10V, płyty PC z RS232 też czasem mają podobne rozwiązania na pokładzie. :)
W starszych PC XT i AT oraz komputerkach 8 i 16bit typowo było +/- 12V, tak czy siak poziomy tych napięć nie powinny być tutaj problemem.

Dzięki na info, muszę poszukać w instrukcji tego programu i go sobie wklepać w wolnej chwili, chyba że ma ktoś już gdzieś gotowca w obrazie dsk i się nim podzieli. ;)
Czy były też jakieś inne programy jakie potrafiły korzystać z RS232 w stacji FDD3000 ?



Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.07.11, 12:39:10

Czy  czy naszej replice jest gdzieś miejsce na podłączenie seriala ale TTL  ?

Tutaj można wyjąć układ MAX i zrobić zworki w podstawce, dostajesz serial TTL 5V na szpilkach złączy RS'a ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.07.11, 13:19:35
Tylko ostrożne wtedy z połączeniami, bo ja już jeden WD2123 uwaliłem źle podłączając sygnały.
W ogóle to w planach był port USB FT232 zamiast jedego RS, ale gdzieś mi się ten plan zawieruszył ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.07.11, 15:00:57
W zasadzie to można do tego co jest zrobić "kanapkę" (nawet na płytce uniwersalnej) wstawianą zamiast MAX'a z buforami np na SN7407 jeśli po serial TTL albo z FTDI po USB.

Tylko pytanie czy to ma jakiś większy sens i czy jest jakieś sensowne oprogramowanie które potrafi z tego układu szeregowego w FDDx korzystać ?



Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.07.12, 09:34:04
Może połączenie do Atari SIO  ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.07.12, 09:36:57
Czy były też jakieś inne programy jakie potrafiły korzystać z RS232 w stacji FDD3000 ?

The RS232 was mostly used to connect a Serial printer like the Timex Printer 2080 (a rebadged Seikosha 1000AS).
TimeWord word processor (cartridge) can print on a serial  printer throught FDD/FDD3000. Tasword also.
Business programs, either in TOS or CP/M can print to serial printers (as long those have the option to do it).
The COPY program (released by TMX PT) can COPY your SCREEN$ to the serial printer.

Can you do a loopback cable connecting both ports, send data on one port and read the other? The WD2123 is a dual UART...

Johnny Red, Portugal
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KrisZX w 2023.07.28, 20:54:34
Pisze tu bo może ktoś się zainteresuje. Na All... Lokalnym są XC9572-15PCG84 jeszcze 4 sztuki rzekomo nowe z zasobów własnych sprzedającego. Zakładam że nadadzą się do tego projektu.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.07.29, 02:31:28
Dzięki za info.  Ja akurat załapałem się na zakup płytki z tym Chipem. Bez niego na pokładzie nie zacząłbym składać.
Aby ukończyć składanie potrzebuję parę drobiazgów:
4610X-101-152LF 3szt
BC237 1szt  ( Chyba że BC550 będzie też pasował)
CFPS-72-16M 1szt
MCP130-450DI/TO 1szt
Kondensator  56pF  1szt
OSTAMA7NE2B 2szt
i po jednej sztuce 74LS08, 74LS10, 74LS27, 74LS30, 74LS32, 74LS139, 74LS245, 74LS574, 74LS688

Ktoś z Wawy   ma coś z tego i może  odstąpić?
PB



Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.07.29, 09:42:09
Jeśli montujesz generator zegara na tranzystorze, to nie jest Ci potrzebny drugi, scalony generator.
Podobnie z MCP130 - jest zamienny z płytką sterującą zasilaczem ATX.
Po urlopie zrobię dokładne opisy. Póki co proszę się posiłkować udostępnionymi na github grafikami.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.08.04, 17:16:49
Mi też paru części zabrakło i prace stanęły. Czas na zakupy w TME.
Tylko ten MCP muszę wypruć ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.08.04, 22:20:57
Widzę że zdecydowałeś się na wersję ATX.  :)
No to już niewiele brakuje, życzę powodzenia w uruchomieniu.
Jak zdecydowałem się na prostszy wariant z zasilaczem 12V, w każdym razie nie było problemu z uruchomieniem.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.08.11, 21:00:12
No i zaciąłem się na kontrolerze ATX :(
Nie świeci się na nim żadna dioda, nie reaguje na zwieranie na pinach PW_RS.
Masa i 5V na mikrokontrolerze są, zegar 2 MHz działa.
Sprawdziłem na 5 mikrokontrolerach programowanych w 2 różnych programatorach i na różnych ustawieniach, zawsze to samo.

Cóż - muszę poczekać, aż magik wróci z wakacji ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: ArturM w 2023.08.12, 10:37:04
Może warto jakiś prosty własny wsad napisać - np. migający tymi LEDami i wgrać by sprawdzić czy problemem jest sprzęt czy nieodpowiedni wsad.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.08.12, 16:26:08
Fajny pomysł. W sumie tryb testowy pewnie by się jeszcze zmieścił do pamięci, patrząc po wsadzie.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: jack_świdnik w 2023.08.12, 20:06:45
zamówiłem 5szt pcb kolor czarny, jak otrzymam to 3szt mogę oddać po kosztach jak ktoś będzie chętny.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: KrisZX w 2023.08.13, 11:32:59
Pliki do FDD35 są już oficjalnie udostępnione ? Coś przegapiłem.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: m0b w 2023.08.13, 12:27:13
zamówiłem 5szt pcb kolor czarny, jak otrzymam to 3szt mogę oddać po kosztach jak ktoś będzie chętny.
Ja chętnie przygarnę.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.08.13, 17:25:18
Pliki do FDD35 są już oficjalnie udostępnione ? Coś przegapiłem.
Tak, cały projekt i pliki gerber są na github.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: skoti w 2023.08.19, 18:34:38
Mam i ja  :) Po włączeniu na goteku ładnie widać, że ładuje TOS. Jeszcze tylko dorobić kabel do TI of TTL.
Dzięki pear za kolejny świetny projekt.  :D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: WalKes w 2023.08.24, 20:56:20
zamówiłem 5szt pcb kolor czarny, jak otrzymam to 3szt mogę oddać po kosztach jak ktoś będzie chętny.

Chętnie wezmę jedną.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.08.25, 07:36:30
zamówiłem 5szt pcb kolor czarny, jak otrzymam to 3szt mogę oddać po kosztach jak ktoś będzie chętny.

If still available, I would like to have one.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: jack_świdnik w 2023.08.25, 10:57:29
zamówiłem 5szt pcb kolor czarny, jak otrzymam to 3szt mogę oddać po kosztach jak ktoś będzie chętny.

Chętnie wezmę jedną.

została mi ostatnia sztuka, napisałem Ci na pw
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: WalKes w 2023.08.25, 11:18:00
Odpisane :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.08.25, 11:21:43
Ładnie wyszło.
Tylko czy warto dopłacać za kolor, jeśli to i tak zamknie się w puszce ?
No chyba, że masz inne plany.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: ArturM w 2023.08.25, 11:57:16
Zwykle czarna i biała soldermaska jest bez dopłaty bo one są i tak obecnie najczęściej używane - LED lighting era.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.09.23, 00:17:42
Kolejny egzemplarz uruchomiony.
Tylko, że nie mój :D
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.09.23, 02:12:53
Kolejny egzemplarz uruchomiony.
Tylko, że nie mój :D
Wish I could have one but my soldering skill are very very low... also wouldn't know were to buy all the components needed.
But one thing for sure, I would need RS232.
Is that hard to clone a WD2123?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: damik w 2023.09.23, 10:50:59
WD2123 is available on ebay for about $25.
I ordered it some time ago but haven't had time to test it yet.  ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.10.14, 19:34:20
Last but not least, mój egzemplarz ruszył :)
Wywaliłem moduł kontrolera ATX, bo nijak nie chciał ruszyć.
Brakuje mi do szczęścia jeszcze kilku drobiazgów, ale TOS się wczytał.
Z niewiadomych przyczyn płyta nie reaguje na RESET.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.10.14, 20:03:50
Kolejny egzemplarz uruchomiony.
Tylko, że nie mój :D
Dziękuję za diagnostykę i naprawę prawie spalonej elektroniki.
Historia tego egzemplarza jest taka że pomyliłem zworki od ustawień zasilania.
Skutkiem czego  spaliłem Gotek oraz jak to później się okazało tylko SRAM.
Ani CPLD ani WD nie ucierpiał w tej akcji , nawet zwykłe 74xxx też nie ucierpiały co można nazwać cudem.
Pozostało mi jeszcze praca przy TIofTTL  ale zostawię sobie na urodziny.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.10.14, 20:27:52
Historia tego egzemplarza jest taka że pomyliłem zworki od ustawień zasilania.

W sumie miałeś sporo szczęścia, zwłaszcza WD byłoby szkoda.
Ja tam dmucham na zimne i swoją płytę uruchamiałem bez cennych scalaków, choć w moim przypadku zasilacz był pecetowy (ATX). Ale i tak mu nie ufałem :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.10.14, 20:52:17
Wywaliłem moduł kontrolera ATX, bo nijak nie chciał ruszyć.
(...)
Z niewiadomych przyczyn płyta nie reaguje na RESET.
Jeśli wywaliłeś moduł ATX, to wstaw zworkę na złączu modułu (opisane RESET).
(https://github.com/maciejgruszecki/FDD-X/blob/main/PCB/Assembly/FDDX_ATX.png?raw=true)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.10.14, 21:18:03
O, dzięki.
Zastanawiałem się, jaki jest związek między tymi wszystkimi resetami (jest jeszcze header pod guzik obudowy), ale analizę schematu zostawiłem sobie na inny raz ;)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.10.15, 07:13:13
Header pod guzik obudowy jest równolegle z przyciskiem z przodu płyty.
Na złączu kontrolera zasilacza ATX ścieżka jest "rozpięta", bo kontroler umożliwia wykonanie resetu przyciskiem Power.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.10.15, 20:53:02
Czy jeżeli płyta jest skonfigurowana pod zasilanie z zasilacza 12V ( nie przez złącze ATX) to czy można:
1. Włożyć moduł ATX i sprawdzić czy działa.
2. i/lub zasilić z gniazda ATX.

Bo jeżeli nie da się to czeka mnie wylutowanie L101,U101,C101,D101, prawda?
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.10.15, 20:59:31
Moim zdaniem wystarczy usunąć cewkę L101.
Ale niech się wypowie Pear, będzie lepiej wiedział.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.10.16, 01:18:32
W/g schematu FDD35 wynika że sekcja zasilania jest podpięta bezpośrednio do +5 i +12V ze złącza ATX.
Nie mam pojęcia jak zachowa się regulator który na wyjściu dostanie +5V ATX  oprócz tego 5V które wytworzył z 12V ATX.
Czy zwariuje i walnie dużym prądem i napięciem?

Sprawdziłem też notę katalogową dla LM2596S-5.
Tam jest pin |ON/OFF . Podanie stanu niskiego albo zwarcie do masy albo bez podłączenia utrzymuje układ w stanie włączenia.
Stan wysoki powyżej 1.4V powoduje wyłączenie i pobiera wtedy 80uA. 
Zastanawia mnie czy odlutowanie nogi nr 5 i podanie bezpośrednio 5V ze złącza ATX przez rezystor 1K pozwoli bez wylutowania wszystkich *101  zastosować zasilanie ATX przy zworce LK12 na ON?

Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pear w 2023.10.16, 07:28:00
Projekt nie przewiduje takiej sytuacji.
Albo zasilacz wtyczkowy 5V,
Albo zasilacz wtyczkowy 12V,
Albo zasilacz ATX.
Nawet mi nie przychodzi do głowy żadna realna sytuacja, w której takie zamiany byłyby potrzebne.

W przypadku użycia zasilaczy ATX lub wtyczkowego 5V nie montuje się sekcji zasilania z układem LM w ogóle.

A jeśli ktoś musi, bo się udusi, to robi sobie problemy na własne życzenie.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.10.22, 22:58:11
FDD35 jest w budzie po micoPC  acera :)
Wylutowałem U101 oraz L101 i teraz działa na PS 5V choć chciałem z ATX ale kable zasilania są tam tak krótkie że nie da się podłączyć do do płyty głównej bez przedłużki ( może kiedyś dokupię).

Trojacek zwrócił uwagę że TI-of-TTL ma jakieś słabe te podstawki ale jak się później okazało po ponownym i dokładnym włożeniu scalaków zagadało ze stacją.

Co do zgodności z moimi interfejsami na ZX128 Replica:
Dandanator działa ale tylko jako kempston
JustNanoSD  nie działa i się zwiesza

Przemyślenia co stacja mogłaby robić (czyli kiedyś to zrobię lub podam pomysł)
- port szeregowy ale na AY8910 - nie wiem jak ale jeżeli CP/M ma coś podobnego do driverów to może ktoś to potrafi zrobić?
- wifi  też przy pomocy AY8910 i ESP-12F
 oczywiście osadzamy to w slocie rozszerzeń.

Przemyślenia na emulację stacji:
- rapsberry pi zero podłączane do TI-of-TTL: chyba tylko brak czasu mnie blokuje by się do tego zabrać.

Dziękuję wszystkim którzy się przyczyni do tego że mam i ja FDD35 a szczególności:
- pear projekt i płytka PCB oraz niezbędne części do uruchomienia stacji.
- trojacek za diagnostykę po wypadku ze zworkami zasilania.
- forumowiczom za wkład w społeczność.

Pozdrawiam,
Paweł Barszczowski
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: trojacek w 2023.10.23, 00:52:35
FDD35 jest w budzie po micoPC  acera :)

Pochwal się zdjęciami!

Cytuj
Trojacek zwrócił uwagę że TI-of-TTL ma jakieś słabe te podstawki ale jak się później okazało po ponownym i dokładnym włożeniu scalaków zagadało ze stacją.

Cieszę się, że ruszyło, ale widać moja diagnoza była słuszna ;)
Nie zdziw się, jak po rozgrzaniu się elektroniki interfejs przestanie działać poprawnie.

Cytuj
Co do zgodności z moimi interfejsami na ZX128 Replica:
Dandanator działa ale tylko jako kempston
JustNanoSD  nie działa i się zwiesza

Te interfejsy nie mają prawa działać prawidłowo jednocześnie z interfejsem FDD3000. Podkładają one własny ROM po resecie, identycznie jak M-397, tak więc robi się kolizja. A nawet jeśli wszystkie interfejsy mają poprawnie zaimplementowaną kaskadowość linii ROMCS, to wtedy tylko jeden interfejs zadziała.

Cytuj
- port szeregowy ale na AY8910 - nie wiem jak ale jeżeli CP/M ma coś podobnego do driverów to może ktoś to potrafi zrobić?
- wifi  też przy pomocy AY8910 i ESP-12F

Sorry, ale to jest całkowicie pozbawione sensu. Po co wkładać chip dźwiękowy do FDD3000? CO ma na tym grać? I jeszcze robienie portu szeregowego jako bit-banging, czyli zajmowanie 100% czasu procesora? DO tego służą układy z rodziny Z80: SIO, DART, UART, KIO, a oprócz tego układy Intela (82xx) i innych producentów.

Cytuj
- rapsberry pi zero podłączane do TI-of-TTL: chyba tylko brak czasu mnie blokuje by się do tego zabrać.

Może być ciekawe. Trzymam kciuki :)
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: Johnny Red w 2023.10.23, 19:48:42

Cytuj
- port szeregowy ale na AY8910 - nie wiem jak ale jeżeli CP/M ma coś podobnego do driverów to może ktoś to potrafi zrobić?
- wifi  też przy pomocy AY8910 i ESP-12F

 I jeszcze robienie portu szeregowego jako bit-banging, czyli zajmowanie 100% czasu procesora? DO tego służą układy z rodziny Z80: SIO, DART, UART, KIO, a oprócz tego układy Intela (82xx) i innych producentów.


This have been done with TC2068 so a barcode reader would work with it.
Not sure if it takes 100% CPU... I do know you can send commands to and read data of the barcode reader.

Cheers.
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: tapy w 2023.10.24, 09:36:09
I jeszcze robienie portu szeregowego jako bit-banging, czyli zajmowanie 100% czasu procesora? DO tego służą układy z rodziny Z80: SIO, DART, UART, KIO, a oprócz tego układy Intela (82xx) i innych producentów.
To prawda, jest cała masa dostępnych niedrogich układów transmisji szeregowej, które zdecydowanie lepiej działają niż programowy bit-bang. Czasami to rozwiązanie "bieda-edition" jest stosowane w specyficznych modułach RCBus (RC2014) i sprawia ogromną ilość problemów już przy transmisjach 9600bps i procesorze taktownym 7,37MHz. Kolejna sprawa, oprogramowanie dla praktycznie dowolnego układu transmisji szeregowej istnieje pod CP/M, więc nie ma co wyważać otwartych drzwi (zaprojektowałem moduły dla Z80-SIO/DART, XR88C681, 16C450/550, Z85C30 i pięknie hulają pod CP/M).
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: pawelb w 2023.10.24, 18:34:00
Chmmm...
Mam schemat SBC Z80 czy  da się coś z tym zrobić : http://searle.x10host.com/cpm/CPMSchematic1.2.gif  (http://searle.x10host.com/cpm/CPMSchematic1.2.gif)  ?
Pytając google widziałem wpis: https://retrocomputing.stackexchange.com/questions/9356/did-cp-m-support-custom-hardware-using-device-drivers. Czyli aby móc zrobić nowy driver muszę na nowo skompilować pliki CPM?

PB
Tytuł: Odp: FDD35 rev.3
Wiadomość wysłana przez: tapy w 2023.10.24, 19:41:32
Czyli aby móc zrobić nowy driver muszę na nowo skompilować pliki CPM?
Tak, CP/M jest zależny od sprzętu, więc każdy zastosowany komponent musi być do niego dołączony. Rozwiązaniem tego problemu (współczesnym) jest wprowadzenie abstrakcyjnej warstwy sprzętu (HAL) uwalniający OS od ponownej rekompilacji w przypadku jego zmiany - to rozwiązanie jest stosowane w RomWBW (https://github.com/wwarthen/RomWBW/tree/master), który i tak musi zostać przygotowany do pracy z konkretnym sprzętem. ;) Jedyne pocieszenie, że ten może zawierać obsługę więcej rozwiązań sprzętowych niż jedno.