Mený principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Lista Utenti
 Policy sito
Ricerca Google

Login

Nick


Password


10 Novembre 2018 Postato da: sampedenawa
HID2AMI - Adattatore USB->Amiga per mouse, gamepad (e altro...)
Con il test positivo del prototipo funzionante, apro qui un nuovo topic per il convertitore che ho sviluppato.

-- Cosa è:

HID2AMI è un adattatore che permette di utilizzare [u] qualsiasi [/u] mouse usb sui nostri Amiga (supporta sia i mouse PS2 che i mouse HID).

Il convertitore nasce dal concetto base dello "Smallymouse", reingegnerizzando il progetto per utilizzare componenti del costo di quasi dieci volte inferiore ed aggiornati alle tecnologie più recenti.

Un piacevole effetto collaterale nell'utilizzare la piattaforma hardware selezionata è che le funzionalità del firmware consentono la gestione di tutti i dispositivi HID standard, per cui l'adattatore è già oggi in grado di rilevare e gestire non solo mouse, ma anche tastiere, joypad, ecc.

-- Come funziona (in breve):

HID2AMI riconosce, inizializza e gestisce qualsiasi dispositio HID collegato alla sua porta USB; nel caso del mouse inizia poi ad acquisire le informazioni di movimento e pressione dei pulsanti, convertendole nelle 4 forme d'onda in quadratura che simulano le uscite digitali degli originali mouse Amiga.

-- A che punto è lo sviluppo dell'adattatore ?

Il primo prototipo, basato su di una minimale scheda di sviluppo STM32F105 è completo e perfettamente funzionante, tanto che può essere utilizzato tranquillamente con qualsiasi Amiga.
Parte a questo punto il disegno del progetto definitivo e del corrispondente PCB, così da avere un prodotto il più compatto ed ergonomico possibile

-- Chi ha sviluppato HID2AMI ?

HID2AMI è un progetto di Sampedenawa, nato da una serie di discussioni, preziosi suggerimenti ed incoraggiamenti degli utenti di questo forum, in particolare Sukkopera e Majinga

->Continua<-

Commenti: 97  Aggiungi - Pagine: 1-2-3-4-5


Pagine: -1- [2] -3-4-5-

Temibile Pirata

Post inviati: 800

Visulizza profilo Messaggio Personale
151.91.34.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 21 in risposta al 20 di sampedenawa
SukkoPera 14 Novembre 2018    11:23:35
Citazione

Tutto considerato, visto che avanzano millemila pin di IO, potrei eventualmente far leggere al fw al boot lo stato di un particolare pin, che su una scheda collego H e sull'altra collego L, ed invertire o meno le uscite di conseguenza.


Questa è un'ottima idea . Fissane da subito anche più di uno, così si possono avere anche altre schede, eventualmente in futuro.

Per il resto, controlla che i pin di uscita siano tutti 5V-tolerant, e hai una soluzione alternativa!

A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

Post inviati: 489

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 22
majinga 14 Novembre 2018    12:33:21
Ieri guardavo il datasheet, se non ricordo male non tutti quelli usati al momento sono 5V tolerant.

Dal datasheet pagine da 27 a 31. Quelli 5V tolerant sono quelli con I/O level "FT".

Ad esempio PB5 non lo è.

EDIT:

Non sono ancora convinto di questa cosa del cambio della tipologia da input a output. Ho ancora qualche dubbio che non so se è una cosa che sta solo nella mia testa oppure no. Devo finire di ragionarci sopra.

Commento modificato il 14/11/2018 alle ore 12:35:15

Temibile Pirata

Post inviati: 800

Visulizza profilo Messaggio Personale
151.91.34.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 23 in risposta al 22 di majinga
SukkoPera 14 Novembre 2018    13:05:45
Citazione

Ieri guardavo il datasheet, se non ricordo male non tutti quelli usati al momento sono 5V tolerant.

Dal datasheet pagine da 27 a 31. Quelli 5V tolerant sono quelli con I/O level "FT".

Ad esempio PB5 non lo è.

EDIT:

Non sono ancora convinto di questa cosa del cambio della tipologia da input a output. Ho ancora qualche dubbio che non so se è una cosa che sta solo nella mia testa oppure no. Devo finire di ragionarci sopra.



Aspetta, forse mi sono spiegato male io: quello che bisogna fare è commutare tra uno stato di alta impedenza (in modo da lasciare che sia il resistore di pull-up a pilotare la linea) e uno a livello LOW (0V).

Ora, sugli AVR su cui programmo di solito (diciamo un Arduino Uno per capirci), lo stato di alta impedenza si ottiene mettendo il pin in INPUT (poi non leggi niente, è solo una sorta di trucchetto), ma può benissimo essere che sugli STM32 esista un "vero" stato HI-Z, mi pare di ricordare di avere visto qualcosa di questo tipo tempo fa. In tal caso, questo è lo stato corretto da usare.

In sostanza, vai ad ottenere una sorta di emulazione di un'uscita open collector. Puoi vedere che lo faccio qua , ad esempio, per comunicare con il pad di un Nintendo 64, che funziona a 3.3V, da un Arduino che funziona a 5V. Normalmente il contrario non si potrebbe fare, ma i pin 5V-tolerant dell'STM32 lo permettono.

Commento modificato il 14/11/2018 alle ore 13:08:29


A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

Post inviati: 163

Visulizza profilo Messaggio Personale
5.171.57.*** Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 24
sampedenawa 14 Novembre 2018    15:57:12

Personalmente tenderei (anche se verificherò la possibilità di farlo, il trucchetto, comunque) a lavorare "pulito", per cui penso che farò la versione "pin diretti" che lavora a 3.3 per la quasi totalità dell'utenza, e quella coi mosfet (senza inverter) per i puristi dei 5V e per chi ha eventualmente schede Amiga "difficilli".

Firmware unificato ovviamente.

PS: Sukkopera: se guardi lo schematico, già in questo ci sono 3 soldering jumper che avevo messo per configurare la scheda al boot. Aggiungerò il quarto

Post inviati: 489

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 25 in risposta al 23 di SukkoPera
majinga 14 Novembre 2018    21:57:20
Citazione

Aspetta, forse mi sono spiegato male io: quello che bisogna fare è commutare tra uno stato di alta impedenza (in modo da lasciare che sia il resistore di pull-up a pilotare la linea) e uno a livello LOW (0V).

Ora, sugli AVR su cui programmo di solito (diciamo un Arduino Uno per capirci), lo stato di alta impedenza si ottiene mettendo il pin in INPUT (poi non leggi niente, è solo una sorta di trucchetto), ma può benissimo essere che sugli STM32 esista un "vero" stato HI-Z, mi pare di ricordare di avere visto qualcosa di questo tipo tempo fa. In tal caso, questo è lo stato corretto da usare.

In sostanza, vai ad ottenere una sorta di emulazione di un'uscita open collector. Puoi vedere che lo faccio qua , ad esempio, per comunicare con il pad di un Nintendo 64, che funziona a 3.3V, da un Arduino che funziona a 5V. Normalmente il contrario non si potrebbe fare, ma i pin 5V-tolerant dell'STM32 lo permettono.


OK, lasciamo stare i miei dubbi. In effetti erano legati ad altre cose, pensavo che si trattasse di utilizzare le proprietà delle due impostazioni, usando i pin di I/O in una sorta di modalità non prevista.

Comunque pare che con l'STM32 questa cosa si possa fare senza problemi.
Stavo dando un occhiata al reference manual pagina 163, output configuration i pin possono essere configurati in open drain, quindi esattamente quello che dici tu, la resistenza di pull-up tiene su a 5V finché il pin del'STM32 non manda a ground.

Nella modalità 5V tolerant, i diodi di protezione sono connessi alla DD_FT che è proprio per i 5V, quindi il problema che dicevo io non sussiste.

Il reference manual è generico per tutta la famiglia STM32F10X, non ho controllato se questa cosa è valida specificatamente per l'STM32F105, ma penso di si.

