Motorola M68-Type Parallel Interface Write Cycle Timing

pilot0315pilot0315 Posts: 570
edited 2019-12-15 - 19:10:07 in Propeller 1
Does any one have any example code for these two types??

Thanks


AND INTEL I80-TYPE PARALLEL INTERFACE TIMIN

Comments

  • Cool, that even predates SPI. The SSI mode is SPI compatible but the terminology and command structure is foreign enough to say SPI hadn't been formalised at that time.

    I would recommend using SPI. Reduces pin count and you don't need speed.

  • This is what I do for 24/16/8-bit LCD interfaces...

    Maybe the QMP display driver is a good example?
    You can get that here:
    http://www.rayslogic.com/propeller/Products/QMP/QMP.htm
  • Peter JakackiPeter Jakacki Posts: 8,980
    edited 2019-12-16 - 02:00:25
    This is almost exactly the same as the signals that are used for character LCDs except much faster. There is no need to read any busy flag, so you can safely tie the R/W pin low, use 8 I/O for data and one for RS control/data address, and the E strobe. Just set RS and the data and pulse E high for at least 100ns and release, as simple as that. I have some of these displays in my junk box somewhere. Some extremely simple Spin code will work fine.

    edit: found the actual datasheet and here it says:
    "The modules are designed to be directly compatible with industry standard liquid crystal
    display (LCD) modules that utilize the Hitachi HD44780U LCD controller/driver"

    and to support tying the r/w low:
    "A primary advantage of these modules over industry standard LCD modules is that they have a dual-port
    RAM that allows data and instructions to be sent to them continuously. Thus, the busy flag is always 0
    and the host never has to read the busy flag bit to determine if the modules are busy. Due to this feature,
    the execution times for each instruction are not specified"

    Just to illustrate how simple it is to clear the display and display "Hello World", here are two lines of Tachyon code that will do this (but please don't shoot me, I'm only the helper)
    8 := *RS
    9 := *E
    : DMDAT ( byte -- )     $FF IOCLR IOSET *E HIGH *E LOW ;
    : DEMO   *RS CLR 1 DMDAT *RS SET " Hello World" BEGIN C@++ ?DUP WHILE DMDAT REPEAT DROP ;
    
    This could easily be made into a "one-liner" of course :)


    (I noticed that if I had two quote blocks using quote tags that it only showed one, so I removed the tags and used " instead)
  • thanks I will study this
    @Peter Jakacki
    @evanh
    @Rayman
Sign In or Register to comment.