sony: Add buzzer support
This commit is contained in:
parent
7daa4f1b8f
commit
c37774d159
3 changed files with 37 additions and 9 deletions
|
|
@ -10,6 +10,7 @@ TARGET_DIR = .
|
||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = matrix.c \
|
SRC = matrix.c \
|
||||||
led.c \
|
led.c \
|
||||||
|
tone.c \
|
||||||
news.c
|
news.c
|
||||||
|
|
||||||
CONFIG_H = config.h
|
CONFIG_H = config.h
|
||||||
|
|
|
||||||
|
|
@ -2,23 +2,32 @@ Sony NEWS keyboard converter
|
||||||
============================
|
============================
|
||||||
Sony NEWS is a BSD workstation with 68K/MIPS released in 1987 in Japan.
|
Sony NEWS is a BSD workstation with 68K/MIPS released in 1987 in Japan.
|
||||||
|
|
||||||
- http://en.wikipedia.org/wiki/Sony_NEWS
|
|
||||||
- https://www.sony.net/SonyInfo/CorporateInfo/History/SonyHistory/2-12.html#block3
|
|
||||||
|
|
||||||
This converter allows NEWS keyboard to be connected to modern PC via USB. It works with NWP-5461 and NWP-411A.
|
This converter allows NEWS keyboard to be connected to modern PC via USB. It works with NWP-5461 and NWP-411A.
|
||||||
|
|
||||||
How DIP switches work is unknown and you may need to turn all switches off with this converter.
|
|
||||||
|
|
||||||
Limitations:
|
Limitations:
|
||||||
- Speaker/Buzzer is not supported.
|
|
||||||
- LEDs on NWP-5461 is not supported.
|
- LEDs on NWP-5461 is not supported.
|
||||||
|
- Mouse is not supported.
|
||||||
Pics:
|
|
||||||
- http://imgur.com/a/JyMzw
|
|
||||||
|
|
||||||
Discussion:
|
Discussion:
|
||||||
- https://geekhack.org/index.php?topic=25759
|
- https://geekhack.org/index.php?topic=25759
|
||||||
|
|
||||||
|
Resources:
|
||||||
|
- https://github.com/tmk/tmk_keyboard/wiki/Sony-NEWS
|
||||||
|
|
||||||
|
|
||||||
|
Wiring
|
||||||
|
------
|
||||||
|
Use PD2(USART RXD) for 'Keyboard Data' pin and give power with VCC and GND. Other pins are optional and not supported at this point.
|
||||||
|
|
||||||
|
AVR NEWS
|
||||||
|
------------------------
|
||||||
|
PD2 Keyboard Data
|
||||||
|
PD3 Keyboard Command
|
||||||
|
PD4 Mouse Data
|
||||||
|
PD0 BZ
|
||||||
|
|
||||||
|
Target microcontroller is Atmel ATMega32U2 by default but porting this project to other 8-bit AVR controllers would be easy.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Protocol
|
Protocol
|
||||||
|
|
@ -42,6 +51,7 @@ For example 0x29 is sent when 'a' key is pressed and 0xA9 when released.
|
||||||
+---------------- break flag: sets when released
|
+---------------- break flag: sets when released
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Scan Codes
|
Scan Codes
|
||||||
----------
|
----------
|
||||||
### NWP-5461
|
### NWP-5461
|
||||||
|
|
@ -118,3 +128,17 @@ I have three NWP-5461s and GND and FG is connected in one of them for some reaso
|
||||||
8 NC
|
8 NC
|
||||||
9 FG
|
9 FG
|
||||||
NOTE: These are just from my guess and not confirmed.
|
NOTE: These are just from my guess and not confirmed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Buzzer
|
||||||
|
------
|
||||||
|
You can control buzzer using `tone()` and `noTone()`. BZ pin should be connected to PD0.
|
||||||
|
|
||||||
|
- `void tone(unsigned int frequency, unsigned long duration)`
|
||||||
|
- `void noTone(void)`
|
||||||
|
|
||||||
|
`tone()` sounds buzzer in frequency(in hertz) for duration(in milliseconds).
|
||||||
|
When giving -1 as duration to `tone()` buzzer makes a sound forever until `noTone()` is called.
|
||||||
|
|
||||||
|
Buzzer is not used by default firmware.
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,8 @@ void matrix_init(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tone(unsigned int frequency, unsigned long duration);
|
||||||
|
void noTone(void);
|
||||||
uint8_t matrix_scan(void)
|
uint8_t matrix_scan(void)
|
||||||
{
|
{
|
||||||
uint8_t code;
|
uint8_t code;
|
||||||
|
|
@ -76,6 +78,7 @@ uint8_t matrix_scan(void)
|
||||||
// make code
|
// make code
|
||||||
if (!matrix_is_on(ROW(code), COL(code))) {
|
if (!matrix_is_on(ROW(code), COL(code))) {
|
||||||
matrix[ROW(code)] |= (1<<COL(code));
|
matrix[ROW(code)] |= (1<<COL(code));
|
||||||
|
//tone(80, 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return code;
|
return code;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue