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/05/12 06:32]
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}}  > {{:boards:ecb:4pio-i2c:development:hd44780_lcd_driver_datasheet.pdf|LCD}}  {{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}}+{{: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 121: Line 130:
  
 __ROMWBW __ __ROMWBW __
- 
 <code> <code>
 +
 RomWBW HBIOS v3.1.1-pre.75, 2021-05-12 RomWBW HBIOS v3.1.1-pre.75, 2021-05-12
  
Line 130: Line 139:
  
 UART0: IO=0x68 16550A MODE=38400,8,N,1 UART0: IO=0x68 16550A MODE=38400,8,N,1
-**I2C: IO=0xF0 +I2C: IO=0xF0 
-DS1307: 01/01/21 00:00:01**+DS1307: 01/01/21 00:00:01
 TMS: IO=0x98 NOT PRESENT TMS: IO=0x98 NOT PRESENT
 MD: FLASH=1 1=29F040 FLASH FILE SYSTEM DISABLED MD: FLASH=1 1=29F040 FLASH FILE SYSTEM DISABLED
Line 142: Line 151:
 PPIDE: IO=0x20 PPI NOT PRESENT PPIDE: IO=0x20 PPI NOT PRESENT
 PPIDE: IO=0x44 PPI NOT PRESENT PPIDE: IO=0x44 PPI NOT PRESENT
 +
 </code> </code>
  
Line 151: Line 161:
 H>rtchb H>rtchb
 01/01/21 00:03:19 01/01/21 00:03:19
 +
 </code> </code>
  
Line 156: Line 167:
  
 <code> <code>
- 
 H>rtcds7 H>rtcds7
 01/01/21 00:03:35 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> </code>
  
Line 172: 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 180: 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.1620815556.txt.gz · Last modified: 2021/05/12 06:32 by b1ackmai1er
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0