Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
boards:ecb:4pio-i2c:development [2021/04/26 01:53]
b1ackmai1er
boards:ecb:4pio-i2c:development [2023/02/18 23:19] (current)
b1ackmai1er
Line 36: Line 36:
       * Change top layer to vcc plane for better power distribution.       * Change top layer to vcc plane for better power distribution.
       * Gate /WR with /CS to meet PCF8584 Z80 configuration requirements.       * Gate /WR with /CS to meet PCF8584 Z80 configuration requirements.
-      * Version C committed including above changes+      * Version C committed including above changes
 +      * Patches to version B board 
 +        * Lift pin 1 IC15, connect lifted pin to pin 19 IC13 
 +        * Lift pin 18 IC16, connect lifted pin 18 to pin 20 
 +        * Lift pin 5 IC 7, connect pin 6 to pin 15 
 +        * On solder side connect pin 19 IC13 to pin 2 IC2 
 +        * On component side, cut track between IC16 pin 17 and IC13 pin 19.
   * 4PIO-I2Cd   * 4PIO-I2Cd
       * Component placement, routing changes.       * Component placement, routing changes.
 +      * Initial ROMWBW HBIOS support.
 +      * Add jumper to connect DS1307 battery backup to backplane battery backup.
 +      * Add support for 3.3v I2C peripherals using logic level translator.
  
 ====== Board ====== ====== Board ======
Line 44: Line 53:
 Kicad files can be found [[https://github.com/b1ackmai1er/ECB-4PIO-I2C|here ]]but may not be the most recent. Kicad files can be found [[https://github.com/b1ackmai1er/ECB-4PIO-I2C|here ]]but may not be the most recent.
  
-Current revision is ECB-4PIO-I2Cc+Current revision is ECB-4PIO-I2Cd
  
 ====== Pictures ====== ====== Pictures ======
Line 78: Line 87:
 ====== I2C Addressing ====== ====== I2C Addressing ======
  
-24LC512 devices are access on the I2C bus by first issuing a control byte. The control byte consists if a device identifier (D), the device address (A) and a bit (B) to indicate if a read or write operation (O) is intended.+24LC512 devices are access on the I2C bus by first issuing a control byte. The control byte consists of a device identifier (D), the device address (A) and a bit (O) to indicate if a read or write operation is intended.
  
 So accessing a device requires sending a bye in the following sequence: DDDDAAAO So accessing a device requires sending a bye in the following sequence: DDDDAAAO
Line 106: Line 115:
 ^WRITE|11010001 (D1)| ^WRITE|11010001 (D1)|
  
-{{:boards:ecb:4pio-i2c:development:pcf8574.pdf|PCF8574}}  > LCD backpack+{{:boards:ecb:4pio-i2c:development:pcf8574.pdf|PCF8574}} {{:boards:ecb:4pio-i2c:development:hd44780_lcd_driver_datasheet.pdf|LCD}}  {{https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=0bc8fd&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=842ba7&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=100ca2&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=10f051&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=5ed9e3&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=f3f91e&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=f46157&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=b40609&media=https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=boards:ecb:4pio-i2c:development:i2c-lcd-backpack.png?linkonly|backpack}}
  
 A PCF8574 I2C 8-bit I/O expander is commonly used to driver LCD displays. A PCF8574 I2C 8-bit I/O expander is commonly used to driver LCD displays.
Line 117: Line 126:
 ^READ|01001111 (4F)| ^READ|01001111 (4F)|
 ^WRITE|01001110 (4E)| ^WRITE|01001110 (4E)|
 +
 +====== Software & Drivers ======
 +
 +__ROMWBW __
 +<code>
 +
 +RomWBW HBIOS v3.1.1-pre.75, 2021-05-12
 +
 +SBC Z80 @ 12.000MHz
 +0 MEM W/S, 1 I/O W/S, INT MODE 2, SBC MMU
 +512KB ROM, 512KB RAM
 +
 +UART0: IO=0x68 16550A MODE=38400,8,N,1
 +I2C: IO=0xF0
 +DS1307: 01/01/21 00:00:01
 +TMS: IO=0x98 NOT PRESENT
 +MD: FLASH=1 1=29F040 FLASH FILE SYSTEM DISABLED
 +MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
 +FD: IO=0x36 UNITS=2
 +RF: IO=0xA0 WP=OFF IO=0xA4 WP=OFF DEVICES=2
 +PPIDE: IO=0x60
 +PPIDE0: LBA BLOCKS=0x003DFC20 SIZE=1983MB
 +PPIDE1: NO MEDIA
 +PPIDE: IO=0x20 PPI NOT PRESENT
 +PPIDE: IO=0x44 PPI NOT PRESENT
 +
 +</code>
 +
 +__Utilities __
 +
 +RTCHB - display date and time using HBIOS functions
 +
 +<code>
 +H>rtchb
 +01/01/21 00:03:19
 +
 +</code>
 +
 +RTCDS7 - display date and time using direct access through PCF8584.
 +
 +<code>
 +H>rtcds7
 +01/01/21 00:03:35
 +
 +</code>
 +
 +I2CSCAN - I2C Bus Scanner
 +
 +<code>
 +H>i2cscan
 +I2C Bus Scanner
 +
 +    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 +00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
 +30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
 +70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 +
 +</code>
  
 ====== References ====== ====== References ======
Line 129: Line 201:
  
 Linux C driver: [[https://code.woboq.org/linux/linux/drivers/i2c/algos/i2c-algo-pcf.c.html|https://code.woboq.org/linux/linux/drivers/i2c/algos/i2c-algo-pcf.c.html]] Linux C driver: [[https://code.woboq.org/linux/linux/drivers/i2c/algos/i2c-algo-pcf.c.html|https://code.woboq.org/linux/linux/drivers/i2c/algos/i2c-algo-pcf.c.html]]
 +
 +I2CScan code: [[https://groups.google.com/group/retro-comp/attach/25120f43d0386/I2CSPI.ZIP?part=0.1|https://groups.google.com/group/retro-comp/attach/25120f43d0386/I2CSPI.ZIP?part=0.1]]
  
 ====== Key Learnings ====== ====== Key Learnings ======
Line 137: Line 211:
   * Do a hard reset between each software test to ensure consistent results. Exiting in a known state is important.   * Do a hard reset between each software test to ensure consistent results. Exiting in a known state is important.
   * Software control of hard reset is desirable as soft reset does guarantee consistent results.   * Software control of hard reset is desirable as soft reset does guarantee consistent results.
- 
-\\ 
  
  
boards/ecb/4pio-i2c/development.1619416409.txt.gz · Last modified: 2021/04/26 01:53 by b1ackmai1er
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0