Indeks English version English version

Interfejs pamięci masowej i drukarki dla kalkulatora FX-700P

Opis

Jest to urządzenie zastępujące oryginalny interfejs magnetofonu kasetowego FA-3 oraz drukarkę termiczną FP-12S. Pliki są zapisywane do pamięci EEPROM lub przesyłane przez port szeregowy, zależnie od wersji programu. Dane przeznaczone do wydrukowania są wysyłane przez port szeregowy lub przez opcjonalny port równoległy, również zależnie od wersji programu.

Ustawienia portu szeregowego:

Pasujący i darmowy program komunikacyjny chodzący pod Windows o nazwie Term232 jest dostępny na witrynie internetowej firmy Industrologic, na stronie Resources.

Hardware

O wyborze procesora zadecydowała konieczność nadążenia za szybkimi przebiegami na magistrali kalkulatora. Zastosowany mikroprocesor AVR jest jednym z nielicznych popularnych układów, który potrafi sobie dać radę z impulsami o czasie trwania rzędu 1us.
Zasilanie pamięci EEPROM z portu procesora pozwala na obniżenie poboru mocy i pozwala na wymianę pamięci bez konieczności wyłączania zasilania.
Mikroprocesor jest odseparowany od magistrali opornikami. Chronią one oba urządzenia przed uszkodzeniem w przypadku konfliktów na magistrali (w wyniku błędów w programie) lub przy braku zasilania mikroprocesora. Oporniki na końcówkach PD2 i PD3 mają dodatkową funkcję, tworzą razem z kondensatorami 15pF filtry dolnoprzepustowe eliminujące zakłócenia. Bez tych filtrów układ nie działa pewnie.
Można zastosować dowolne diody i tranzystory małej mocy, np.:
  diody - 1N4148
  tranzystory pnp - BC557
  tranzystor npn - BC547
Układ jest na tyle prosty, że został zbudowany na kawałku prototypowej płytki drukowanej.
Wymaga osobnego źródła napięcia zasilającego ok. 5V, ponieważ pobór prądu jest zbyt duży, żeby można było go zasilać ze złącza kalkulatora.

schemat pamięci masowej do kalkulatora

fotografia płytki pamięci masowej do kalkulatora


Software - wersja 25

Ta wersja wykorzystuje szeregową pamięć EEPROM jako nośnik informacji. Przesyłane dane nie są w żaden sposób obrabiane, są zapisywane w kolejnych adresach pamięci EEPROM w takiej kolejności jak przychodzą. Stany jałowe oraz bity startu, stopu i parzystości nie są zapisywane.
Rezultat próby załadowania programu z pamięci zawierającej przypadkowe śmieci jest nieokreślony. Najprawdopodobniej takie dane zostaną zignorowane, ponieważ kalkulator oczekuje określonego formatu danych i przeprowadza pewne podstawowe testy.
Każda operacja LOAD, SAVE lub VER przesuwa licznik lokacji w pamięci, konieczne jest więc jego cofnięcie przed załadowaniem lub weryfikacją zapisanego programu (taśmę też trzeba przewinąć). Cofnięcie licznika lokacji na początek pamięci odbywa się przez wciśnięcie klawisza na końcówce PB0 lub przez wyłączenie i włączenie kalkulatora.
Dostęp do pamięci EEPROM sygnalizowany jest diodą świecącą, przepełnienie pamięci (równoważne końcowi taśmy) powoduje błąd ERR9.

Dane drukowane są zamieniane na ASCII i wysyłane przez port szeregowy. Można je przesłać do komputera PC z uruchomionym programem komunikacyjnym lub bezpośrednio do drukarki posiadającej wejście szeregowe (przetestowane z modelem Brother M-1109).

Program został przetestowany z modelami kalkulatorów FX-700P i FX-730P.

plik tape25d.zip - program dla mikroprocesora AVR


Software - wersja 27

Ta wersja przesyła pliki między kalkulatorem a komputerem PC przez port szeregowy. Ma również możliwość drukowania przez opcjonalny port równoległy podłączony do magistrali I2C. Pamięć EEPROM nie jest już obsługiwana i musi być usunięta. Wymagane modyfikacje układu są zaznaczone czerwonym kolorem na poniższym rysunku.

magistrala I2C

Format przesyłanych danych

Interfejs przesyła oryginalne 12-bitowe dane razem z bitami startu, parzystości i stopu. W celu umożliwienia przesłania 12-bitowego słowa przez 8-bitowy kanał transmisyjny jest ono dzielone na dwie 6-bitowe części. Do każdej dodawana jest stała wartość 0x30, żeby w wyniku powstał drukowalny znak. Najpierw jest przesyłany znak mniej znaczący.
Znaki o kodach nie mieszczących się w przedziale 0x30-0x6F są dozwolone pomiędzy parą ważnych znaków. Są one ignorowane, ale mogą być wykorzystane do synchronizacji strumienia danych (do zaznaczenia mniej znaczącego znaku z pary).

Program został przetestowany z modelami kalkulatorów FX-700P i FX-730P.

plik tape27h.zip - program dla mikroprocesora AVR