work on current sense
This commit is contained in:
@@ -29,15 +29,11 @@ void MX_ADC1_Init(void)
|
||||
hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
hadc1.Init.OversamplingMode = DISABLE;
|
||||
if (HAL_ADC_Init(&hadc1) != HAL_OK)
|
||||
{
|
||||
SIMPLEFOC_DEBUG("HAL ADC1 Init fail.");
|
||||
}
|
||||
|
||||
multimode.Mode = ADC_MODE_INDEPENDENT;
|
||||
if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
|
||||
{
|
||||
SIMPLEFOC_DEBUG("HAL ADC1 Multimode configuration fail.");
|
||||
}
|
||||
SIMPLEFOC_DEBUG("HAL ADC1 multimode configuration fail.");
|
||||
|
||||
sConfig.Channel = ADC_CHANNEL_VOPAMP1;
|
||||
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||||
@@ -46,9 +42,12 @@ void MX_ADC1_Init(void)
|
||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||
sConfig.Offset = 0;
|
||||
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
SIMPLEFOC_DEBUG("HAL ADC OPAMP1 init failed!");
|
||||
|
||||
sConfig.Channel = ADC_CHANNEL_TEMPSENSOR_ADC1;
|
||||
sConfig.Rank = ADC_REGULAR_RANK_2;
|
||||
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("HAL ADC temp init failed!");
|
||||
}
|
||||
|
||||
void MX_ADC2_Init(void)
|
||||
@@ -72,9 +71,7 @@ void MX_ADC2_Init(void)
|
||||
hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
hadc2.Init.OversamplingMode = DISABLE;
|
||||
if (HAL_ADC_Init(&hadc2) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
SIMPLEFOC_DEBUG("HAL ADC2 init failed!");
|
||||
|
||||
sConfig.Channel = ADC_CHANNEL_VOPAMP2;
|
||||
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||||
@@ -83,19 +80,15 @@ void MX_ADC2_Init(void)
|
||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||
sConfig.Offset = 0;
|
||||
if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
SIMPLEFOC_DEBUG("HAL ADC OPAMP2 init failed!");
|
||||
|
||||
sConfig.Channel = ADC_CHANNEL_VOPAMP3_ADC2;
|
||||
sConfig.Rank = ADC_REGULAR_RANK_2;
|
||||
if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
SIMPLEFOC_DEBUG("HAL ADC OPAMP3 init failed!");
|
||||
}
|
||||
|
||||
void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
|
||||
void ADC_DMA_Init(ADC_HandleTypeDef* adcHandle)
|
||||
{
|
||||
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
|
||||
@@ -165,25 +158,25 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
|
||||
{
|
||||
// void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
|
||||
// {
|
||||
|
||||
if(adcHandle->Instance==ADC1)
|
||||
{
|
||||
HAL_RCC_ADC12_CLK_ENABLED--;
|
||||
if(HAL_RCC_ADC12_CLK_ENABLED==0){
|
||||
__HAL_RCC_ADC12_CLK_DISABLE();
|
||||
}
|
||||
// if(adcHandle->Instance==ADC1)
|
||||
// {
|
||||
// HAL_RCC_ADC12_CLK_ENABLED--;
|
||||
// if(HAL_RCC_ADC12_CLK_ENABLED==0){
|
||||
// __HAL_RCC_ADC12_CLK_DISABLE();
|
||||
// }
|
||||
|
||||
HAL_DMA_DeInit(adcHandle->DMA_Handle);
|
||||
}
|
||||
else if(adcHandle->Instance==ADC2)
|
||||
{
|
||||
HAL_RCC_ADC12_CLK_ENABLED--;
|
||||
if(HAL_RCC_ADC12_CLK_ENABLED==0){
|
||||
__HAL_RCC_ADC12_CLK_DISABLE();
|
||||
}
|
||||
// HAL_DMA_DeInit(adcHandle->DMA_Handle);
|
||||
// }
|
||||
// else if(adcHandle->Instance==ADC2)
|
||||
// {
|
||||
// HAL_RCC_ADC12_CLK_ENABLED--;
|
||||
// if(HAL_RCC_ADC12_CLK_ENABLED==0){
|
||||
// __HAL_RCC_ADC12_CLK_DISABLE();
|
||||
// }
|
||||
|
||||
HAL_DMA_DeInit(adcHandle->DMA_Handle);
|
||||
}
|
||||
}
|
||||
// HAL_DMA_DeInit(adcHandle->DMA_Handle);
|
||||
// }
|
||||
// }
|
||||
@@ -1,12 +1,9 @@
|
||||
#ifndef __ADC_H__
|
||||
#define __ADC_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "stm32g4xx_hal.h"
|
||||
#include "stm32g4xx_hal_adc.h"
|
||||
#include "communication/SimpleFOCDebug.h"
|
||||
|
||||
extern ADC_HandleTypeDef hadc1;
|
||||
extern ADC_HandleTypeDef hadc2;
|
||||
@@ -15,11 +12,7 @@ extern DMA_HandleTypeDef hdma_adc2;
|
||||
|
||||
void MX_ADC1_Init(void);
|
||||
void MX_ADC2_Init(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
void ADC_DMA_Init(ADC_HandleTypeDef* adcHandle);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ void MX_DMA_Init(void)
|
||||
{
|
||||
__HAL_RCC_DMAMUX1_CLK_ENABLE();
|
||||
__HAL_RCC_DMA1_CLK_ENABLE();
|
||||
__HAL_RCC_DMA2_CLK_ENABLE();
|
||||
|
||||
HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
|
||||
@@ -11,6 +12,11 @@ void MX_DMA_Init(void)
|
||||
HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
|
||||
|
||||
RCC_PeriphCLKInitTypeDef PeriphClkInit;
|
||||
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC12;
|
||||
PeriphClkInit.Adc12ClockSelection = RCC_ADC12CLKSOURCE_SYSCLK;
|
||||
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);
|
||||
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
@@ -1,20 +1,13 @@
|
||||
#ifndef __DMA_H__
|
||||
#define __DMA_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include <stm32g4xx_hal.h>
|
||||
#include <stm32g4xx_hal_dma.h>
|
||||
|
||||
#include "stm32g4xx_hal.h"
|
||||
#include "stm32g4xx_hal_dma.h"
|
||||
extern DMA_HandleTypeDef hdma_adc1;
|
||||
extern DMA_HandleTypeDef hdma_adc2;
|
||||
|
||||
void MX_DMA_Init(void);
|
||||
void DMA1_Channel1_IRQHandler(void);
|
||||
void DMA2_Channel2_IRQHandler(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ OPAMP_HandleTypeDef hopamp1;
|
||||
OPAMP_HandleTypeDef hopamp2;
|
||||
OPAMP_HandleTypeDef hopamp3;
|
||||
|
||||
void opamp_init(OPAMP_HandleTypeDef *hopamp, OPAMP_TypeDef *opamp)
|
||||
void initOPAMP(OPAMP_HandleTypeDef *hopamp, OPAMP_TypeDef *opamp)
|
||||
{
|
||||
hopamp1.Instance = opamp;
|
||||
hopamp1.Init.PowerMode = OPAMP_POWERMODE_NORMALSPEED;
|
||||
@@ -15,17 +15,15 @@ void opamp_init(OPAMP_HandleTypeDef *hopamp, OPAMP_TypeDef *opamp)
|
||||
hopamp1.Init.PgaConnect = OPAMP_PGA_CONNECT_INVERTINGINPUT_NO;
|
||||
hopamp1.Init.PgaGain = OPAMP_PGA_GAIN_16_OR_MINUS_15; // Adjust this to change the gains of the opamp.
|
||||
hopamp1.Init.UserTrimming = OPAMP_TRIMMING_FACTORY;
|
||||
if (HAL_OPAMP_Init(&hopamp) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_OPAMP_Init(hopamp) != HAL_OK)
|
||||
SIMPLEFOC_DEBUG("HAL OPAMP Init failed!");
|
||||
}
|
||||
|
||||
void configureOPAMPs(void)
|
||||
{
|
||||
opamp_init(&hopamp1, OPAMP1); // PA3
|
||||
opamp_init(&hopamp2, OPAMP2); // PB0
|
||||
opamp_init(&hopamp3, OPAMP3); // PA1
|
||||
initOPAMP(&hopamp1, OPAMP1); // PA3
|
||||
initOPAMP(&hopamp2, OPAMP2); // PB0
|
||||
initOPAMP(&hopamp3, OPAMP3); // PA1
|
||||
}
|
||||
|
||||
void HAL_OPAMP_MspInit(OPAMP_HandleTypeDef* opampHandle)
|
||||
@@ -1,21 +1,18 @@
|
||||
#ifndef __OPAMP_H__
|
||||
#define __OPAMP_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#if defined(SIMPLEFOC_STM32_CUSTOMCURRENTSENSE)
|
||||
|
||||
#include "stm32g4xx_hal.h"
|
||||
#include "stm32g4xx_hal_opamp.h"
|
||||
#include "communication/SimpleFOCDebug.h"
|
||||
|
||||
extern OPAMP_HandleTypeDef hopamp1;
|
||||
extern OPAMP_HandleTypeDef hopamp2;
|
||||
extern OPAMP_HandleTypeDef hopamp3;
|
||||
|
||||
void configureOPAMP(void);
|
||||
void configureOPAMPs(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
#if
|
||||
#include "adc.h"
|
||||
#include "opamp.h"
|
||||
#include "dma.h"
|
||||
#include "Arduino-FOC/src/current_sense/hardware_api.h"
|
||||
#include "Arduino-FOC/src/current_sense/hardware_specific/stm32_mcu.h"
|
||||
#include "Arduino-FOC/src/drivers/hardware_specific/stm32/stm32_mcu.h"
|
||||
#include "communication/SimpleFOCDebug.h"
|
||||
|
||||
float adcResolution = 4096.0f; // 12 bit ADC
|
||||
float voltageScale = 3.3f; // full scale voltage range of ADC
|
||||
float adcSens = adcResolution * voltageScale
|
||||
|
||||
volatile uint16_t adc1Result[2] = {0};
|
||||
volatile uint16_t adc2Result[2] = {0};
|
||||
|
||||
float adcSens = 3.3f * 1.440f / 4096.0f;
|
||||
|
||||
float _readVoltageInline(const uint8_t pin, const void *cs_params)
|
||||
{
|
||||
switch (pin)
|
||||
{
|
||||
case PA3:
|
||||
return adc1Result[0]; // ADC1 CH13 -> Vopamp1 internal output
|
||||
break;
|
||||
|
||||
case PB0:
|
||||
return adc2Result[0]; //ADC2 CH16 -> Vopamp2 internal output
|
||||
break;
|
||||
|
||||
case PA1:
|
||||
return adc2Result[1]; //ADC2 CH18 -> Vopamp3 internal output
|
||||
break;
|
||||
|
||||
case TS:
|
||||
return adc1Result[1];
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0.0f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
float _readVoltageLowSide(const int pinA, const void* cs_params){
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
void* _configureADCInline(const void *driver_params, const int pinA, const int pinB, const int pinC)
|
||||
{
|
||||
_UNUSED(driver_params);
|
||||
|
||||
HAL_Init();
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
MX_ADC1_Init(&hadc1);
|
||||
MX_ADC2_Init(&hadc2);
|
||||
configureOPAMPs();
|
||||
|
||||
MX_DMA1_Init(&hadc1, &hdma_adc1, DMA1_Channel1, DMA_REQUEST_ADC1);
|
||||
MX_DMA1_Init(&hadc2, &hdma_adc2, DMA1_Channel2, DMA_REQUEST_ADC2);
|
||||
|
||||
if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc1Result, 1) != HAL_OK)
|
||||
{
|
||||
SIMPLEFOC_DEBUG("DMA1 read init failed");
|
||||
}
|
||||
if (HAL_ADC_Start_DMA(&hadc2, (uint32_t *)adc2Result, 2) != HAL_OK)
|
||||
{
|
||||
SIMPLEFOC_DEBUG("DMA2 read init failed");
|
||||
}
|
||||
|
||||
HAL_OPAMP_Start(&hopamp1);
|
||||
HAL_OPAMP_Start(&hopamp2);
|
||||
HAL_OPAMP_Start(&hopamp3);
|
||||
|
||||
Stm32CurrentSenseParams *params = new Stm32CurrentSenseParams{
|
||||
.pins = {pinA, pinB, pinC},
|
||||
.adc_voltage_conv = adcSens,
|
||||
.timer_handle = (HardwareTimer *)(HardwareTimer_Handle[get_timer_index(TIM3)]->__this)};
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
void* _configureADCLowSide(const void *driver_params, const int pinA, const int pinB, const int pinC)
|
||||
{
|
||||
_UNUSED(driver_params);
|
||||
_UNUSED(pinA);
|
||||
_UNUSED(pinB);
|
||||
_UNUSED(pinC);
|
||||
|
||||
SIMPLEFOC_DEBUG("Lemon-Pepper does not use lowside sensing. Use inline current sense instead.");
|
||||
return SIMPLEFOC_CURRENT_SENSE_INIT_FAILED;
|
||||
}
|
||||
|
||||
void _driverSyncLowSide(void* driver_params, void* cs_params){
|
||||
|
||||
}
|
||||
124
firmware/lib/currentsense/utils.cpp
Normal file
124
firmware/lib/currentsense/utils.cpp
Normal file
@@ -0,0 +1,124 @@
|
||||
#if defined(SIMPLEFOC_STM32_CUSTOMCURRENTSENSE)
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
#include "adc.h"
|
||||
#include "dma.h"
|
||||
#include "opamp.h"
|
||||
|
||||
float adcResolution = 4096.0f; // 12 bit ADC
|
||||
float voltageScale = 3.3f; // full scale voltage range of ADC
|
||||
float adcSens = adcResolution * voltageScale;
|
||||
|
||||
volatile uint16_t adc1Result[2] = {0};
|
||||
volatile uint16_t adc2Result[2] = {0};
|
||||
|
||||
void MX_GPIO_Init(void)
|
||||
{
|
||||
/* GPIO Ports Clock Enable */
|
||||
__HAL_RCC_GPIOF_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOC_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_ADC12_CLK_ENABLE();
|
||||
}
|
||||
|
||||
float _readVoltageInline(const uint8_t pin, const void *cs_params)
|
||||
{
|
||||
uint32_t rawResult;
|
||||
switch (pin)
|
||||
{
|
||||
case PA3:
|
||||
rawResult = adc1Result[0]; // ADC1 CH13 -> Vopamp1 internal output
|
||||
break;
|
||||
|
||||
case PB0:
|
||||
rawResult = adc2Result[0]; // ADC2 CH16 -> Vopamp2 internal output
|
||||
break;
|
||||
|
||||
case PA1:
|
||||
rawResult = adc2Result[1]; // ADC2 CH18 -> Vopamp3 internal output
|
||||
break;
|
||||
|
||||
case PA2:
|
||||
rawResult = adc1Result[1]; // ADC1 CH16 -> not sure what pin should represent this?
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
return rawResult * ((Stm32CurrentSenseParams*)cs_params)->adc_voltage_conv;
|
||||
}
|
||||
|
||||
float _readVoltageLowSide(const int pinA, const void *cs_params)
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
void *_configureADCInline(const void *driver_params, const int pinA, const int pinB, const int pinC)
|
||||
{
|
||||
_UNUSED(driver_params);
|
||||
|
||||
HAL_Init();
|
||||
MX_GPIO_Init();
|
||||
MX_DMA_Init();
|
||||
MX_ADC1_Init();
|
||||
MX_ADC2_Init();
|
||||
configureOPAMPs();
|
||||
|
||||
ADC_DMA_Init(&hadc1);
|
||||
ADC_DMA_Init(&hadc2);
|
||||
|
||||
if (HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc1Result, 1) != HAL_OK)
|
||||
{
|
||||
SIMPLEFOC_DEBUG("DMA1 read init failed");
|
||||
}
|
||||
if (HAL_ADC_Start_DMA(&hadc2, (uint32_t *)adc2Result, 2) != HAL_OK)
|
||||
{
|
||||
SIMPLEFOC_DEBUG("DMA2 read init failed");
|
||||
}
|
||||
|
||||
HAL_OPAMP_Start(&hopamp1);
|
||||
HAL_OPAMP_Start(&hopamp2);
|
||||
HAL_OPAMP_Start(&hopamp3);
|
||||
|
||||
Stm32CurrentSenseParams *params = new Stm32CurrentSenseParams{
|
||||
.pins = {pinA, pinB, pinC},
|
||||
.adc_voltage_conv = adcSens,
|
||||
.timer_handle = (HardwareTimer *)(HardwareTimer_Handle[get_timer_index(TIM2)]->__this)};
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
void *_configureADCLowSide(const void *driver_params, const int pinA, const int pinB, const int pinC)
|
||||
{
|
||||
_UNUSED(driver_params);
|
||||
_UNUSED(pinA);
|
||||
_UNUSED(pinB);
|
||||
_UNUSED(pinC);
|
||||
|
||||
SIMPLEFOC_DEBUG("This board does not use lowside sensing. Use inline current sense instead.");
|
||||
return SIMPLEFOC_CURRENT_SENSE_INIT_FAILED;
|
||||
}
|
||||
|
||||
void _driverSyncLowSide(void *_driver_params, void *_cs_params)
|
||||
{
|
||||
STM32DriverParams* driver_params = (STM32DriverParams*)_driver_params;
|
||||
Stm32CurrentSenseParams* cs_params = (Stm32CurrentSenseParams*)_cs_params;
|
||||
|
||||
_stopTimers(driver_params->timers, 6);
|
||||
|
||||
// See RM0440 pg. 1169
|
||||
// This grabs the timer handle used for ADC and sets the direction bit as upcounting (?)
|
||||
cs_params->timer_handle->getHandle()->Instance->CR1 |= TIM_CR1_DIR;
|
||||
|
||||
// This sets the value of the timer to the reload value. I think this is so that an event is immediately fired
|
||||
cs_params->timer_handle->getHandle()->Instance->CNT = cs_params->timer_handle->getHandle()->Instance->ARR;
|
||||
|
||||
_startTimers(driver_params->timers, 6);
|
||||
}
|
||||
|
||||
#endif
|
||||
14
firmware/lib/currentsense/utils.h
Normal file
14
firmware/lib/currentsense/utils.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#ifndef __UTILS_H__
|
||||
#define __UTILS_H__
|
||||
|
||||
#if defined(SIMPLEFOC_STM32_CUSTOMCURRENTSENSE)
|
||||
|
||||
#include "stm32g4xx_hal.h"
|
||||
|
||||
#include "communication/SimpleFOCDebug.h"
|
||||
#include "current_sense/hardware_api.h"
|
||||
#include "current_sense/hardware_specific/stm32/stm32_mcu.h"
|
||||
#include "drivers/hardware_specific/stm32/stm32_mcu.h"
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#include "can.h"
|
||||
#include "dfu.h"
|
||||
#include "utils.h"
|
||||
#include "lemon-pepper.h"
|
||||
|
||||
#define USBD_MANUFACTURER_STRING "matei repair lab"
|
||||
@@ -235,10 +236,10 @@ uint8_t configureFOC(void)
|
||||
motor.linkSensor(&sensor);
|
||||
motor.linkDriver(&driver);
|
||||
|
||||
// currentsense.linkDriver(&driver);
|
||||
// currentsense.init();
|
||||
currentsense.linkDriver(&driver);
|
||||
currentsense.init();
|
||||
|
||||
// motor.linkCurrentSense(¤tsense);
|
||||
motor.linkCurrentSense(¤tsense);
|
||||
|
||||
motor.target = 10;
|
||||
|
||||
|
||||
@@ -712,12 +712,12 @@
|
||||
(property "LCSC Part" "C146412" (at 125.73 87.63 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid d60ea7da-e95d-4c22-ad65-def1505307e0))
|
||||
(pin "1" (uuid d60ea7da-e95d-4c22-ad65-def1505307e0))
|
||||
(pin "1" (uuid d60ea7da-e95d-4c22-ad65-def1505307e1))
|
||||
(pin "1" (uuid d60ea7da-e95d-4c22-ad65-def1505307e1))
|
||||
(pin "11" (uuid e8d3a338-a773-49b8-a716-d1ab18131472))
|
||||
(pin "12" (uuid 8c659ecd-ac7a-4f4a-9995-9dcc08bc6ebc))
|
||||
(pin "2" (uuid e042e7b2-9853-43dd-9d84-0a27309e3481))
|
||||
(pin "2" (uuid e042e7b2-9853-43dd-9d84-0a27309e3481))
|
||||
(pin "2" (uuid e042e7b2-9853-43dd-9d84-0a27309e3482))
|
||||
(pin "2" (uuid e042e7b2-9853-43dd-9d84-0a27309e3482))
|
||||
(pin "6" (uuid 2c89c0c4-ec2f-42de-81b6-e62c8d188968))
|
||||
(pin "10" (uuid 95506ff9-4ec7-44f1-b5f7-87c53697753f))
|
||||
(pin "5" (uuid d5cf600e-4c97-43db-818b-ea3248045403))
|
||||
@@ -776,12 +776,12 @@
|
||||
(property "LCSC Part" "C146412" (at 125.73 158.75 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid f3a4724f-c83e-4357-93f5-de2b64412a11))
|
||||
(pin "1" (uuid f3a4724f-c83e-4357-93f5-de2b64412a11))
|
||||
(pin "1" (uuid f3a4724f-c83e-4357-93f5-de2b64412a12))
|
||||
(pin "1" (uuid f3a4724f-c83e-4357-93f5-de2b64412a12))
|
||||
(pin "11" (uuid 381951b5-9e1d-46d9-9fdd-5023089bf34f))
|
||||
(pin "12" (uuid 4a0f3bdc-1b3f-4b5a-9fdd-ad98ac9347e8))
|
||||
(pin "2" (uuid e061c3c4-4715-4c93-a856-a0881bf59bb2))
|
||||
(pin "2" (uuid e061c3c4-4715-4c93-a856-a0881bf59bb2))
|
||||
(pin "2" (uuid e061c3c4-4715-4c93-a856-a0881bf59bb3))
|
||||
(pin "2" (uuid e061c3c4-4715-4c93-a856-a0881bf59bb3))
|
||||
(pin "6" (uuid c4b7cfc6-3923-4e8e-beab-8edfebf00db1))
|
||||
(pin "10" (uuid 2f7d9d6f-7117-437c-a6f9-ab265c02086b))
|
||||
(pin "5" (uuid 040e7810-ff19-4cb2-8089-e98a109dca74))
|
||||
@@ -940,12 +940,12 @@
|
||||
(property "LCSC Part" "C146412" (at 125.73 123.19 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid ac305c0b-c868-41dc-8758-5dddab10c0b9))
|
||||
(pin "1" (uuid ac305c0b-c868-41dc-8758-5dddab10c0b9))
|
||||
(pin "1" (uuid ac305c0b-c868-41dc-8758-5dddab10c0ba))
|
||||
(pin "1" (uuid ac305c0b-c868-41dc-8758-5dddab10c0ba))
|
||||
(pin "11" (uuid 5f952846-310c-40d4-879c-8b224fb60661))
|
||||
(pin "12" (uuid 9720c386-328c-42a4-97c9-f29be92781fd))
|
||||
(pin "2" (uuid 81d43ea9-5248-42eb-8446-126bd3fa7bca))
|
||||
(pin "2" (uuid 81d43ea9-5248-42eb-8446-126bd3fa7bca))
|
||||
(pin "2" (uuid 81d43ea9-5248-42eb-8446-126bd3fa7bcb))
|
||||
(pin "2" (uuid 81d43ea9-5248-42eb-8446-126bd3fa7bcb))
|
||||
(pin "6" (uuid 15056b44-bd76-49d3-97b1-8f239c766f7b))
|
||||
(pin "10" (uuid 43fa4b5b-1368-473b-a20c-160035bf6d2e))
|
||||
(pin "5" (uuid 9f25a38a-708f-427f-b757-bac5c276de82))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
5096081062838
|
||||
5096081809838
|
||||
mechanical
|
||||
NEMA14
|
||||
Unnamed StepUp generated footprint
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 31,
|
||||
"active_layer": 2,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
|
||||
@@ -1244,7 +1244,6 @@
|
||||
(no_connect (at 76.2 144.78) (uuid 1efbc283-ac46-4f94-842c-84f0d681a5af))
|
||||
(no_connect (at 242.57 74.93) (uuid 23ff3ecd-9cc7-4311-8516-19a2f14b2a0f))
|
||||
(no_connect (at 76.2 147.32) (uuid 2a30723c-e19e-484c-a558-e2518c7fa298))
|
||||
(no_connect (at 76.2 93.98) (uuid 4097a7f5-307f-426d-8b10-93c7363082bb))
|
||||
(no_connect (at 109.22 109.22) (uuid 4aaf6370-e30d-4f53-a93f-809003565bc0))
|
||||
(no_connect (at 109.22 76.2) (uuid 54e7272b-9df3-4bb0-8f21-ec5b918bf196))
|
||||
(no_connect (at 76.2 101.6) (uuid 560db69f-37be-4fd4-92e3-370ff316d6a8))
|
||||
@@ -1286,6 +1285,10 @@
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 07d463d1-e48d-47cf-aace-6ce945412e99)
|
||||
)
|
||||
(wire (pts (xy 66.04 93.98) (xy 76.2 93.98))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 0ae1d920-61dc-47b0-bb3a-01dc30955d27)
|
||||
)
|
||||
(wire (pts (xy 153.67 73.66) (xy 153.67 76.2))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 154ecc67-6e7b-4d37-871d-c21e3e2f2a9c)
|
||||
@@ -1675,6 +1678,11 @@
|
||||
(uuid fdbfadea-83f6-4000-9e96-29a013799f62)
|
||||
)
|
||||
|
||||
(text "really acting as UART3" (at 38.1 93.98 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid f38d1d94-2220-461e-9426-17b708e0e811)
|
||||
)
|
||||
|
||||
(label "ADC1_IN12" (at 151.13 76.2 180) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify right bottom))
|
||||
(uuid 1f5c36e0-60d0-431c-84d6-00b4e0d07644)
|
||||
@@ -1764,6 +1772,10 @@
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 3ec80914-db34-463e-8cd0-4c9fd667f72b)
|
||||
)
|
||||
(hierarchical_label "DIR" (shape input) (at 66.04 93.98 180) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid 40834cf8-b4b2-4e55-83fc-460d5635166e)
|
||||
)
|
||||
(hierarchical_label "USB_N" (shape bidirectional) (at 139.7 99.06 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 411dfb60-e936-441b-b5dc-118a732ffd1c)
|
||||
|
||||
@@ -911,7 +911,7 @@
|
||||
(property "Value" "USB_C_Receptacle_USB2.0" (at 114.3 69.85 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "easyeda2kicad:USB-C-SMD_GT-USB-7052_1" (at 118.11 90.17 0)
|
||||
(property "Footprint" "mechanical:usb_c" (at 118.11 90.17 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "https://www.usb.org/sites/default/files/documents/usb_type-c.zip" (at 118.11 90.17 0)
|
||||
|
||||
Binary file not shown.
BIN
mechanical/usb_c.FCStd1
Normal file
BIN
mechanical/usb_c.FCStd1
Normal file
Binary file not shown.
Reference in New Issue
Block a user