mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
board docs
This commit is contained in:
parent
85fa5dcd5d
commit
f39dd3b756
@ -59,17 +59,61 @@ devices = {
|
||||
'LED3' : { 'pin' : 'D3' },
|
||||
'IR' : { 'pin_anode' : 'D26', 'pin_cathode' : 'D25' },
|
||||
'BTN1' : { 'pin' : 'D0', 'pinstate' : 'IN_PULLDOWN' },
|
||||
'CAPSENSE' : { 'pin_rx' : 'D11', 'pin_tx' : 'D12' }
|
||||
# NFC D9/D10
|
||||
'CAPSENSE' : { 'pin_rx' : 'D11', 'pin_tx' : 'D12' },
|
||||
'NFC': { 'pin_a':'D9', 'pin_b':'D10' },
|
||||
'MAG': { 'pin_pwr':'D18',
|
||||
'pin_int':'D17',
|
||||
'pin_sda':'D20',
|
||||
'pin_scl':'D19' }
|
||||
|
||||
};
|
||||
|
||||
# left-right, or top-bottom order
|
||||
board = {
|
||||
'left' : [ 'PD28', 'PD29', 'PD30', 'PD31'],
|
||||
'bottom' : [ 'D28', 'D29', 'D30', 'D31'],
|
||||
'right' : [ 'GND', '3V', 'D2', 'D1' ],
|
||||
'right2' : [ 'D6','D7','D8','D11','D13','D14','D15','D16','D23','D24','D27' ],
|
||||
'_notes' : {
|
||||
'D11' : "Capacitive sense. D12 is connected to this pin via a 1 MOhm resistor",
|
||||
'D29' : "If pulled up to 1 on startup, D28 and D29 become Serial1",
|
||||
}
|
||||
};
|
||||
|
||||
board["_css"] = """
|
||||
#board {
|
||||
width: 800px;
|
||||
height: 800px;
|
||||
top: 0px;
|
||||
left : 0px;
|
||||
background-image: url(img/PUCKJS_.jpg);
|
||||
}
|
||||
#boardcontainer {
|
||||
height: 900px;
|
||||
}
|
||||
#bottom {
|
||||
top: 639px;
|
||||
left: 291px;
|
||||
}
|
||||
#right {
|
||||
top: 304px;
|
||||
left: 640px;
|
||||
}
|
||||
|
||||
.bottompin { width: 46px; }
|
||||
.rightpin { height: 51px; }
|
||||
.pinD6 { position:absolute; left: 560px; top: 419px;}
|
||||
.pinD7 { position:absolute; left: 548px; top: 369px;}
|
||||
.pinD8 { position:absolute; left: 512px; top: 398px;}
|
||||
.pinD11 { position:absolute; left: 586px; top: 236px;}
|
||||
.pinD13 { position:absolute; left: 509px; top: 293px;}
|
||||
.pinD14 { position:absolute; left: 523px; top: 270px;}
|
||||
.pinD15 { position:absolute; left: 483px; top: 268px;}
|
||||
.pinD16 { position:absolute; left: 499px; top: 244px;}
|
||||
.pinD23 { position:absolute; left: 157px; top: 438px;}
|
||||
.pinD24 { position:absolute; left: 157px; top: 382px;}
|
||||
.pinD27 { position:absolute; left: 244px; top: 581px;}
|
||||
""";
|
||||
|
||||
def get_pins():
|
||||
pins = pinutils.generate_pins(0,31) # 32 General Purpose I/O Pins.
|
||||
pinutils.findpin(pins, "PD0", True)["functions"]["XL1"]=0;
|
||||
@ -77,13 +121,23 @@ def get_pins():
|
||||
pinutils.findpin(pins, "PD9", True)["functions"]["NFC1"]=0;
|
||||
pinutils.findpin(pins, "PD10", True)["functions"]["NFC2"]=0;
|
||||
pinutils.findpin(pins, "PD2", True)["functions"]["ADC1_IN0"]=0;
|
||||
pinutils.findpin(pins, "PD2", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD3", True)["functions"]["ADC1_IN1"]=0;
|
||||
pinutils.findpin(pins, "PD3", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD4", True)["functions"]["ADC1_IN2"]=0;
|
||||
pinutils.findpin(pins, "PD4", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD5", True)["functions"]["ADC1_IN3"]=0;
|
||||
pinutils.findpin(pins, "PD5", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD28", True)["functions"]["ADC1_IN4"]=0;
|
||||
pinutils.findpin(pins, "PD28", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD28", True)["functions"]["USART1_TX"]=0;
|
||||
pinutils.findpin(pins, "PD29", True)["functions"]["USART1_RX"]=0;
|
||||
pinutils.findpin(pins, "PD29", True)["functions"]["ADC1_IN5"]=0;
|
||||
pinutils.findpin(pins, "PD29", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD30", True)["functions"]["ADC1_IN6"]=0;
|
||||
pinutils.findpin(pins, "PD30", True)["functions"]["3.3"]=0;
|
||||
pinutils.findpin(pins, "PD31", True)["functions"]["ADC1_IN7"]=0;
|
||||
pinutils.findpin(pins, "PD31", True)["functions"]["3.3"]=0;
|
||||
|
||||
#The boot/reset button will function as a reset button in normal operation. Pin reset on PD21 needs to be enabled on the nRF52832 device for this to work.
|
||||
return pins
|
||||
|
||||
BIN
boards/img/PUCKJS_.jpg
Normal file
BIN
boards/img/PUCKJS_.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 342 KiB |
@ -72,6 +72,23 @@ for pin in pins:
|
||||
if not pinutils.CLASSES[func] in functionsOnBoard:
|
||||
functionsOnBoard.append(pinutils.CLASSES[func])
|
||||
|
||||
#print(json.dumps(functionsOnBoard))
|
||||
|
||||
def has_pinb(brd,pin):
|
||||
for pinstrip in brd:
|
||||
if pinstrip[0]!='_':
|
||||
for p in brd[pinstrip]:
|
||||
if p==pin: return True
|
||||
return False
|
||||
|
||||
def has_pin(pin):
|
||||
if hasattr(board, 'boards'):
|
||||
for brdnum in range(len(board.boards)):
|
||||
if has_pinb(board.boards[brdnum], pin): return True
|
||||
return False
|
||||
else:
|
||||
return has_pinb(board.board, pin)
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
|
||||
def dump_pin(brd, pin, pinstrip):
|
||||
@ -89,8 +106,10 @@ def dump_pin(brd, pin, pinstrip):
|
||||
# print(json.dumps(pininfo))
|
||||
if ("csv" in pininfo) and ("IO" in pininfo["csv"]) and ("Type" in pininfo["csv"]) and (pininfo["csv"]["Type"]=="I/O") and (pininfo["csv"]["IO"]!="FT") :
|
||||
not_five_volt = True
|
||||
if "3.3" in pininfo["functions"]:
|
||||
not_five_volt = True
|
||||
|
||||
writeHTML(' <DIV class="'+pinstrip+'pin pin">');
|
||||
writeHTML(' <DIV class="'+pinstrip+'pin pin pin'+pin+'">');
|
||||
pinHTML = ''
|
||||
if pin!="": pinHTML = ' <SPAN class="pinname">'+pin+"</SPAN>";
|
||||
pinHTML2 = '';
|
||||
@ -304,17 +323,16 @@ writeHTML("""
|
||||
<ul>
|
||||
<li><span class="pinfunction DEVICE">Purple</span> boxes show pins that are used for other functionality on the board. You should avoid using these unless you know that the marked device is not used.</li>
|
||||
<li><span class="pinfunction NOTE">!</span> boxes contain extra information about the pin. Hover your mouse over them to see it.</li>
|
||||
<li><span class="pinfunction NOT_5V">3.3v</span> boxes mark pins that are not 5v tolerant (they only take inputs from 0 - 3.3v, not 0 - 5v).</li>
|
||||
<li><span class="pinfunction">3.3</span> is a 3.3v output from the on-board Voltage regulator.</li>
|
||||
<li><span class="pinfunction">GND</span> is ground (0v).</li>
|
||||
<li><span class="pinfunction">VBAT</span> is the battery voltage output (see <a href="/EspruinoBoard">the Espruino Board Reference</a>).</li>
|
||||
<li><span class="pinfunction ADC">ADC</span> is an <a href="/ADC">Analog to Digital Converter</a> (for reading analog voltages)</li>""");
|
||||
if "DAC" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction DAC">DAC</span> is a <a href="/DAC">Digital to Analog Converter</a> (for creating analog voltages). This is not available on all boards.</li>""")
|
||||
writeHTML(""" <li><span class="pinfunction PWM">PWM</span> is for <a href="/PWM">Pulse Width Modulation</a>. This creates analog voltages from a digital output by sending a series of pulses.</li>
|
||||
<li><span class="pinfunction SPI">SPI</span> is the 3 wire <a href="/SPI">Serial Peripheral Interface</a>.</li>
|
||||
<li><span class="pinfunction USART">USART</span> is a 2 wire peripheral for <a href="/USART">Serial Data</a>.</li>
|
||||
<li><span class="pinfunction I2C">I2C</span> is the 2 wire <a href="/I2C">Inter-Integrated Circuit</a> bus.</li>
|
||||
""");
|
||||
<li><span class="pinfunction NOT_5V">3.3v</span> boxes mark pins that are not 5v tolerant (they only take inputs from 0 - 3.3v, not 0 - 5v).</li>""")
|
||||
if has_pin("3.3"): writeHTML(""" <li><span class="pinfunction">3.3</span> is a 3.3v output from the on-board Voltage regulator.</li>""")
|
||||
if has_pin("GND"): writeHTML(""" <li><span class="pinfunction">GND</span> is ground (0v).</li>""")
|
||||
if has_pin("VBAT"): writeHTML(""" <li><span class="pinfunction">VBAT</span> is the battery voltage output (see <a href="/EspruinoBoard">the Espruino Board Reference</a>).</li>""")
|
||||
if "ADC" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction ADC">ADC</span> is an <a href="/ADC">Analog to Digital Converter</a> (for reading analog voltages)</li>""");
|
||||
if "DAC" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction DAC">DAC</span> is a <a href="/DAC">Digital to Analog Converter</a> (for creating analog voltages). This is not available on all boards.</li>""");
|
||||
if "PWM" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction PWM">PWM</span> is for <a href="/PWM">Pulse Width Modulation</a>. This creates analog voltages from a digital output by sending a series of pulses.</li>""");
|
||||
if "SPI" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction SPI">SPI</span> is the 3 wire <a href="/SPI">Serial Peripheral Interface</a>.</li>""");
|
||||
if "USART" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction USART">USART</span> is a 2 wire peripheral for <a href="/USART">Serial Data</a>.</li>""");
|
||||
if "I2C" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction I2C">I2C</span> is the 2 wire <a href="/I2C">Inter-Integrated Circuit</a> bus.</li>""");
|
||||
if "CAN" in functionsOnBoard: writeHTML(""" <li><span class="pinfunction CAN">CAN</span> is for the <a href="http://en.wikipedia.org/wiki/CAN_bus">Controller Area Network</a>. It is not supported by Espruino.</li>""")
|
||||
|
||||
writeHTML(" </ul>");
|
||||
|
||||
@ -81,7 +81,11 @@ DEVICES = {
|
||||
"MEMS":"MEMS",
|
||||
"GYRO":"GYRO",
|
||||
"JTAG":"JTAG",
|
||||
"ESP8266":"ESP8266"
|
||||
"ESP8266":"ESP8266",
|
||||
"MAG":"MAG",
|
||||
"IR":"IR",
|
||||
"NFC":"NFC",
|
||||
"CAPSENSE":"CAPSENSE",
|
||||
};
|
||||
|
||||
for i in range(0,7):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user