mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
added HLCD0530 device (nw)
This commit is contained in:
parent
dbb99ce29f
commit
13ba56b464
@ -2,10 +2,11 @@
|
||||
// copyright-holders:hap
|
||||
/*
|
||||
|
||||
Hughes HLCD 0515/0569 LCD Driver
|
||||
Hughes HLCD 0515 family LCD Driver
|
||||
|
||||
0515: 25 columns(also size of buffer/ram)
|
||||
0569: 24 columns, no DATA OUT pin, display blank has no effect
|
||||
0530: specifications unknown, pinout seems similar to 0569
|
||||
|
||||
TODO:
|
||||
- read mode is untested
|
||||
@ -19,6 +20,7 @@
|
||||
|
||||
DEFINE_DEVICE_TYPE(HLCD0515, hlcd0515_device, "hlcd0515", "Hughes HLCD 0515 LCD Driver")
|
||||
DEFINE_DEVICE_TYPE(HLCD0569, hlcd0569_device, "hlcd0569", "Hughes HLCD 0569 LCD Driver")
|
||||
DEFINE_DEVICE_TYPE(HLCD0530, hlcd0530_device, "hlcd0530", "Hughes HLCD 0530 LCD Driver")
|
||||
|
||||
//-------------------------------------------------
|
||||
// constructor
|
||||
@ -41,6 +43,11 @@ hlcd0569_device::hlcd0569_device(const machine_config &mconfig, const char *tag,
|
||||
{
|
||||
}
|
||||
|
||||
hlcd0530_device::hlcd0530_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
|
||||
: hlcd0515_device(mconfig, HLCD0530, tag, owner, clock, 24)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
|
@ -2,7 +2,7 @@
|
||||
// copyright-holders:hap
|
||||
/*
|
||||
|
||||
Hughes HLCD 0515/0569 LCD Driver
|
||||
Hughes HLCD 0515 family LCD Driver
|
||||
|
||||
*/
|
||||
|
||||
@ -14,29 +14,27 @@
|
||||
// pinout reference
|
||||
|
||||
/*
|
||||
____ ____
|
||||
ROW0 1 |* \_/ | 40 VDD
|
||||
ROW1 2 | | 39 OSC
|
||||
ROW2 3 | | 38 CLOCK
|
||||
ROW3 4 | | 37 DATA IN
|
||||
ROW4 5 | | 36 _CS
|
||||
ROW5 6 | | 35 DATA OUT
|
||||
ROW6 7 | | 34 COL25
|
||||
ROW7 8 | | 33 COL24
|
||||
COL1 9 | | 32 COL23
|
||||
COL2 10 | HLCD 0515 | 31 COL22
|
||||
COL3 11 | | 30 COL21
|
||||
COL4 12 | | 29 COL20
|
||||
COL5 13 | | 28 COL19
|
||||
COL6 14 | | 27 COL18
|
||||
COL7 15 | | 26 COL17
|
||||
COL8 16 | | 25 COL16
|
||||
COL9 17 | | 24 COL15
|
||||
COL10 18 | | 23 COL14
|
||||
COL11 19 | | 22 COL13
|
||||
GND 20 |___________| 21 COL12
|
||||
|
||||
HLCD 0569 doesn't have DATA OUT, instead it has what seems like OSC OUT on pin 34.
|
||||
____ ____ ____ ____
|
||||
ROW0 1 |* \_/ | 40 VDD ROW0 1 |* \_/ | 40 VDD
|
||||
ROW1 2 | | 39 OSC ROW1 2 | | 39 VDRIVE?
|
||||
ROW2 3 | | 38 CLOCK ROW2 3 | | 38 OSC
|
||||
ROW3 4 | | 37 DATA IN ROW3 4 | | 37 CLOCK
|
||||
ROW4 5 | | 36 _CS ROW4 5 | | 36 DATA IN
|
||||
ROW5 6 | | 35 DATA OUT ROW5 6 | | 35 _CS
|
||||
ROW6 7 | | 34 COL25 ROW6 7 | | 34 OSC OUT?
|
||||
ROW7 8 | | 33 COL24 ROW7 8 | | 33 COL24
|
||||
COL1 9 | | 32 COL23 COL1 9 | | 32 COL23
|
||||
COL2 10 | HLCD 0515 | 31 COL22 COL2 10 | HLCD 0569 | 31 COL22
|
||||
COL3 11 | | 30 COL21 COL3 11 | | 30 COL21
|
||||
COL4 12 | | 29 COL20 COL4 12 | | 29 COL20
|
||||
COL5 13 | | 28 COL19 COL5 13 | | 28 COL19
|
||||
COL6 14 | | 27 COL18 COL6 14 | | 27 COL18
|
||||
COL7 15 | | 26 COL17 COL7 15 | | 26 COL17
|
||||
COL8 16 | | 25 COL16 COL8 16 | | 25 COL16
|
||||
COL9 17 | | 24 COL15 COL9 17 | | 24 COL15
|
||||
COL10 18 | | 23 COL14 COL10 18 | | 23 COL14
|
||||
COL11 19 | | 22 COL13 COL11 19 | | 22 COL13
|
||||
GND 20 |___________| 21 COL12 GND 20 |___________| 21 COL12
|
||||
|
||||
OSC is tied to a capacitor, the result frequency is 50000 * cap(in uF), eg. 0.01uF cap = 500Hz.
|
||||
Internally, this is divided by 2, and by number of rows to get display refresh frequency.
|
||||
@ -106,8 +104,15 @@ protected:
|
||||
virtual void set_control() override;
|
||||
};
|
||||
|
||||
class hlcd0530_device : public hlcd0515_device
|
||||
{
|
||||
public:
|
||||
hlcd0530_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
|
||||
};
|
||||
|
||||
|
||||
DECLARE_DEVICE_TYPE(HLCD0515, hlcd0515_device)
|
||||
DECLARE_DEVICE_TYPE(HLCD0569, hlcd0569_device)
|
||||
DECLARE_DEVICE_TYPE(HLCD0530, hlcd0530_device)
|
||||
|
||||
#endif // MAME_VIDEO_HLCD0515_H
|
||||
|
@ -1665,8 +1665,8 @@ MACHINE_CONFIG_END
|
||||
/***************************************************************************
|
||||
|
||||
Mattel Computer Gin
|
||||
* NEC uCOM-43 MCU, label D650C 060
|
||||
* Hughes HLCD0569 LCD driver, 5 by 14 segments LCD panel, no sound
|
||||
* NEC uCOM-43 MCU, label D650C 060 (die label same)
|
||||
* Hughes HLCD0530 LCD driver, 5 by 14 segments LCD panel, no sound
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -1678,7 +1678,7 @@ public:
|
||||
m_lcd(*this, "lcd")
|
||||
{ }
|
||||
|
||||
required_device<hlcd0569_device> m_lcd;
|
||||
required_device<hlcd0530_device> m_lcd;
|
||||
|
||||
DECLARE_WRITE32_MEMBER(lcd_output_w);
|
||||
DECLARE_WRITE8_MEMBER(lcd_w);
|
||||
@ -1689,7 +1689,7 @@ public:
|
||||
WRITE32_MEMBER(mcompgin_state::lcd_output_w)
|
||||
{
|
||||
// uses ROW0-4, COL11-24
|
||||
display_matrix(26, 8, data, 1 << offset);
|
||||
display_matrix(24, 8, data, 1 << offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(mcompgin_state::lcd_w)
|
||||
@ -1721,13 +1721,13 @@ INPUT_PORTS_END
|
||||
static MACHINE_CONFIG_START( mcompgin )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D650, 400000) // approximation
|
||||
MCFG_CPU_ADD("maincpu", NEC_D650, XTAL_400kHz) // TDK FCR400K
|
||||
MCFG_UCOM4_READ_A_CB(IOPORT("IN.0"))
|
||||
MCFG_UCOM4_READ_B_CB(IOPORT("IN.1"))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(mcompgin_state, lcd_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("lcd", HLCD0569, 1000) // C=?
|
||||
MCFG_DEVICE_ADD("lcd", HLCD0530, 500) // C=0.01uF
|
||||
MCFG_HLCD0515_WRITE_COLS_CB(WRITE32(mcompgin_state, lcd_output_w))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_mcompgin)
|
||||
|
Loading…
Reference in New Issue
Block a user