Created
October 18, 2020 10:31
-
-
Save parasquid/49141315735f63bbe347517901839b5c to your computer and use it in GitHub Desktop.
PAN1780 Board Definition File for Espruino (derived from the nRF52840DK board definition file)
This file contains hidden or 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
#!/bin/false | |
# This file is part of Espruino, a JavaScript interpreter for Microcontrollers | |
# | |
# Copyright (C) 2013 Gordon Williams <[email protected]> | |
# | |
# This Source Code Form is subject to the terms of the Mozilla Public | |
# License, v. 2.0. If a copy of the MPL was not distributed with this | |
# file, You can obtain one at http://mozilla.org/MPL/2.0/. | |
# | |
# ---------------------------------------------------------------------------------------- | |
# This file contains information for a specific board - the available pins, and where LEDs, | |
# Buttons, and other in-built peripherals are. It is used to build documentation as well | |
# as various source and header files for Espruino. | |
# ---------------------------------------------------------------------------------------- | |
import pinutils; | |
info = { | |
'name' : "PAN1780 Evaluation Kit", | |
'link' : [ "https://na.industrial.panasonic.com/products/wireless-connectivity/evaluation-kits/lineup/pan1780-series-evaluation-kit" ], | |
'espruino_page_link' : '', | |
# This is the PCA10056 | |
'default_console' : "EV_SERIAL1", | |
'default_console_tx' : "D6", | |
'default_console_rx' : "D8", | |
'default_console_baudrate' : "9600", | |
'variables' : 12500, # How many variables are allocated for Espruino to use. RAM will be overflowed if this number is too high and code won't compile. | |
# 'bootloader' : 1, | |
'binary_name' : 'espruino_%v_pan1780.hex', | |
'build' : { | |
'optimizeflags' : '-Os', | |
'libraries' : [ | |
'BLUETOOTH', | |
'NET', | |
'GRAPHICS', | |
# 'NFC', | |
'NEOPIXEL' | |
], | |
'makefile' : [ | |
'DEFINES += -DCONFIG_GPIO_AS_PINRESET', # Allow the reset pin to work | |
'DEFINES += -DBOARD_PCA10056', | |
'DEFINES += -DNRF_USB=1 -DUSB', | |
'DEFINES += -DNEOPIXEL_SCK_PIN=22 -DNEOPIXEL_LRCK_PIN=23', # nRF52840 needs LRCK pin defined for neopixel | |
'DEFINES += -DBLUETOOTH_NAME_PREFIX=\'"PAN1780"\'', | |
'NRF_SDK15=1' | |
] | |
} | |
}; | |
chip = { | |
'part' : "NRF52840", | |
'family' : "NRF52", | |
'package' : "AQFN73", | |
'ram' : 256, | |
'flash' : 1024, | |
'speed' : 64, | |
'usart' : 2, | |
'spi' : 3, | |
'i2c' : 2, | |
'adc' : 1, | |
'dac' : 0, | |
'saved_code' : { | |
'address' : ((246 - 10) * 4096), # Bootloader takes pages 248-255, FS takes 246-247 | |
'page_size' : 4096, | |
'pages' : 10, | |
'flash_available' : 1024 - ((38 + 8 + 2 + 10)*4) # Softdevice 140 uses 38 pages of flash, bootloader 8, FS 2, code 10. Each page is 4 kb. | |
}, | |
}; | |
devices = { | |
'BTN1' : { 'pin' : 'D11', 'pinstate' : 'IN_PULLDOWN' }, # Pin negated in software | |
'BTN2' : { 'pin' : 'D12', 'pinstate' : 'IN_PULLDOWN' }, # Pin negated in software | |
'BTN3' : { 'pin' : 'D24', 'pinstate' : 'IN_PULLDOWN' }, # Pin negated in software | |
'BTN4' : { 'pin' : 'D25', 'pinstate' : 'IN_PULLDOWN' }, # Pin negated in software | |
'LED1' : { 'pin' : 'D13' }, # Pin negated in software | |
'LED2' : { 'pin' : 'D14' }, # Pin negated in software | |
'LED3' : { 'pin' : 'D15' }, # Pin negated in software | |
'LED4' : { 'pin' : 'D16' }, # Pin negated in software | |
'RX_PIN_NUMBER' : { 'pin' : 'D8'}, | |
'TX_PIN_NUMBER' : { 'pin' : 'D6'}, | |
'CTS_PIN_NUMBER' : { 'pin' : 'D7'}, | |
'RTS_PIN_NUMBER' : { 'pin' : 'D5'}, | |
# Pin D22 is used for clock when driving neopixels - as not specifying a pin seems to break things | |
}; | |
def get_pins(): | |
pins = [] | |
# pinutils.findpin(pins, "PD0", False)["functions"]["XL1"]=0; | |
# pinutils.findpin(pins, "PD1", False)["functions"]["XL2"]=0; | |
pinutils.findpin(pins, "PD2", False)["functions"]["ADC1_IN0"]=0; | |
pinutils.findpin(pins, "PD3", False)["functions"]["ADC1_IN1"]=0; | |
# pinutils.findpin(pins, "PD4", True)["functions"]["ADC1_IN2"]=0; | |
pinutils.findpin(pins, "PD5", False)["functions"]["RTS"]=0; | |
pinutils.findpin(pins, "PD6", False)["functions"]["TXD"]=0; | |
pinutils.findpin(pins, "PD7", False)["functions"]["CTS"]=0; | |
pinutils.findpin(pins, "PD8", False)["functions"]["RXD"]=0; | |
pinutils.findpin(pins, "PD9", False)["functions"]["NFC1"]=0; | |
pinutils.findpin(pins, "PD10", False)["functions"]["NFC2"]=0; | |
pinutils.findpin(pins, "PD11", False)["functions"]["NEGATED"]=0; # BTN1 | |
pinutils.findpin(pins, "PD12", False)["functions"]["NEGATED"]=0; # BTN2 | |
pinutils.findpin(pins, "PD13", False)["functions"]["NEGATED"]=0; # LED1 | |
pinutils.findpin(pins, "PD14", False)["functions"]["NEGATED"]=0; # LED2 | |
pinutils.findpin(pins, "PD15", False)["functions"]["NEGATED"]=0; # LED3 | |
pinutils.findpin(pins, "PD16", False)["functions"]["NEGATED"]=0; # LED4 | |
pinutils.findpin(pins, "PD17", False) | |
# pinutils.findpin(pins, "PD18", False) | |
pinutils.findpin(pins, "PD19", False) | |
pinutils.findpin(pins, "PD20", False) | |
pinutils.findpin(pins, "PD21", False) | |
pinutils.findpin(pins, "PD22", False) | |
# pinutils.findpin(pins, "PD23", False) | |
pinutils.findpin(pins, "PD24", False)["functions"]["NEGATED"]=0; # BTN3 | |
pinutils.findpin(pins, "PD25", False)["functions"]["NEGATED"]=0; # BTN4 | |
pinutils.findpin(pins, "PD26", False) | |
pinutils.findpin(pins, "PD27", False) | |
pinutils.findpin(pins, "PD28", False)["functions"]["ADC1_IN4"]=0; | |
pinutils.findpin(pins, "PD29", False)["functions"]["ADC1_IN5"]=0; | |
pinutils.findpin(pins, "PD30", False)["functions"]["ADC1_IN6"]=0; | |
pinutils.findpin(pins, "PD31", False)["functions"]["ADC1_IN7"]=0; | |
# pinutils.findpin(pins, "PD32", False) # 1.01 | |
pinutils.findpin(pins, "PD33", False) # 1.01 | |
pinutils.findpin(pins, "PD34", False) # 1.02 | |
# pinutils.findpin(pins, "PD35", False) # 1.03 | |
# pinutils.findpin(pins, "PD36", False) # 1.04 | |
# pinutils.findpin(pins, "PD37", False) # 1.05 | |
# pinutils.findpin(pins, "PD38", False) # 1.06 | |
# pinutils.findpin(pins, "PD39", False) # 1.07 | |
# pinutils.findpin(pins, "PD40", False) # 1.08 | |
# pinutils.findpin(pins, "PD41", False) # 1.09 | |
# pinutils.findpin(pins, "PD42", False) # 1.10 | |
# pinutils.findpin(pins, "PD43", False) # 1.11 | |
pinutils.findpin(pins, "PD44", False) # 1.12 | |
pinutils.findpin(pins, "PD45", False) # 1.13 | |
pinutils.findpin(pins, "PD46", False) # 1.14 | |
pinutils.findpin(pins, "PD47", False) # 1.15 | |
# everything is non-5v tolerant | |
for pin in pins: | |
pin["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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment