Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
boards:ecb:4pio-i2c:development [2021/05/12 06:34] 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. | * 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 45: | Line 53: | ||
Kicad files can be found [[https:// | Kicad files can be found [[https:// | ||
- | Current revision is ECB-4PIO-I2Cc | + | Current revision is ECB-4PIO-I2Cd |
====== Pictures ====== | ====== Pictures ====== | ||
Line 79: | Line 87: | ||
====== I2C Addressing ====== | ====== I2C Addressing ====== | ||
- | 24LC512 devices are access on the I2C bus by first issuing a control byte. The control byte consists | + | 24LC512 devices are access on the I2C bus by first issuing a control byte. The control byte consists |
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 107: | Line 115: | ||
^WRITE|11010001 (D1)| | ^WRITE|11010001 (D1)| | ||
- | {{: | + | {{: |
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 122: | Line 130: | ||
__ROMWBW __ | __ROMWBW __ | ||
- | |||
< | < | ||
+ | |||
RomWBW HBIOS v3.1.1-pre.75, | RomWBW HBIOS v3.1.1-pre.75, | ||
Line 143: | 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 | ||
+ | |||
</ | </ | ||
Line 152: | Line 161: | ||
H>rtchb | H>rtchb | ||
01/01/21 00:03:19 | 01/01/21 00:03:19 | ||
+ | |||
</ | </ | ||
Line 159: | Line 169: | ||
H>rtcds7 | H>rtcds7 | ||
01/01/21 00:03:35 | 01/01/21 00:03:35 | ||
+ | |||
+ | </ | ||
+ | |||
+ | I2CSCAN - I2C Bus Scanner | ||
+ | |||
+ | < | ||
+ | H> | ||
+ | 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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
+ | |||
</ | </ | ||
Line 172: | Line 201: | ||
Linux C driver: [[https:// | Linux C driver: [[https:// | ||
+ | |||
+ | I2CScan code: [[https:// | ||
====== 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. | ||
- | |||
- | \\ | ||