-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4428b93
commit df31dc3
Showing
10 changed files
with
859 additions
and
1,688 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,11 @@ | ||
MIT License | ||
Copyright Microfire LLC 2024. | ||
|
||
Copyright (c) 2024 Justin Decker | ||
This source describes Open Hardware and is licensed under the CERN-OHL-P | ||
v2. | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. | ||
You may redistribute and modify this documentation and make products | ||
using it under the terms of the CERN-OHL-P v2 (https:/cern.ch/cern-ohl). | ||
This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED | ||
WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY | ||
AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-P v2 | ||
for applicable conditions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,82 @@ | ||
# pca9615 | ||
# PCA9615 | ||
|
||
Wooohooo a new package! | ||
📒 [Datasheet](https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf) | ||
|
||
This repository is an [atopile](https://atopile.io/) module for the PCA9615, 2-channel multipoint Fast-mode differential I2C-bus. In other words, it lets | ||
you use I2C like you might use MODBUS, ie. over long wires and through noisy environments. | ||
|
||
## 🏁 Get started | ||
### Installation | ||
From inside a project directory terminal: `ato install pac9615-ato` | ||
|
||
### Code | ||
```Go | ||
from "pca9615/elec/src/pca9615.ato" import PCA9615 | ||
from "generics/interfaces.ato" import DiffPair, Power, I2C, GPIO | ||
|
||
module Test: | ||
# define virtual buses, connect these to physical components/pins | ||
power = new Power | ||
d_sda = new DiffPair | ||
d_scl = new DiffPair | ||
i2c = new I2C | ||
power_a_2v3_5v5 = new Power | ||
power_b_3v0_5v5 = new Power | ||
differential_side_power = new Power | ||
en = new GPIO | ||
|
||
# define the PCA9615 | ||
pca9615 = new PCA9615 | ||
|
||
# PCA9615 enable pin is driven high be an internal pullup | ||
# to disable chip, drive low | ||
en ~ pca9615.en | ||
|
||
# connect power to normal I2C side | ||
power_a_2v3_5v5 ~ pca9615.power_a_2v3_5v5 | ||
|
||
# differential power can be seperate or the same as the I2C side | ||
pca9615.power_b_3v0_5v5 ~ power_a_2v3_5v5 | ||
# - or - | ||
pca9615.power_b_3v0_5v5 ~ differential_side_power | ||
|
||
# normal I2C connection | ||
i2c ~ pca9615.i2c | ||
|
||
# differential pairs | ||
d_sda ~ pca9615.d_sda | ||
d_scl ~ pca9615.d_scl | ||
``` | ||
|
||
## 🤔 Design Considerations | ||
- d_sda and d_scl must be routed as differential pairs (`6` in KiCAD PCB Editor) | ||
- power on the I2C side can be seperate from the differential side, common grounds are not required | ||
- the I2C side can accept between 2.3 - 5.5 volts | ||
- the differential side can accept 3.0 - 5.5 volts | ||
- an RJ45 connector and CAT6 cable work well for making the connections | ||
|
||
## 🔌 Connections | ||
|
||
|MCU | | MCU PCA9615 | |Sensor PCA9615 | | Sensor | | ||
|-------: |-: |---: |:-: |:--- |:-: | :-| | ||
| | | MCU PCA9615.d_SDA 🟩|~ |🟩 Sensor PCA9615.d_SDA|~ | | ||
| | | MCU PCA9615.d_SCL 🟪|~ |🟪 Sensor PCA9615.d_SCL|~ | ||
| MCU.SDA 🟨 |~ | 🟨 MCU PCA9615.SDA 🟨| |🟨 Sensor PCA9615.SDA|~ |🟨 Sensor.SDA | ||
| MCU.SCL 🟦 |~ | 🟦 MCU PCA9615.SCL 🟦| |🟦 Sensor PCA9615.SCL|~ |🟦 Sensor.SCL | ||
| *MCU.VCC* 🟥 | ~| 🟥 *MCU PCA9615.VCC* 🟥 |*(optional)*|🟥 *Sensor.VCC*|~ | 🟥 *Sensor.VCC* | ||
|**MCU.GND**⬛ |~ | ⬛ **MCU.GND** ⬛|*(optional)*|⬛ **Sensor.GND**|~|⬛ **Sensor.GND** | ||
|
||
|
||
## ⚡ Programming | ||
Once connected, the sensor (or just the other side) appear as a normal I2C device to the host. Nothing special needs to be done. | ||
|
||
## 🙏 Contributing | ||
This design is intended to be a community best-effort at a minimal circuit combining: | ||
- datasheet reference design | ||
- readily available components | ||
- modular and reusable layout | ||
|
||
You are greatly encouraged to contribute or discuss any improvements here so that everyone may benefit. | ||
|
||
## License | ||
[CERN-OHL-P v2](https:/cern.ch/cern-ohl) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
ato-version: ^0.2.0 | ||
builds: | ||
default: | ||
entry: elec/src/pca9615.ato:Pca9615 | ||
entry: elec/src/pca9615.ato:PCA9615 | ||
dependencies: | ||
- generics |
118 changes: 118 additions & 0 deletions
118
elec/footprints/footprints.3dshapes/TSSOP-10_L3.0-W3.0-H1.0-LS4.9-P0.5.wrl
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,108 @@ | ||
(kicad_symbol_lib | ||
(symbol "PCA9615DPJ" | ||
(in_bom yes) | ||
(on_board yes) | ||
(property | ||
"Reference" | ||
"U" | ||
(id 0) | ||
(at 0 10.16 0) | ||
(effects (font (size 1.27 1.27) ) ) | ||
) | ||
(property | ||
"Value" | ||
"PCA9615DPJ" | ||
(id 1) | ||
(at 0 -10.16 0) | ||
(effects (font (size 1.27 1.27) ) ) | ||
) | ||
(property | ||
"Footprint" | ||
"footprints:TSSOP-10_L3.0-W3.0-P0.50-LS4.9-BL" | ||
(id 2) | ||
(at 0 -12.70 0) | ||
(effects (font (size 1.27 1.27) ) hide) | ||
) | ||
(property | ||
"LCSC Part" | ||
"C2652385" | ||
(id 5) | ||
(at 0 -15.24 0) | ||
(effects (font (size 1.27 1.27) ) hide) | ||
) | ||
(symbol "PCA9615DPJ_0_1" | ||
(rectangle | ||
(start -11.43 7.62) | ||
(end 11.43 -7.62) | ||
(stroke (width 0) (type default) (color 0 0 0 0)) | ||
(fill (type background)) | ||
) | ||
(circle | ||
(center -10.16 6.35) | ||
(radius 0.38) | ||
(stroke (width 0) (type default) (color 0 0 0 0)) | ||
(fill (type none)) | ||
) | ||
(pin unspecified line | ||
(at -13.97 5.08 0) | ||
(length 2.54) | ||
(name "VDD(A)" (effects (font (size 1.27 1.27)))) | ||
(number "1" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at -13.97 2.54 0) | ||
(length 2.54) | ||
(name "SDA" (effects (font (size 1.27 1.27)))) | ||
(number "2" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at -13.97 -0.00 0) | ||
(length 2.54) | ||
(name "EN" (effects (font (size 1.27 1.27)))) | ||
(number "3" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at -13.97 -2.54 0) | ||
(length 2.54) | ||
(name "SCL" (effects (font (size 1.27 1.27)))) | ||
(number "4" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at -13.97 -5.08 0) | ||
(length 2.54) | ||
(name "VSS" (effects (font (size 1.27 1.27)))) | ||
(number "5" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at 13.97 -5.08 180) | ||
(length 2.54) | ||
(name "DSCLM" (effects (font (size 1.27 1.27)))) | ||
(number "6" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at 13.97 -2.54 180) | ||
(length 2.54) | ||
(name "DSCLP" (effects (font (size 1.27 1.27)))) | ||
(number "7" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at 13.97 -0.00 180) | ||
(length 2.54) | ||
(name "DSDAP" (effects (font (size 1.27 1.27)))) | ||
(number "8" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at 13.97 2.54 180) | ||
(length 2.54) | ||
(name "DSDAM" (effects (font (size 1.27 1.27)))) | ||
(number "9" (effects (font (size 1.27 1.27)))) | ||
) | ||
(pin unspecified line | ||
(at 13.97 5.08 180) | ||
(length 2.54) | ||
(name "VDD(B)" (effects (font (size 1.27 1.27)))) | ||
(number "10" (effects (font (size 1.27 1.27)))) | ||
) | ||
) | ||
) | ||
) |
36 changes: 36 additions & 0 deletions
36
elec/footprints/footprints.pretty/TSSOP-10_L3.0-W3.0-P0.50-LS4.9-BL.kicad_mod
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
(module easyeda2kicad:TSSOP-10_L3.0-W3.0-P0.50-LS4.9-BL (layer F.Cu) (tedit 5DC5F6A4) | ||
(attr smd) | ||
(fp_text reference REF** (at 0 -6.3) (layer F.SilkS) | ||
(effects (font (size 1 1) (thickness 0.15))) | ||
) | ||
(fp_text value TSSOP-10_L3.0-W3.0-P0.50-LS4.9-BL (at 0 6.3) (layer F.Fab) | ||
(effects (font (size 1 1) (thickness 0.15))) | ||
) | ||
(fp_text user %R (at 0 0) (layer F.Fab) | ||
(effects (font (size 1 1) (thickness 0.15))) | ||
) | ||
(fp_line (start -1.50 -1.50) (end 1.50 -1.50) (layer F.SilkS) (width 0.25)) | ||
(fp_line (start 1.50 1.50) (end 1.50 -1.50) (layer F.SilkS) (width 0.25)) | ||
(fp_line (start -1.50 1.50) (end 1.50 1.50) (layer F.SilkS) (width 0.25)) | ||
(fp_line (start -1.50 -1.50) (end -1.50 -0.53) (layer F.SilkS) (width 0.25)) | ||
(fp_line (start -1.50 1.50) (end -1.50 0.49) (layer F.SilkS) (width 0.25)) | ||
(pad 1 smd rect (at -1.00 2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 2 smd rect (at -0.50 2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 3 smd rect (at 0.00 2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 4 smd rect (at 0.50 2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 5 smd rect (at 1.00 2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 6 smd rect (at 1.00 -2.30 -90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 7 smd rect (at 0.50 -2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 8 smd rect (at 0.00 -2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 9 smd rect (at -0.50 -2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(pad 10 smd rect (at -1.00 -2.30 90.00) (size 1.00 0.30) (layers F.Cu F.Paste F.Mask)) | ||
(fp_circle (center -1.45 2.40) (end -1.40 2.40) (layer F.Fab) (width 0.10)) | ||
(fp_circle (center -1.04 2.29) (end -0.91 2.29) (layer Cmts.User) (width 0.25)) | ||
(fp_circle (center -1.55 2.26) (end -1.42 2.26) (layer F.SilkS) (width 0.25)) | ||
(fp_arc (start -1.50 -0.02) (end -1.50 0.49) (angle -180.00) (layer F.SilkS) (width 0.25)) | ||
(model "C:/Users/justi/Documents/ato/test/.ato/modules/pca9615/elec/footprints/footprints.3dshapes/TSSOP-10_L3.0-W3.0-H1.0-LS4.9-P0.5.wrl" | ||
(offset (xyz 0.000 -0.000 -0.000)) | ||
(scale (xyz 1 1 1)) | ||
(rotate (xyz 0 0 0)) | ||
) | ||
) |
Oops, something went wrong.