Gagliardo sto STM32

Commento modificato il 14/11/2018 alle ore 21:59:44

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.2.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 26
sampedenawa 15 Novembre 2018    13:21:29
Nuovo layout di prova, versione "DeLuxe" con i mosfet (ma senza inverter).

Le dimensioni sono 30x60 mm, meno di così la vedo dura (sicuramente in larghezza, visto l'ingombro del db9)

Che ve ne pare ?

PS: qualcuno sa perchè il silk della parte inferiore ha i testi rovesciati ?
Non capisco il motivo: il contorno dei componenti è nella posizione corretta, quindi il layer è reso correttamente nel gerber, ma i testi sono rovesciati ......

Immagine
Immagine


PS: Majinga: hai impressioni d'uso dal tuo protitpo ? Com'è il "feel" col puntatore ? A me sembra un ottimo compromesso fra campionamento delle posizioni (ogni 100 ms) e modifica dinamica della frequenza delle forme d'ionda di quadratura, per rendere la giusta proporzionalità fra distanza e velocità del movimento, ma si sa che "ogni scarrafone ....."


E questa è la versione "Lite", senza i mosfet.
Ho inserito un soldering jumper SJ4, così che si possano collegare i pullup sul db a piacere fra 5V ovver 3.3V.
In questo modo (supportati dal firmware) si può utilizzare anche la modalità suggerita da Sukkopera !

Immagine
Immagine

Commento modificato il 15/11/2018 alle ore 14:36:29

Post inviati: 489

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 27
majinga 15 Novembre 2018    13:40:57
Su Amiga non ho ancora avuto modo di provare.

I primi test li avevo fatti al volo con oscilloscopio e alimentatore da banco. Avevo tutto a portata di mano, ed era più semplice e veloce che mettere su il setup per Amiga.

Cerco di fare qualche test il prima possibile.

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.2.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 28
sampedenawa 16 Novembre 2018    13:59:19
Lanciati in produzione i pcb, di entrambe le versioni .... se ne riparla fra una ventina di giorni

Nel frattempo ieri sono arrivati i pcb dello YAKS2 .. mai un attimo di quiete accidenti !

Temibile Pirata

Post inviati: 800

Visulizza profilo Messaggio Personale
91.252.248.*** Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1
Commento 29
SukkoPera 16 Novembre 2018    14:09:54
Beato te, io aspetto l'ultimo ordine di PCB da 2 mesi interi!

Grande comunque!

A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

ilBarbax

Post inviati: 39

Visulizza profilo Messaggio Personale
195.33.118.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36
Commento 30
ilBarbax 16 Novembre 2018    18:44:02
Io debbo giusto comprare un adattatore o mouse nuovo per il mio 1200 che sto rimettendo in vita, per cui un oggetto del genere cadrebbe proprio a proposito. Come posso candidarmi per acquirente/tester?

PS ma sampedenawa sei genovese?

Post inviati: 489

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 31
majinga 16 Novembre 2018    20:13:10
Ok, oggi mi sono costretto a fare un test.
Immagine

Partiamo dalle buone notizie:
Immagine
Sulla A600 un connettore DB9 con annesso PCB ci sta giusto giusto. Tutto dipende dal tipo di connettore DB9, ma direi che almeno per la sua funzione mouse, questo adattatore sarà A600 friendly.

Ora veniamo alle cattive, non funziona
Probabilmente sto facendo qualche cavolata, il pinout che ho seguito è questo:
Immagine

Tanto che c'ero ho fatto qualche misurazione sui pin del connettore Amiga.
Questo è quello che ho ottenuto:
1: 5V
2: 5V
3: 5V
4: 5V
5: 3.8V
6: 5V
7: 5V
8: GND
9: 3.8V

Ho fatto le misurazioni su A500, 600 e 1200. I valori sono più o meno gli stessi, su A500 sul pin 1 ho 3.3V per il resto quasi uguale.
In effetti guardando gli schemi ci sono già delle resistenze di pull-up sugli ingressi.
A questo punto non so se è il caso di tenere la versione a 3.3V liscia.

Post inviati: 163

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 32 in risposta al 30 di ilBarbax
sampedenawa 16 Novembre 2018    23:08:13
Citazione

Io debbo giusto comprare un adattatore o mouse nuovo per il mio 1200 che sto rimettendo in vita, per cui un oggetto del genere cadrebbe proprio a proposito. Come posso candidarmi per acquirente/tester?


Appena arrivano i pcb ne monto qualcuno, e se tuttp funziona come deve, iniziamo a distribuirli a chi interessano qui nel forum (poi vedremo ....)
Segui questo thread e appena ci sono nuove, fatti vivo !

Citazione

PS ma sampedenawa sei genovese?


No, ma bazzico

Post inviati: 163

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 33 in risposta al 31 di majinga
sampedenawa 16 Novembre 2018    23:15:51
Citazione

Ora veniamo alle cattive, non funziona
Probabilmente sto facendo qualche cavolata, il pinout che ho seguito è questo:
Immagine


Mah, il pinout è corretto (visto lato Amiga, per intenderci)

Ma lo hai provato solo sul 600 ?
Non hai nessun ritorno nè di movimento nè di pressione pulsanti ?
Domani ho tempo e lo provo sul mio, di 600.


Dicevi sopra che le forme d'onda con l'oscilloscopio le hai viste, quindi se un problema c'è è solo di livelli, direi.

Fai comunque una prova basica: i pulsanti.
Se nessun pulsante è premuto le uscite LB, RB e MB (lato convertitore) devono stare a 3.3; premendo il pulsante ciascuna va a zero.

Se il problema è il livello del +3.3 che è insufficiente ad essere interpretato dal 600 come "H", allora dovresti vedere l'AMiga che vede sempre e comunque i pulsanti premuti .... qualcosa non mi torna.


Post inviati: 489

Visulizza profilo Messaggio Personale
151.57.121.*** Mozilla/5.0 (Linux; Android 8.0.0; TA-1032) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36
Commento 34
majinga 16 Novembre 2018    23:29:13
Ho provato su 600 e 1200, niente su entrambe.
I pulsanti non funzionano. All'accensione l'amiga va sul boot menù, come se i due pulsanti del mouse fossero premuti, ma poi non posso fare niente.

Con lo stesso setup avevo provato anche con l'oscilloscopio e sembra tutto ok. Non ho verificato i livelli, avevo tutte e 4 le tracce attive in roll mode, non stavo a guardare i voltaggi.

Ho fatto una prova scollegando i pulsanti ma niente, anche collegando dopo l'avvio non cambia niente.

Devo fare qualche altro test.

Post inviati: 163

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 35 in risposta al 32 di sampedenawa
sampedenawa 16 Novembre 2018    23:34:38
.

Commento modificato il 16/11/2018 alle ore 23:35:04

Post inviati: 163

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 36 in risposta al 34 di majinga
sampedenawa 16 Novembre 2018    23:37:28
Citazione


come se i due pulsanti del mouse fossero premuti,




Esatto ... è un problema di livelli.

Secondo me sei incocciato in una devboard con un stm (o il convertitore 5v-3.3) un pò "weak" (oppure è quello della mia che è "strong").

Alla fine mettere i mosfet è stata una buona idea mi sa




Citazione

Ho provato su 600 e 1200, niente su entrambe.
I pulsanti non funzionano. All'accensione l'amiga va sul boot menù, come se i due pulsanti del mouse fossero premuti, ma poi non posso fare niente.

Con lo stesso setup avevo provato anche con l'oscilloscopio e sembra tutto ok. Non ho verificato i livelli, avevo tutte e 4 le tracce attive in roll mode, non stavo a guardare i voltaggi.

Ho fatto una prova scollegando i pulsanti ma niente, anche collegando dopo l'avvio non cambia niente.

Devo fare qualche altro test.




Commento modificato il 16/11/2018 alle ore 23:38:14

Post inviati: 2122

Visulizza profilo Messaggio Personale
79.10.159.*** Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Commento 37
Mck 17 Novembre 2018    09:44:14
Stano sotto 1v siamo a è livello 0
sopra 2v siamo a livello 1

I MIEI AMIGA

4000T OS 3.9 PPC/68060 + CyberVisio 64/3D + HD 20g + DVD - 4000D in Tower OS 3.9 PPC/68060 Ram 128M + ram scheda 2+16M + zip 100M + Ide HD 40G + usb Deneb + V-Lab + Toccata + Mediator con: Woodoo 3 + Scheda rete + Impact Vision 24 - 4000D OS 3.9 68060 ram 32m + ram scheda 2+16M + HD 20g + zip 100 ide + DVD + V-lab + Seriale veloce + Scheda video EGS- 3000T OS 3.9 PPC/68060 128M + HD scsi 10G + Usb Deneb + CD sCSI + mediator con: scheda rete + controllo SCSI Adaptec + scheda audio + Voodoo 5 - 3000 OS 3.1 68040 + emulatore pc 286 - 2000 processore 68030 + genlock + espansione ram + emulatore pc 8080 - 1200 Tower OS 3.9 PPC/68060 + HD 20G + Mediator con: scheda rete - 1200 OS 3.1 68060 + HD 20G + Scheda rete pcmcia - 1000 espansione Ram 4M - 600 con espansione ram + HD5G - 500 Plus con espansione ram - 500 con espansione ram - CDTV - CD32

CLONI AMIGA

Sam440ep-Flex OS 4.1 - EFIKA MorphOS 2.6

Post inviati: 1366

Visulizza profilo Messaggio Personale
95.238.75.*** Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Commento 38
Oge 17 Novembre 2018    15:57:20
E' stato provato con un diodo BAT?

Post inviati: 489

Visulizza profilo Messaggio Personale
79.22.228.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 39 in risposta al 37 di Mck
majinga 17 Novembre 2018    21:06:19
Citazione

Stano sotto 1v siamo a è livello 0
sopra 2v siamo a livello 1


Appena posso faccio un test monitorando mentre è connesso su amiga, e vedo come si comporta.

Post inviati: 163

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 40 in risposta al 39 di majinga
sampedenawa 17 Novembre 2018    22:03:12
Citazione

Citazione

Stano sotto 1v siamo a è livello 0
sopra 2v siamo a livello 1


Appena posso faccio un test monitorando mentre è connesso su amiga, e vedo come si comporta.



Sull'unica scheda delle mie dove il prototipo non funzionava, il problema era la resistenza da 4.7 Ohm in serie all'alimentazione +5v sul db9 di Amiga.
Era evidentemente a fine vita, il valore di resistenza era molto più alto del nominale, ed evidentemente la maggiore caduta di tensione non permetteva di alimentare correttamente il prototipo.
Sotituita quella, anche sulla scheda in questione il prototipo funziona....

(E comunque ricordiamoci sempre che il prototipo è un "proof of concept", perchè è basato su una devboard minimale con le uscite a 3.3 !)

Pagine: -1- [2] -3-4-5-

Utenti Online
Utenti registrati: 902 dal 1 Gennaio 2006
di cui online: 7 registrati - Dr Cinicus - Amy - Mor - Pericle76 - Mak73 - amiga k2 - amiga1200 - sampedenawa -
5 non registrati

Benvenuto all'ultimo utente registrato: Zilog

Buon Compleanno a Megabit - Metalciaf - ilbiboit - 

© Amigapage 1998 - 2007 - Sito italiano dedicato alla piattaforma Amiga ed evoluzioni varie.
Struttura del sito interamente ideata e realizzata da Marco Lovera e Alessandra Lovera - Tutto il materiale inserito all'interno del sito Ť dei rispettivi autori/creatori.
E' assolutamente vietata la riproduzione o la manipolazione di tutti i contenuti o parte di essi senza l'esplicito consenso degli amministratori e degli autori/creatori.

Eseguito in 0.053025007247925 secondi