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... | ||||
| 
 | ||||
| - 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 "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." | ||||
|  |  | |||
|  | @ -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) | ||||
| [env:bare] | ||||
| 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 | ||||
| debug_tool = jlink | ||||
| 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