Sida 1 av 1
AVR PS/2 Tangegntbords emulator, någon som har kod?
Postat: 17 juli 2006, 16:04:42
av bachler
Goddag
Jag håller på med ett projekt, det ska bli en ADB (apple desktop bus) till PS/2 converterare
Den ska med andra ord läsa ett gammalt mac tangentbord och låtsas vara ett ps2 tangetnbord
och sicka alla scankoder (översatta i en lookuptabell) som den samlar upp från ADBn till PS/2n
Första delen är klar, jag har skrivit kod som dumpar scankoder från ADBn till UART
Nu ska nästa del göras, PS2 protokollet... så jag undrar om det är någon som har
lättförstålig kod i c (avr-gcc) som är lämpad till detta.
Jag har sökt och letat på google och avrfreaks, hittade dokumentation på ps2 på google
och hittade även en som har byggt en magnetkort läsare som dumpar via ps2, men
den koden har jag lite svårt att sätta mej in i... har testat lite och inte
fått den att funka som jag vill..
Om någon kankse tillochmed har gjort detta men inte har kod i c eller så, så kanske man kan
få utbyta lite tankar och funderingar.
Det verkar som att domflesta som gör detta använder ett interrupt som avfyras varje 40uS och i den läser ur en buffer..
är det det smartaste sättet att göra det på?
aja, skulle vara kul om någon har lite kod eller så..
tack på förhand och trevlig sommar!
//bachler
Postat: 18 juli 2006, 12:34:41
av bachler
vad är det för fel? varför är det ingen som svara på mina trådar??
är det jag som skriver fel så ingen fattar frågan eller?
är det jag som skriver för lätta frågor och alla tycker att det är onödigt att svara på dom?
är det jag som skriver för svåra frågor som ingen kan svara på?
0 svar och 58 visningar...
aja..
Postat: 18 juli 2006, 12:47:36
av Erik_Lind
Tror frågan ligger på normal "nivå"
Här finns ett exempel på en "bakvänd" lösning:
http://www.avrfreaks.net/index.php?modu ... item_id=82
Borde finnas även c-kod för att emulera ett t-bord sök runt lite på avrfreaks forumet så hittar du säkert något..
/Erik
Postat: 18 juli 2006, 14:23:53
av Chribbe76
Menar du verkligen ett interrupt på 40µs?
Nåväl, jag skulle snarare låta "den" som skriver till buffern tvinga fram ett interrupt när info finns redo eller att huvudprogrammet pollar buffern.
Men hur man lägger upp det påverkas av hur mycket annat kontrollern ska pyssla med och hur det är upplagt.
Menar du att en µkontroller skickar data via uart till en annan µkontroller eller var det bara för att testa att första delen av koden fungerar?
Postat: 18 juli 2006, 15:40:11
av JimmyAndersson
"vad är det för fel? varför är det ingen som svara på mina trådar??"
bachler:
De troligaste orsakerna:
1) Medlemmarna som sitter inne med kunskapen har kanske inte sett tråden än.
2) Det är meningslöst att de som inte kan svaret skriver "Tyvärr, jag vet inte".
"0 svar och 58 visningar..."
Tja, hellre det än att ingen har läst tråden!
Nu är det 4 svar och 122 visningar, så du får ha tålamod. Detta forum ger ändå snabbare svar än de flesta andra forum.
Jag har läst den (tre gånger) och tipsat Henry (här på forumet). Han söker något som gör tvärt om. Dvs så man kan använda PS2-tangentbord till en Mac med ADB-port.
Postat: 18 juli 2006, 15:58:55
av bachler
@Chribbe76: sickar via uart till min pc för att testa att det funkar
du kan kolla på koden själv på :
http://www.avrfreaks.net/index.php?modu ... pe=project
jag har lite svårt att sätta mej in i den och förstå hur han som kodat har tänkt...
@JimmyAndersson: mjo, visserligen, det ligger något i det du sejjer. tålamod är nog inte en av mina starka sidor.

@Erik_Lind: har kollat på avrfreaks, och jag har somsagt redan hittat och läst igenom den länken du sickade, men tack ändå
tack alla
//bachler
Postat: 18 juli 2006, 16:04:30
av oJsan
Jag har sett ett projekt där en snubbe använder en at90s8515 för att scanna en 8x8-knappmatris och sedan skickar han det via PS/2 till datorn. (Hans hårdvara funkade för övrigt som en keyboard-wedge (kil) som kopplas in mellan det vanliga tangentbordet och PC:n. )
Nu till besvikelsen: Det var skrivet i asm och vad jag kan minnas så var det inte tvärenkelt att förstår sig på, men det borde ändå vara användbart tycker jag... tyvärr så vet jag inte addressen till sidan.

Men han skulle använda det till något flipperspel tror jag... ifall det hjälper vid 'googling'.
Edit: Sökt lite kort bara, hittade inte den sida jag sett förut, men istället hittade jag
den här, om det är till någon hjälp?
Postat: 19 juli 2006, 00:12:47
av Chribbe76
Nu fattade jag vad interruptet med 40µs intervall används till (bättre sent än aldrig).
Det är för att fixa ps2-portens klockpuls (vid varje interrupt sätts klockan hög eller låg).
Klockpulsen ska ligga på 10-16.7Khz så det stämmer ganska bra 1/40/2*1000=12.5
Det är absolut det snyggaste sättet att göra det på, med tanke på den låga bitrate'en.
Jag tyckte för övrigt att koden såg lite stökig ut så jag orkar inte sätta mig in i den (kan ju bero på att jag normalt inte programmerar C + att jag inte kan AVR).
Postat: 19 juli 2006, 14:19:19
av simon78
Måste det vara via PS2? Det finns exempel på hur du gör en USB HID här:
http://www.obdev.at/products/avrusb/hidkeys.html
Postat: 19 juli 2006, 21:52:07
av bachler
@simon78: har redan testat, men det är lite snålt med plats i flashet på en tiny26 som jag tänk använda till ändamålet.. och jag har testat att få fart på koden med en tiny2313 med 12mhz kristall, men det vill sej inte.. datorn sejjer att den hittar usb enhet men att den inte accepterar den adressen den vill tildela den och så fortsätter den från adress 0 till 127 eller 255 , kommer inte ihåg..
men annars skulle det vara det optimala, att ha det som en HID enehet..
tyvärr så har jag nog gett upp med usb ett tag nu..
och det som känndes näst enklast va ps2..
Postat: 19 juli 2006, 22:21:58
av simon78
Det USB-felet får jag när jag kör med en USB 2.0-port på en USB 1.0 grej jag byggt.
Problem med usb 1.1 grejor i usb 2.0
Postat: 23 juli 2006, 17:44:36
av Micke_s
En sak jag har upptäckt är att D+ och D- är känsligare för vilken spänning de drivs med, testa att sätta 2 dioder typ 1N4148 från USB +5V till byggets VCC. Detta fick mitt bygge att fungera som var baserat på AVRUSB-koden
Postat: 26 juli 2006, 19:41:01
av oJsan
Hur har det gått med detta projekt?
Äntligen så har jag hittat sidan som jag skrev om tidigare:
Buttonbox
Hoppas den är till hjälp...