Cập nhật : một triển khai thực tế của việc này được thực hiện trong dự án Tapuino do Peter Edwards thực hiện. Hãy xem thử, mọi thứ đều được mở nguồn: https://github.com/sweetlilmre/tapuino
Tôi đang làm việc trong một dự án mà tôi đang sử dụng Arduino của mình để truyền các tệp dữ liệu băng TAP từ PC sang C64. Phần mềm của dự án đang diễn ra tốt đẹp tuy nhiên tôi vẫn chưa quen với thiết bị điện tử và tôi không muốn rán hàng hóa của mình. Vì vậy, tôi cần sự giúp đỡ can thiệp phần cứng thực sự.
Băng C64 sử dụng điều chế PWM để lưu chương trình trên băng cassette và khi đọc lại dữ liệu, bộ kích hoạt opamp + schmitt chuyển đổi tín hiệu âm thanh thành sóng vuông. Mỗi chuyển tiếp cao thấp sẽ kích hoạt một ngắt trong máy và khoảng cách giữa hai ngắt (là độ dài của xung) đại diện cho một phần nguyên tử của luồng.
Sơ đồ chân của cổng cassette trông như thế này (mặt trên và mặt dưới có cùng một chân hai lần):
A-1 , GND, mặt đất
B-2 , + 5V, 5 Vôn
C-3 , ĐỘNG CƠ, Điều khiển động cơ, khoảng. Bộ nguồn 6 V của động cơ
D-4 , READ, Nhập dữ liệu, đọc dữ liệu từ bộ dữ liệu
E-5 , VIẾT, Xuất dữ liệu, ghi dữ liệu vào bộ dữ liệu
F-6 , SENSE, Phát hiện, nếu nhấn một trong các phím CHƠI, GHI, F.FWD hoặc REW
Ý tưởng hiện tại của tôi là như sau:
Dựa trên Sách xanh giao diện C64 (bắt đầu từ trang 29), máy sử dụng cấp độ TTL trên cổng READ và WRITE để tôi đoán rằng tôi có thể kết nối trực tiếp một chân PWM từ Arduino với chân READ.
Tôi cũng cần giao diện với pin SENSE. Tôi nghĩ rằng tôi có thể kết nối trực tiếp với một trong các mã PIN kỹ thuật số và viết kỹ thuật số THẤP ở đó khi tôi cần báo hiệu trạng thái nút nhấn. Đúng không?
Sau này tôi muốn phát hiện sự hiện diện của tín hiệu + 6V trên chân ĐỘNG CƠ. Một số trình tải dừng tập dữ liệu ở giữa quá trình tải vì vậy tôi cũng phải phát hiện ra điều đó để mô phỏng băng chính xác. Tôi có nên sử dụng một số loại điện trở để hạn chế dòng điện ở đó hay tôi chỉ có thể nối trực tiếp với nó? Có lẽ tôi nên sử dụng một rơle ở đó?