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:50]
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)|
  
-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 118: Line 127:
 ^WRITE|01001110 (4E)| ^WRITE|01001110 (4E)|
  
-References+====== 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,
 +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 ======
  
 Sample test code: [[https://www.eevblog.com/forum/projects/z80lt-gtpcf8584-i2c-interface-problem/|https://www.eevblog.com/forum/projects/z80lt-gtpcf8584-i2c-interface-problem/]] Sample test code: [[https://www.eevblog.com/forum/projects/z80lt-gtpcf8584-i2c-interface-problem/|https://www.eevblog.com/forum/projects/z80lt-gtpcf8584-i2c-interface-problem/]]
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.1619416219.txt.gz · Last modified: 2021/04/26 01:50 by b1ackmai1er
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0