Join our technical discussions about Freescale Microcontrollers: M68HC12. (Freescale Semiconductor is a Subsidiary of Motorola).
MC9S12DP256B with controleur LCD Epson S1D13705 - ludo...@... - Apr 8 3:01:00 2005
hello,
i am working with the MC9S12DP256B and i would like to know if it\'s possible to connect
it with tle LCD controler S1D13705.
I wonder it becaus the LCD Controler generate a wait signal . because of this signal I
cannot read or write the internal contents of register to the S1D13705.
Thanks
ludo
______________________________
Stellaris® MCU Family: New Parts, New Package, New Price.
(You need to be a member of 68hc12 -- send a blank email to 68hc12-subscribe@yahoogroups.com )
Re: MC9S12DP256B with controleur LCD Epson S1D13705 - eeetee2000 - Apr 9 14:27:00 2005
hi:
i had some troubles (opportunities to learn) interfacing to an lcd.
you need to ensure that the data is being held long enough for the
lcd to read it. note the routine "mini_time" is called after port
bits have changed to allow the lcd time to read it. "lcd_busy is the
routine that waits for the busy flag to go away
regards,
ed
lcd_init ldaa #$38 ;initialize the
function register 8 bits, 2lines, 5X7 character
bsr write_func
jsr lcd_busy ;timer
ldaa #$0c ;display on, no
underline, no blink
bsr write_func
jsr lcd_busy
ldaa #$01 ;clear any display
data
bsr write_func
jsr lcd_busy
ldaa #$02 ;return to upper
left corner
bsr write_func
jsr lcd_busy
rts
mini_time nop ;quite a bit of time
is used in the bsr/rts
nop ;this timer is
needed for 24 mhz operation
rts
write_func bclr portq,%00000001 ;select function
register
bsr mini_time
bra lcd_write ;write the data from
a to the register
read_func bclr portq,%00000001 ;select function
register
bsr mini_time
bra lcd_read ;return function
register data
write_data bset portq,%00000001 ;select data register
bsr mini_time
bra lcd_write ;write the data from
a to data register
read_data bset portq,%00000001 ;
bsr mini_time
bra lcd_read ;return data register
lcd_write staa portt ;store data at port
prior to setting direction
movb #$ff,ddrt ;set port as outputs
bsr mini_time
bclr portq,%00000010 ;write operation
bra lcd_cycle ;do the write
lcd_read clr ddrt ;port is for read
bset portq,%00000010 ;read operation
;ports are in correct state the timing on portq is 300ns high
lcd_cycle bsr mini_time
bset portq,%00000100 ;set the eclock to
start operation
nop
nop
nop
nop
ldaa portt ;don't care if read
or write
bclr portq,%00000100 ;return line to idle
state
nop
nop ;short delay for
data read
bsr mini_time
rts
lcd_busy bsr read_func ;fetch the function
register data
lsla ;shift busy flag to
carry bit
bcs lcd_busy ;still executing
last instruction
rts
--- In 68HC12@68HC..., ludo2112@y... wrote:
> hello,
>
> i am working with the MC9S12DP256B and i would like to know if
it\'s possible to connect it with tle LCD controler S1D13705.
> I wonder it becaus the LCD Controler generate a wait signal .
because of this signal I cannot read or write the internal contents
of register to the S1D13705.
> Thanks
> ludo
______________________________
Stellaris® MCU Family: New Parts, New Package, New Price.
(You need to be a member of 68hc12 -- send a blank email to 68hc12-subscribe@yahoogroups.com )
Re: MC9S12DP256B with controleur LCD Epson S1D13705 - eeetee2000 - Apr 9 14:29:00 2005
sorry about the word wrap here it is without
lcd_init ldaa #$38 ;initialize the
function register 8 bits, 2lines, 5X7 character
bsr write_func
jsr lcd_busy ;timer
ldaa #$0c ;display on, no
underline, no blink
bsr write_func
jsr lcd_busy
ldaa #$01 ;clear any display
data
bsr write_func
jsr lcd_busy
ldaa #$02 ;return to upper
left corner
bsr write_func
jsr lcd_busy
rts
mini_time nop ;quite a bit of time
is used in the bsr/rts
nop ;this timer is
needed for 24 mhz operation
rts
write_func bclr portq,%00000001 ;select function
register
bsr mini_time
bra lcd_write ;write the data from
a to the register
read_func bclr portq,%00000001 ;select function
register
bsr mini_time
bra lcd_read ;return function
register data
write_data bset portq,%00000001 ;select data register
bsr mini_time
bra lcd_write ;write the data from
a to data register
read_data bset portq,%00000001 ;
bsr mini_time
bra lcd_read ;return data register
lcd_write staa portt ;store data at port
prior to setting direction
movb #$ff,ddrt ;set port as outputs
bsr mini_time
bclr portq,%00000010 ;write operation
bra lcd_cycle ;do the write
lcd_read clr ddrt ;port is for read
bset portq,%00000010 ;read operation
;ports are in correct state the timing on portq is 300ns high
lcd_cycle bsr mini_time
bset portq,%00000100 ;set the eclock to
start operation
nop
nop
nop
nop
ldaa portt ;don't care if read
or write
bclr portq,%00000100 ;return line to idle
state
nop
nop ;short delay for
data read
bsr mini_time
rts
lcd_busy bsr read_func ;fetch the function
register data
lsla ;shift busy flag to
carry bit
bcs lcd_busy ;still executing
last instruction
rts
--- In 68HC12@68HC..., "eeetee2000" <admin@e...> wrote:
>
> hi:
>
> i had some troubles (opportunities to learn) interfacing to an
lcd.
> you need to ensure that the data is being held long enough for the
> lcd to read it. note the routine "mini_time" is called after port
> bits have changed to allow the lcd time to read it. "lcd_busy is
the
> routine that waits for the busy flag to go away
> regards,
>
> ed
> lcd_init ldaa #$38 ;initialize the
> function register 8 bits, 2lines, 5X7 character
> bsr write_func
> jsr lcd_busy ;timer
> ldaa #$0c ;display on, no
> underline, no blink
> bsr write_func
> jsr lcd_busy
> ldaa #$01 ;clear any display
> data
> bsr write_func
> jsr lcd_busy
> ldaa #$02 ;return to upper
> left corner
> bsr write_func
> jsr lcd_busy
> rts
>
> mini_time nop ;quite a bit of time
> is used in the bsr/rts
> nop ;this timer is
> needed for 24 mhz operation
> rts
>
> write_func bclr portq,%00000001 ;select function
> register
> bsr mini_time
> bra lcd_write ;write the data from
> a to the register
>
> read_func bclr portq,%00000001 ;select function
> register
> bsr mini_time
> bra lcd_read ;return function
> register data
>
> write_data bset portq,%00000001 ;select data register
> bsr mini_time
> bra lcd_write ;write the data from
> a to data register
>
> read_data bset portq,%00000001 ;
> bsr mini_time
> bra lcd_read ;return data register
>
> lcd_write staa portt ;store data at port
> prior to setting direction
> movb #$ff,ddrt ;set port as outputs
> bsr mini_time
> bclr portq,%00000010 ;write operation
> bra lcd_cycle ;do the write
>
> lcd_read clr ddrt ;port is for read
> bset portq,%00000010 ;read operation
> ;ports are in correct state the timing on portq is 300ns high
> lcd_cycle bsr mini_time
> bset portq,%00000100 ;set the eclock to
> start operation
> nop
> nop
> nop
> nop
> ldaa portt ;don't care if read
> or write
> bclr portq,%00000100 ;return line to idle
> state
> nop
> nop ;short delay for
> data read
> bsr mini_time
> rts
>
> lcd_busy bsr read_func ;fetch the function
> register data
> lsla ;shift busy flag to
> carry bit
> bcs lcd_busy ;still executing
> last instruction
> rts
>
>
> --- In 68HC12@68HC..., ludo2112@y... wrote:
> > hello,
> >
> > i am working with the MC9S12DP256B and i would like to know if
> it\'s possible to connect it with tle LCD controler S1D13705.
> > I wonder it becaus the LCD Controler generate a wait signal .
> because of this signal I cannot read or write the internal
contents
> of register to the S1D13705.
> >
> >
> > Thanks
> > ludo

