kopia lustrzana https://github.com/meshtastic/firmware
				
				
				
			add a variant based on the nrf52840-dk but with a RC clock.
Because I was dumb and accidentally ran some code that configured gpio 0 as an output and that was enough to smoke the xtal that was preinstalled between P0.0 and P0.1.pull/111/head
							rodzic
							
								
									bebaa838c4
								
							
						
					
					
						commit
						bb885a5110
					
				|  | @ -0,0 +1,46 @@ | ||||||
|  | { | ||||||
|  |   "build": { | ||||||
|  |     "arduino": { | ||||||
|  |       "ldscript": "nrf52840_s140_v6.ld" | ||||||
|  |     }, | ||||||
|  |     "core": "nRF5", | ||||||
|  |     "cpu": "cortex-m4", | ||||||
|  |     "extra_flags": "-DARDUINO_NRF52840_PPR -DNRF52840_XXAA", | ||||||
|  |     "f_cpu": "64000000L", | ||||||
|  |     "hwids": [["0x239A", "0x4403"]], | ||||||
|  |     "usb_product": "PPR", | ||||||
|  |     "mcu": "nrf52840", | ||||||
|  |     "variant": "pca10056-rc-clock", | ||||||
|  |     "variants_dir": "variants", | ||||||
|  |     "bsp": { | ||||||
|  |       "name": "adafruit" | ||||||
|  |     }, | ||||||
|  |     "softdevice": { | ||||||
|  |       "sd_flags": "-DS140", | ||||||
|  |       "sd_name": "s140", | ||||||
|  |       "sd_version": "6.1.1", | ||||||
|  |       "sd_fwid": "0x00B6" | ||||||
|  |     }, | ||||||
|  |     "bootloader": { | ||||||
|  |       "settings_addr": "0xFF000" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "connectivity": ["bluetooth"], | ||||||
|  |   "debug": { | ||||||
|  |     "jlink_device": "nRF52840_xxAA", | ||||||
|  |     "onboard_tools": ["jlink"], | ||||||
|  |     "svd_path": "nrf52840.svd" | ||||||
|  |   }, | ||||||
|  |   "frameworks": ["arduino"], | ||||||
|  |   "name": "Meshtastic PPR (Adafruit BSP)", | ||||||
|  |   "upload": { | ||||||
|  |     "maximum_ram_size": 248832, | ||||||
|  |     "maximum_size": 815104, | ||||||
|  |     "require_upload_port": true, | ||||||
|  |     "speed": 115200, | ||||||
|  |     "protocol": "jlink", | ||||||
|  |     "protocols": ["jlink", "nrfjprog", "stlink"] | ||||||
|  |   }, | ||||||
|  |   "url": "https://meshtastic.org/", | ||||||
|  |   "vendor": "Othernet" | ||||||
|  | } | ||||||
|  | @ -56,6 +56,7 @@ Needed to be fully functional at least at the same level of the ESP32 boards. At | ||||||
| 
 | 
 | ||||||
| Nice ideas worth considering someday... | Nice ideas worth considering someday... | ||||||
| 
 | 
 | ||||||
|  | - Currently we use Nordic's vendor ID, which is apparently okay: https://devzone.nordicsemi.com/f/nordic-q-a/44014/using-nordic-vid-and-pid-for-nrf52840 and I just picked a PID of 0x4403 | ||||||
| - Use NRF logger module (includes flash logging etc...) instead of DEBUG_MSG | - Use NRF logger module (includes flash logging etc...) instead of DEBUG_MSG | ||||||
| - Use "LED softblink" library on NRF52 to do nice pretty "breathing" LEDs. Don't whack LED from main thread anymore. | - Use "LED softblink" library on NRF52 to do nice pretty "breathing" LEDs. Don't whack LED from main thread anymore. | ||||||
| - decrease BLE xmit power "At 0dBm with the DC/DC on, the nRF52832 transmitter draws 5.3mA. Increasing the TX power to +4dBm adds only 2.2mA. Decreasing it to -40 dBm saves only 2.6mA." | - decrease BLE xmit power "At 0dBm with the DC/DC on, the nRF52832 transmitter draws 5.3mA. Increasing the TX power to +4dBm adds only 2.2mA. Decreasing it to -40 dBm saves only 2.6mA." | ||||||
|  |  | ||||||
|  | @ -125,7 +125,8 @@ build_flags = | ||||||
| ; This is a temporary build target to test turning off particular hardare bits in the build (to improve modularity) | ; This is a temporary build target to test turning off particular hardare bits in the build (to improve modularity) | ||||||
| [env:bare] | [env:bare] | ||||||
| platform = nordicnrf52 | platform = nordicnrf52 | ||||||
| board = nrf52840_dk_adafruit ; nicer than nrf52840_dk - more full gpio mappings | ; board = nrf52840_dk_adafruit ; nicer than nrf52840_dk - more full gpio mappings | ||||||
|  | board = ppr | ||||||
| framework = arduino | framework = arduino | ||||||
| debug_tool = jlink | debug_tool = jlink | ||||||
| build_flags =  | build_flags =  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | /*
 | ||||||
|  |   Copyright (c) 2014-2015 Arduino LLC.  All right reserved. | ||||||
|  |   Copyright (c) 2016 Sandeep Mistry All right reserved. | ||||||
|  |   Copyright (c) 2018, Adafruit Industries (adafruit.com) | ||||||
|  | 
 | ||||||
|  |   This library is free software; you can redistribute it and/or | ||||||
|  |   modify it under the terms of the GNU Lesser General Public | ||||||
|  |   License as published by the Free Software Foundation; either | ||||||
|  |   version 2.1 of the License, or (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |   This library is distributed in the hope that it will be useful, | ||||||
|  |   but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |   See the GNU Lesser General Public License for more details. | ||||||
|  | 
 | ||||||
|  |   You should have received a copy of the GNU Lesser General Public | ||||||
|  |   License along with this library; if not, write to the Free Software | ||||||
|  |   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | #include "variant.h" | ||||||
|  | #include "wiring_constants.h" | ||||||
|  | #include "wiring_digital.h" | ||||||
|  | #include "nrf.h" | ||||||
|  | 
 | ||||||
|  | const uint32_t g_ADigitalPinMap[] = | ||||||
|  | { | ||||||
|  |   // P0
 | ||||||
|  |   0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , | ||||||
|  |   8 , 9 , 10, 11, 12, 13, 14, 15, | ||||||
|  |   16, 17, 18, 19, 20, 21, 22, 23, | ||||||
|  |   24, 25, 26, 27, 28, 29, 30, 31, | ||||||
|  | 
 | ||||||
|  |   // P1
 | ||||||
|  |   32, 33, 34, 35, 36, 37, 38, 39, | ||||||
|  |   40, 41, 42, 43, 44, 45, 46, 47 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | void initVariant() | ||||||
|  | { | ||||||
|  |   // LED1 & LED2
 | ||||||
|  |   pinMode(PIN_LED1, OUTPUT); | ||||||
|  |   ledOff(PIN_LED1); | ||||||
|  | 
 | ||||||
|  |   pinMode(PIN_LED2, OUTPUT); | ||||||
|  |   ledOff(PIN_LED2);; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,150 @@ | ||||||
|  | /*
 | ||||||
|  |  Copyright (c) 2014-2015 Arduino LLC.  All right reserved. | ||||||
|  |  Copyright (c) 2016 Sandeep Mistry All right reserved. | ||||||
|  |  Copyright (c) 2018, Adafruit Industries (adafruit.com) | ||||||
|  | 
 | ||||||
|  |  This library is free software; you can redistribute it and/or | ||||||
|  |  modify it under the terms of the GNU Lesser General Public | ||||||
|  |  License as published by the Free Software Foundation; either | ||||||
|  |  version 2.1 of the License, or (at your option) any later version. | ||||||
|  |  This library is distributed in the hope that it will be useful, | ||||||
|  |  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  See the GNU Lesser General Public License for more details. | ||||||
|  |  You should have received a copy of the GNU Lesser General Public | ||||||
|  |  License along with this library; if not, write to the Free Software | ||||||
|  |  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | #ifndef _VARIANT_PCA10056_ | ||||||
|  | #define _VARIANT_PCA10056_ | ||||||
|  | 
 | ||||||
|  | /** Master clock frequency */ | ||||||
|  | #define VARIANT_MCK (64000000ul) | ||||||
|  | 
 | ||||||
|  | // This file is the same as the standard pac10056 variant, except that @geeksville broke the xtal on his devboard so
 | ||||||
|  | // he has to use a RC clock.
 | ||||||
|  | 
 | ||||||
|  | // #define USE_LFXO // Board uses 32khz crystal for LF
 | ||||||
|  | #define USE_LFRC // Board uses RC for LF
 | ||||||
|  | 
 | ||||||
|  | /*----------------------------------------------------------------------------
 | ||||||
|  |  *        Headers | ||||||
|  |  *----------------------------------------------------------------------------*/ | ||||||
|  | 
 | ||||||
|  | #include "WVariant.h" | ||||||
|  | 
 | ||||||
|  | #ifdef __cplusplus | ||||||
|  | extern "C" { | ||||||
|  | #endif // __cplusplus
 | ||||||
|  | 
 | ||||||
|  | // Number of pins defined in PinDescription array
 | ||||||
|  | #define PINS_COUNT (48) | ||||||
|  | #define NUM_DIGITAL_PINS (48) | ||||||
|  | #define NUM_ANALOG_INPUTS (6) | ||||||
|  | #define NUM_ANALOG_OUTPUTS (0) | ||||||
|  | 
 | ||||||
|  | // LEDs
 | ||||||
|  | #define PIN_LED1 (13) | ||||||
|  | #define PIN_LED2 (14) | ||||||
|  | 
 | ||||||
|  | #define LED_BUILTIN PIN_LED1 | ||||||
|  | #define LED_CONN PIN_LED2 | ||||||
|  | 
 | ||||||
|  | #define LED_RED PIN_LED1 | ||||||
|  | #define LED_BLUE PIN_LED2 | ||||||
|  | 
 | ||||||
|  | #define LED_STATE_ON 0 // State when LED is litted
 | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * Buttons | ||||||
|  |  */ | ||||||
|  | #define PIN_BUTTON1 11 | ||||||
|  | #define PIN_BUTTON2 12 | ||||||
|  | #define PIN_BUTTON3 24 | ||||||
|  | #define PIN_BUTTON4 25 | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * Analog pins | ||||||
|  |  */ | ||||||
|  | #define PIN_A0 (3) | ||||||
|  | #define PIN_A1 (4) | ||||||
|  | #define PIN_A2 (28) | ||||||
|  | #define PIN_A3 (29) | ||||||
|  | #define PIN_A4 (30) | ||||||
|  | #define PIN_A5 (31) | ||||||
|  | #define PIN_A6 (0xff) | ||||||
|  | #define PIN_A7 (0xff) | ||||||
|  | 
 | ||||||
|  | static const uint8_t A0 = PIN_A0; | ||||||
|  | static const uint8_t A1 = PIN_A1; | ||||||
|  | static const uint8_t A2 = PIN_A2; | ||||||
|  | static const uint8_t A3 = PIN_A3; | ||||||
|  | static const uint8_t A4 = PIN_A4; | ||||||
|  | static const uint8_t A5 = PIN_A5; | ||||||
|  | static const uint8_t A6 = PIN_A6; | ||||||
|  | static const uint8_t A7 = PIN_A7; | ||||||
|  | #define ADC_RESOLUTION 14 | ||||||
|  | 
 | ||||||
|  | // Other pins
 | ||||||
|  | #define PIN_AREF (2) | ||||||
|  | #define PIN_NFC1 (9) | ||||||
|  | #define PIN_NFC2 (10) | ||||||
|  | 
 | ||||||
|  | static const uint8_t AREF = PIN_AREF; | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * Serial interfaces | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | // Arduino Header D0, D1
 | ||||||
|  | #define PIN_SERIAL1_RX (33) // P1.01
 | ||||||
|  | #define PIN_SERIAL1_TX (34) // P1.02
 | ||||||
|  | 
 | ||||||
|  | // Connected to Jlink CDC
 | ||||||
|  | #define PIN_SERIAL2_RX (8) | ||||||
|  | #define PIN_SERIAL2_TX (6) | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * SPI Interfaces | ||||||
|  |  */ | ||||||
|  | #define SPI_INTERFACES_COUNT 1 | ||||||
|  | 
 | ||||||
|  | #define PIN_SPI_MISO (46) | ||||||
|  | #define PIN_SPI_MOSI (45) | ||||||
|  | #define PIN_SPI_SCK (47) | ||||||
|  | 
 | ||||||
|  | static const uint8_t SS = 44; | ||||||
|  | static const uint8_t MOSI = PIN_SPI_MOSI; | ||||||
|  | static const uint8_t MISO = PIN_SPI_MISO; | ||||||
|  | static const uint8_t SCK = PIN_SPI_SCK; | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * Wire Interfaces | ||||||
|  |  */ | ||||||
|  | #define WIRE_INTERFACES_COUNT 1 | ||||||
|  | 
 | ||||||
|  | #define PIN_WIRE_SDA (26) | ||||||
|  | #define PIN_WIRE_SCL (27) | ||||||
|  | 
 | ||||||
|  | // QSPI Pins
 | ||||||
|  | #define PIN_QSPI_SCK 19 | ||||||
|  | #define PIN_QSPI_CS 17 | ||||||
|  | #define PIN_QSPI_IO0 20 | ||||||
|  | #define PIN_QSPI_IO1 21 | ||||||
|  | #define PIN_QSPI_IO2 22 | ||||||
|  | #define PIN_QSPI_IO3 23 | ||||||
|  | 
 | ||||||
|  | // On-board QSPI Flash
 | ||||||
|  | #define EXTERNAL_FLASH_DEVICES MX25R6435F | ||||||
|  | #define EXTERNAL_FLASH_USE_QSPI | ||||||
|  | 
 | ||||||
|  | #ifdef __cplusplus | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /*----------------------------------------------------------------------------
 | ||||||
|  |  *        Arduino objects - C++ only | ||||||
|  |  *----------------------------------------------------------------------------*/ | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 geeksville
						geeksville