(You need to be a member of 68hc12 -- send a blank email to 68hc12-subscribe@yahoogroups.com )
Re: MC9S12DP256B with controleur LCD Epson S1D13705 - ludo...@... - Apr 11 2:56:00 2005
hello,
thanks for program.
Only one question: Whre do you connect the Wait signal? In what Port if the MC9S12DP256B.
I have connected my wait signal in the PJ0.
When i am trying to read the register in my controller LCD Epson S1D13705, the controller
send the wait signal but the data isn't on the bus.
Thanks
Ludo
>
>hi:
>
>i had some troubles (opportunities to learn) interfacing to an lcd.
>you need to ensure that the data is being held long enough for the
>lcd to read it. note the routine "mini_time" is called after port
>bits have changed to allow the lcd time to read it. "lcd_busy is the
>routine that waits for the busy flag to go away
>regards,
>
>ed
>lcd_init ldaa #$38 ;initialize the
>function register 8 bits, 2lines, 5X7 character
>bsr write_func
>jsr lcd_busy ;timer
>ldaa #$0c ;display on, no
>underline, no blink
>bsr write_func
>jsr lcd_busy
>ldaa #$01 ;clear any display
>data
>bsr write_func
>jsr lcd_busy
>ldaa #$02 ;return to upper
>left corner
>bsr write_func
>jsr lcd_busy
>rts
>
>mini_time nop ;quite a bit of time
>is used in the bsr/rts
>nop ;this timer is
>needed for 24 mhz operation
>rts
>
>write_func bclr portq,%00000001 ;select function
>register
>bsr mini_time
>bra lcd_write ;write the data from
>a to the register
>
>read_func bclr portq,%00000001 ;select function
>register
>bsr mini_time
>bra lcd_read ;return function
>register data
>
>write_data bset portq,%00000001 ;select data register
>bsr mini_time
>bra lcd_write ;write the data from
>a to data register
>
>read_data bset portq,%00000001 ;
>bsr mini_time
>bra lcd_read ;return data register
>
>lcd_write staa portt ;store data at port
>prior to setting direction
>movb #$ff,ddrt ;set port as outputs
>bsr mini_time
>bclr portq,%00000010 ;write operation
>bra lcd_cycle ;do the write
>
>lcd_read clr ddrt ;port is for read
>bset portq,%00000010 ;read operation
>;ports are in correct state the timing on portq is 300ns high
>lcd_cycle bsr mini_time
>bset portq,%00000100 ;set the eclock to
>start operation
>nop
>nop
>nop
>nop
>ldaa portt ;don't care if read
>or write
>bclr portq,%00000100 ;return line to idle
>state
>nop
>nop ;short delay for
>data read
>bsr mini_time
>rts
>
>lcd_busy bsr read_func ;fetch the function
>register data
>lsla ;shift busy flag to
>carry bit
>bcs lcd_busy ;still executing
>last instruction
>rts
>
>
>--- In 68HC12@68HC..., ludo2112@y... wrote:
>> hello,
>>
>> i am working with the MC9S12DP256B and i would like to know if
>it\'s possible to connect it with tle LCD controler S1D13705.
>> I wonder it becaus the LCD Controler generate a wait signal .
>because of this signal I cannot read or write the internal contents
>of register to the S1D13705.
>>
>>
>> Thanks
>> ludo
> Re: MC9S12DP256B with controleur LCD Epson S1D13705 sorry about the word wrap here it
is without lcd_init ldaa #$38 ;initialize t...

(You need to be a member of 68hc12 -- send a blank email to 68hc12-subscribe@yahoogroups.com )
Re: Re: MC9S12DP256B with controleur LCD Epson S1D13705 - Edward Karpicz - Apr 12 3:02:00 2005
>
> ed,
>
> Thank you but the Epson LCD controller S1D13705 is
> used to control a TFT display.
> But Epson proposes a wiring diagram which are not
> adapted to the MC9S12 processor.
Are you going to connect S1D to 9s12 in expanded mode? You may have more
luck bitbanging S1D bus.
I think you should figure how long S1D can be in WAIT condition. I hope
these are very short times and maybe WAIT could be ignored lowering the
speed of 9s12 operating in expanded mode. WAIT signal is no problem for
bitbanged bus. But first try to estimate how fast MCU should write to S1D.
Epson suggests connecting 13705 to 32bit MCUs. This is suspecting a bit. I
don't have time to learn more about 13705. But what I find on epson web is
that 13705 is 3V device. Am I wrong? If it's 3V I don't think it's easy to
connect such a beast to DP256 which is 5V only, at least not via 9s12
external bus.
Edward
> Thanks for all
> Ludo
> --- eeetee2000 <admin@admi...> a écrit :
>
> ---------------------------------
>
> i was referring to lcd character displays.
>
> here is a starting point for you!
>
> www.erd.epson.com/vdc/pdf/1375/x27ag011.pdf
> ed
>
>
> --- In 68HC12@68HC..., "eeetee2000"
> <admin@e...> wrote:
>>
>> hi:
>>
>> i'm not familiar with the exact part you are using.
> most lcd
>> displays have a register that has a flag bit in it.
> i'll see if i
>> can find the docs on the epson part and get back
> later
>>
>>
>> ed
>>
>>
>> --- In 68HC12@68HC..., ludo2112@y... wrote:
>> > hello,
>> > thanks for program.
>> >
>> > Only one question: Whre do you connect the Wait
> signal? In what
>> Port if the MC9S12DP256B. I have connected my wait
> signal in the
> PJ0.
>> >
>> > When i am trying to read the register in my
> controller LCD Epson
>> S1D13705, the controller send the wait signal but
> the data isn't
> on
>> the bus.
>> >
>> > Thanks
>> > Ludo
>> > >
>> > >hi:
>> > >
>> > >i had some troubles (opportunities to learn)
> interfacing to an
>> lcd.
>> > >you need to ensure that the data is being held
> long enough for
>> the
>> > >lcd to read it. note the routine "mini_time" is
> called after
>> port
>> > >bits have changed to allow the lcd time to read
> it. "lcd_busy
> is
>> the
>> > >routine that waits for the busy flag to go away
>> > >
>> > >
>> > >regards,
>> > >
>> > >ed
>> > >
>> > >
>> > >lcd_init ldaa #$38 ;initialize the
>
>> > >function register 8 bits, 2lines, 5X7 character
>> > >bsr write_func
>> > >jsr lcd_busy ;timer
>> > >ldaa #$0c ;display on, no
>> > >underline, no blink
>> > >bsr write_func
>> > >jsr lcd_busy
>> > >ldaa #$01 ;clear any display
>> > >data
>> > >bsr write_func
>> > >jsr lcd_busy
>> > >ldaa #$02 ;return to upper
>> > >left corner
>> > >bsr write_func
>> > >jsr lcd_busy
>> > >rts
>> > >
>> > >
>> > >
>> > >mini_time nop ;quite a bit of time
>> > >is used in the bsr/rts
>> > >nop ;this timer is
>> > >needed for 24 mhz operation
>> > >rts
>> > >
>> > >write_func bclr portq,%00000001
> ;select function
>> > >register
>> > >bsr mini_time
>> > >bra lcd_write ;write the data from
>> > >a to the register
>> > >
>> > >read_func bclr portq,%00000001
> ;select function
>> > >register
>> > >bsr mini_time
>> > >bra lcd_read ;return function
>> > >register data
>> > >
>> > >write_data bset portq,%00000001
> ;select data register
>> > >bsr mini_time
>> > >bra lcd_write ;write the data from
>> > >a to data register
>> > >
>> > >read_data bset portq,%00000001 ;
>> > >bsr mini_time
>> > >bra lcd_read ;return data register
>> > >
>> > >lcd_write staa portt ;store data
> at port
>> > >prior to setting direction
>> > >movb #$ff,ddrt ;set port as outputs
>> > >bsr mini_time
>> > >bclr portq,%00000010 ;write operation
>> > >bra lcd_cycle ;do the write
>> > >
>> > >lcd_read clr ddrt ;port is for
> read
>> > >bset portq,%00000010 ;read operation
>> > >;ports are in correct state the timing on portq
> is 300ns high
>> > >lcd_cycle bsr mini_time
>> > >bset portq,%00000100 ;set the eclock to
>
>> > >start operation
>> > >nop
>> > >nop
>> > >nop
>> > >nop
>> > >ldaa portt ;don't care if read
>> > >or write
>> > >bclr portq,%00000100 ;return line to
> idle
>> > >state
>> > >nop
>> > >nop ;short delay for
>> > >data read
>> > >bsr mini_time
>> > >rts
>> > >
>> > >lcd_busy bsr read_func ;fetch the
> function
>> > >register data
>> > >lsla ;shift busy flag to
>> > >carry bit
>> > >bcs lcd_busy ;still executing
>> > >last instruction
>> > >rts
>> > >
>> > >
>> > >
>> > >
>> > >--- In 68HC12@68HC..., ludo2112@y... wrote:
>> > >> hello,
>> > >>
>> > >> i am working with the MC9S12DP256B and i would
> like to know
>> if
>> > >it\'s possible to connect it with tle LCD
> controler S1D13705.
>> > >> I wonder it becaus the LCD Controler generate a
> wait
> signal .
>> > >because of this signal I cannot read or write the
> internal
>> contents
>> > >of register to the S1D13705.
>> > >>
>> > >>
>> > >> Thanks
>> > >> ludo
>> > >
>> > >
>> > >
>> > >
>> > >
>> > > Re: MC9S12DP256B with controleur LCD Epson
> S1D13705
>> sorry about the word wrap here it is without
> lcd_init ldaa #$38
>> ;initialize t...
>> >
> ---------------------------------
> Yahoo! Groups Links
>
> To
>
>
> __________________________________________________________________
> Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos
> mails !
> Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/
>
> Yahoo! Groups Links

(You need to be a member of 68hc12 -- send a blank email to 68hc12-subscribe@yahoogroups.com )