Compare commits

..

27 Commits

Author SHA1 Message Date
janik e31c591f51 Merge branch 'master' of https://git.b4l.co.th/B4L/C64PSU
KiBot PCB Generation / generate (push) Successful in 5m55s
KiBot PCB Generation / deploy (push) Successful in 36s
2025-10-07 17:11:08 +07:00
janik 7ff466fff5 first testing, started the code 2025-10-07 17:10:35 +07:00
grabowski b4788f8e47 enable kicanvas
KiBot PCB Generation / generate (push) Successful in 5m1s
KiBot PCB Generation / deploy (push) Successful in 23s
2025-09-08 17:26:16 +07:00
grabowski ce1350ff37 activate all tasks
KiBot PCB Generation / generate (push) Successful in 4m54s
KiBot PCB Generation / deploy (push) Successful in 22s
2025-09-08 17:02:43 +07:00
grabowski 7c5035d091 Update .gitea/workflows/kibot.yml
KiBot PCB Generation / generate (push) Successful in 4m30s
KiBot PCB Generation / deploy (push) Successful in 17s
2025-09-08 16:51:58 +07:00
grabowski a33729aeed ds dl 2025-09-08 16:48:47 +07:00
grabowski c8e56447bf dl and diff
KiBot PCB Generation / generate (push) Successful in 1m31s
KiBot PCB Generation / deploy (push) Successful in 20s
2025-09-08 16:40:36 +07:00
grabowski 0d57021e08 ''
KiBot PCB Generation / generate (push) Failing after 46s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 16:35:41 +07:00
grabowski 75f74bfe30 changed dl and diff
KiBot PCB Generation / generate (push) Failing after 26s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 16:32:36 +07:00
grabowski 055e9f4792 enable diff,ds_dl,pcb_diff
KiBot PCB Generation / generate (push) Successful in 1m18s
KiBot PCB Generation / deploy (push) Successful in 21s
2025-09-08 16:23:09 +07:00
grabowski 138d54c50d fixed bom, added datasheet dl
KiBot PCB Generation / generate (push) Successful in 1m30s
KiBot PCB Generation / deploy (push) Successful in 21s
2025-09-08 16:15:04 +07:00
grabowski 35fd4da002 fixed DIFF and added BoM
KiBot PCB Generation / generate (push) Failing after 53s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 16:09:28 +07:00
grabowski 142566c8f4 add diff function
KiBot PCB Generation / generate (push) Failing after 1m12s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 16:06:06 +07:00
grabowski 997cc53c40 added jlc zip creation
KiBot PCB Generation / generate (push) Successful in 1m23s
KiBot PCB Generation / deploy (push) Successful in 23s
2025-09-08 15:50:35 +07:00
grabowski c0721926fa position file update
KiBot PCB Generation / generate (push) Successful in 1m19s
KiBot PCB Generation / deploy (push) Successful in 34s
2025-09-08 15:40:12 +07:00
grabowski 2676e888d3 ''
KiBot PCB Generation / generate (push) Failing after 39s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 15:38:11 +07:00
grabowski 96332cdc7c Update .gitea/workflows/kibot.yml
KiBot PCB Generation / generate (push) Failing after 28s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 15:34:54 +07:00
grabowski 5bf4763a75 Update .gitea/workflows/kibot.yml
KiBot PCB Generation / generate (push) Failing after 27s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 15:26:49 +07:00
grabowski c06e81ae0f simplified workflow
KiBot PCB Generation / generate (push) Failing after 28s
KiBot PCB Generation / deploy (push) Has been skipped
2025-09-08 15:21:51 +07:00
grabowski 1eb02a7ffb Update .gitea/workflows/kibot.yml
KiBot PCB Generation with Multi-layer Support / generate (push) Failing after 22s
KiBot PCB Generation with Multi-layer Support / deploy (push) Has been skipped
2025-09-08 15:18:15 +07:00
grabowski 63efbeab00 moved kibot
KiBot PCB Generation with Multi-layer Support / generate (push) Failing after 19s
KiBot PCB Generation with Multi-layer Support / deploy (push) Has been skipped
2025-09-08 15:15:49 +07:00
grabowski 2cb715d2c5 Update .gitea/workflows/kibot.yml
KiBot PCB Generation with Multi-layer Support / generate (push) Failing after 24s
KiBot PCB Generation with Multi-layer Support / deploy (push) Has been skipped
2025-09-08 15:13:53 +07:00
grabowski fbe8a59204 Update .gitea/workflows/kibot.yml
KiBot PCB Generation with Multi-layer Support / generate (push) Failing after 23s
KiBot PCB Generation with Multi-layer Support / deploy (push) Has been skipped
2025-09-08 15:12:12 +07:00
grabowski aba4abc891 Update .gitea/workflows/kibot.yml
KiBot PCB Generation with Multi-layer Support / generate (push) Failing after 33s
KiBot PCB Generation with Multi-layer Support / deploy (push) Has been skipped
2025-09-08 15:09:10 +07:00
grabowski 71bc0683ca 'workflow' 2025-09-08 15:07:38 +07:00
grabowski 7c67fbfaaa '' 2025-09-08 15:04:41 +07:00
grabowski 3701681161 changed workflos
KiBot PCB Generation with Multi-layer Support / generate (push) Failing after 21s
KiBot PCB Generation with Multi-layer Support / deploy (push) Has been skipped
2025-09-08 14:58:48 +07:00
673 changed files with 568803 additions and 486556 deletions
+541
View File
@@ -0,0 +1,541 @@
name: "KiBot PCB Generation"
# Controls when the action will run
on:
push:
paths:
- '**/*.kicad_sch'
- '**/*.kicad_pcb'
- '**/*.kicad_pro'
- 'kibot.yaml'
- '.gitea/workflows/*.yml'
pull_request:
paths:
- '**/*.kicad_sch'
- '**/*.kicad_pcb'
- '**/*.kicad_pro'
- 'kibot.yaml'
- '.gitea/workflows/*.yml'
repository_dispatch:
types: [run_qs]
workflow_dispatch:
inputs:
board_layers:
description: 'Number of PCB layers'
required: false
default: '4'
type: choice
options:
- '2'
- '4'
- '6'
diff_old:
description: 'Old revision for diff (e.g., HEAD~1, commit hash, tag)'
required: false
default: 'HEAD~1'
type: string
diff_new:
description: 'New revision for diff (e.g., HEAD, commit hash, tag)'
required: false
default: 'HEAD'
type: string
enable_interactive_diff:
description: 'Generate interactive HTML diff'
required: false
default: false
type: boolean
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
generate:
runs-on: kicad-kibot-runner
steps:
- uses: actions/checkout@v3
with:
# Fetch full history for diff generation
fetch-depth: '0'
- name: Find KiCad project
id: find_project
run: |
# Find all .kicad_pcb files in the repository
PCB_FILES=$(find . -name "*.kicad_pcb" -type f | grep -v -E '/(backups?|backup|old|archive|deprecated)/' | head -5)
if [ -z "$PCB_FILES" ]; then
echo "Error: No KiCad PCB files found"
exit 1
fi
# Use the first PCB file found
PCB_FILE=$(echo "$PCB_FILES" | head -1)
PROJECT_DIR=$(dirname "$PCB_FILE")
PROJECT_NAME=$(basename "$PCB_FILE" .kicad_pcb)
echo "Found KiCad project: $PROJECT_NAME"
echo "Project directory: $PROJECT_DIR"
echo "PCB file: $PCB_FILE"
# Find schematic file
SCH_FILE=$(find "$PROJECT_DIR" -name "*.kicad_sch" -o -name "*.sch" | head -1)
echo "pcb_file=$PCB_FILE" >> $GITHUB_OUTPUT
echo "project_dir=$PROJECT_DIR" >> $GITHUB_OUTPUT
echo "project_name=$PROJECT_NAME" >> $GITHUB_OUTPUT
echo "sch_file=$SCH_FILE" >> $GITHUB_OUTPUT
# List all found projects for debugging
echo "All PCB files found:"
echo "$PCB_FILES"
- name: Set layer count
id: layers
run: |
# Use workflow input or default to 4 layers
LAYERS="${{ github.event.inputs.board_layers }}"
if [ -z "$LAYERS" ]; then
LAYERS="4"
fi
echo "layers=$LAYERS" >> $GITHUB_OUTPUT
echo "Using $LAYERS layer configuration"
- name: Check for KiBot config
id: config_check
run: |
# Check if kibot.yaml exists in repository root
if [ -f "kibot.yaml" ]; then
echo "found=true" >> $GITHUB_OUTPUT
echo "Using kibot.yaml configuration from repository root"
else
echo "found=false" >> $GITHUB_OUTPUT
echo "No kibot.yaml found in repository root - will use --quick-start mode"
fi
- name: Generate schematic diff
id: generate_diff
if: github.event_name == 'push' || github.event_name == 'pull_request'
run: |
PROJECT_DIR="${{ steps.find_project.outputs.project_dir }}"
PROJECT_NAME="${{ steps.find_project.outputs.project_name }}"
# Create DIFF output directory
mkdir -p "${GITHUB_WORKSPACE}/Generated/DIFF"
cd "$PROJECT_DIR"
# Get the previous commit hash
if [ "${{ github.event_name }}" = "pull_request" ]; then
BASE_SHA="${{ github.event.pull_request.base.sha }}"
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
else
# For push events, compare with previous commit
HEAD_SHA="${{ github.sha }}"
BASE_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "")
fi
if [ -z "$BASE_SHA" ]; then
echo "No previous commit found for comparison"
echo "has_diff=false" >> $GITHUB_OUTPUT
exit 0
fi
echo "Comparing commits: $BASE_SHA...$HEAD_SHA"
# Find all schematic files
SCH_FILES=$(find . -name "*.kicad_sch" -o -name "*.sch" | head -10)
if [ -z "$SCH_FILES" ]; then
echo "No schematic files found"
echo "has_diff=false" >> $GITHUB_OUTPUT
exit 0
fi
# Generate diff for each schematic
DIFF_GENERATED=false
for SCH_FILE in $SCH_FILES; do
SCH_NAME=$(basename "$SCH_FILE" | sed 's/\.[^.]*$//')
# Check if file changed between commits
if git diff --name-only "$BASE_SHA" "$HEAD_SHA" | grep -q "$SCH_FILE"; then
echo "Generating diff for $SCH_FILE"
# Create temp directory for processing
TEMP_DIR=$(mktemp -d)
# Export old version
git show "$BASE_SHA:$SCH_FILE" > "$TEMP_DIR/${SCH_NAME}_old.kicad_sch" 2>/dev/null || continue
# Copy current version
cp "$SCH_FILE" "$TEMP_DIR/${SCH_NAME}_new.kicad_sch"
# Try to use kidiff if available (better visual diff tool for KiCad)
if command -v kidiff &> /dev/null; then
kidiff -o "${GITHUB_WORKSPACE}/Generated/DIFF/${SCH_NAME}_diff.pdf" \
"$TEMP_DIR/${SCH_NAME}_old.kicad_sch" \
"$TEMP_DIR/${SCH_NAME}_new.kicad_sch" || true
fi
# Also generate text diff
git diff "$BASE_SHA" "$HEAD_SHA" -- "$SCH_FILE" > "${GITHUB_WORKSPACE}/Generated/DIFF/${SCH_NAME}_changes.txt"
# Generate a simple HTML diff for easy viewing
cat > "${GITHUB_WORKSPACE}/Generated/DIFF/${SCH_NAME}_diff.html" << EOF
<!DOCTYPE html>
<html>
<head>
<title>Schematic Diff: ${SCH_NAME}</title>
<style>
body { font-family: monospace; margin: 20px; }
.added { background-color: #90EE90; }
.removed { background-color: #FFB6C1; }
.header { font-weight: bold; margin: 20px 0; }
pre { background: #f4f4f4; padding: 10px; overflow-x: auto; }
</style>
</head>
<body>
<h1>Schematic Changes: ${SCH_NAME}</h1>
<div class="header">Commit: ${BASE_SHA:0:8} → ${HEAD_SHA:0:8}</div>
<pre>
EOF
# Add the diff content with HTML escaping
git diff "$BASE_SHA" "$HEAD_SHA" -- "$SCH_FILE" | \
sed 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g' | \
sed 's/^+[^+].*/<span class="added">&<\/span>/g' | \
sed 's/^-[^-].*/<span class="removed">&<\/span>/g' >> "${GITHUB_WORKSPACE}/Generated/DIFF/${SCH_NAME}_diff.html"
echo "</pre></body></html>" >> "${GITHUB_WORKSPACE}/Generated/DIFF/${SCH_NAME}_diff.html"
rm -rf "$TEMP_DIR"
DIFF_GENERATED=true
fi
done
# Generate PCB diff if PCB file changed
PCB_FILE="${{ steps.find_project.outputs.pcb_file }}"
if git diff --name-only "$BASE_SHA" "$HEAD_SHA" | grep -q "$PCB_FILE"; then
echo "Generating PCB diff"
PCB_NAME=$(basename "$PCB_FILE" | sed 's/\.[^.]*$//')
# Generate text diff for PCB
git diff "$BASE_SHA" "$HEAD_SHA" -- "$PCB_FILE" > "${GITHUB_WORKSPACE}/Generated/DIFF/${PCB_NAME}_pcb_changes.txt"
# Summary of changes
git diff --stat "$BASE_SHA" "$HEAD_SHA" -- "$PCB_FILE" > "${GITHUB_WORKSPACE}/Generated/DIFF/${PCB_NAME}_pcb_summary.txt"
DIFF_GENERATED=true
fi
# Create a summary file
cat > "${GITHUB_WORKSPACE}/Generated/DIFF/README.md" << EOF
# KiCad Project Diff Report
**Base Commit:** ${BASE_SHA:0:8}
**Head Commit:** ${HEAD_SHA:0:8}
**Date:** $(date)
## Changed Files:
$(git diff --name-status "$BASE_SHA" "$HEAD_SHA" -- "*.kicad_sch" "*.sch" "*.kicad_pcb" "*.pcb")
## Summary:
$(git diff --stat "$BASE_SHA" "$HEAD_SHA" -- "*.kicad_sch" "*.sch" "*.kicad_pcb" "*.pcb")
## Commit Messages:
$(git log --oneline "$BASE_SHA".."$HEAD_SHA")
EOF
if [ "$DIFF_GENERATED" = true ]; then
echo "has_diff=true" >> $GITHUB_OUTPUT
else
echo "No schematic or PCB changes detected"
echo "has_diff=false" >> $GITHUB_OUTPUT
fi
- name: Run ERC
if: steps.config_check.outputs.found == 'true'
run: |
cd "${{ steps.find_project.outputs.project_dir }}"
# Clean up any existing output directories
rm -rf Fabrication Generated Output
if [ -n "${{ steps.find_project.outputs.sch_file }}" ]; then
echo "Running ERC on schematic files..."
# Use absolute path to config file in repo root
# Skip ERC step in preflight to avoid stopping on errors
kibot -c "${GITHUB_WORKSPACE}/kibot.yaml" -s run_erc,run_drc -v || true
else
echo "No schematic files found, skipping ERC"
fi
continue-on-error: true
- name: Run DRC
if: steps.config_check.outputs.found == 'true'
run: |
cd "${{ steps.find_project.outputs.project_dir }}"
echo "Running DRC on PCB..."
# Use absolute path to config file in repo root
# Skip both ERC and DRC in preflight to avoid stopping on errors
kibot -c "${GITHUB_WORKSPACE}/kibot.yaml" -s run_erc,run_drc -v || true
continue-on-error: true
- name: Generate outputs with custom config
if: steps.config_check.outputs.found == 'true'
run: |
cd "${{ steps.find_project.outputs.project_dir }}"
echo "Generating outputs for ${{ steps.layers.outputs.layers }} layer board"
echo "Project: ${{ steps.find_project.outputs.project_name }}"
echo "Using config: ${GITHUB_WORKSPACE}/kibot.yaml"
# First, let's check what's in the current directory
echo "Current directory contents:"
ls -la
# Check if Fabrication exists and what it is
if [ -e "Fabrication" ]; then
echo "Fabrication exists as:"
file Fabrication
echo "Removing it..."
rm -rf Fabrication
fi
# Create a temporary modified config without the global output setting
cp "${GITHUB_WORKSPACE}/kibot.yaml" /tmp/kibot_temp.yaml
# Remove or comment out the global output line if it exists
sed -i 's/^ output:.*$/ # output: commented out for workflow/' /tmp/kibot_temp.yaml
# Update diff revisions if specified
if [ -n "${{ github.event.inputs.diff_old }}" ]; then
sed -i "s/old: 'HEAD~1'/old: '${{ github.event.inputs.diff_old }}'/" /tmp/kibot_temp.yaml
fi
if [ -n "${{ github.event.inputs.diff_new }}" ]; then
sed -i "s/new: 'HEAD'/new: '${{ github.event.inputs.diff_new }}'/" /tmp/kibot_temp.yaml
fi
# Use a timestamp-based directory to ensure uniqueness
OUTPUT_DIR="kibot_output_$(date +%s)"
# Determine which outputs to run
EXTRA_OUTPUTS=""
if [ "${{ github.event.inputs.enable_interactive_diff }}" = "true" ]; then
EXTRA_OUTPUTS="interactive_diff svg_diff"
fi
# Run KiBot with the modified configuration
# Skip ERC/DRC preflight checks to avoid stopping on errors
echo "Running KiBot with output directory: $OUTPUT_DIR"
# Run all outputs (KiBot will run all by default when no specific outputs are listed)
# Only add extra outputs if interactive diff is enabled
if [ "${{ github.event.inputs.enable_interactive_diff }}" = "true" ]; then
# Run with interactive diff outputs explicitly enabled
kibot -c /tmp/kibot_temp.yaml -s run_erc,run_drc -d "$OUTPUT_DIR" -v interactive_diff svg_diff
else
# Run all default outputs (everything with run_by_default: true)
kibot -c /tmp/kibot_temp.yaml -s run_erc,run_drc -d "$OUTPUT_DIR" -v
fi
# Move outputs to root Generated folder
mkdir -p "${GITHUB_WORKSPACE}/Generated"
if [ -d "$OUTPUT_DIR" ]; then
echo "Copying outputs from $OUTPUT_DIR to Generated/"
cp -r "$OUTPUT_DIR"/* "${GITHUB_WORKSPACE}/Generated/"
rm -rf "$OUTPUT_DIR"
elif [ -d "Fabrication" ]; then
echo "KiBot used default Fabrication directory, copying from there"
cp -r Fabrication/* "${GITHUB_WORKSPACE}/Generated/"
rm -rf Fabrication
else
echo "Warning: No output directory was created"
fi
- name: Check downloaded datasheets
if: steps.config_check.outputs.found == 'true'
continue-on-error: true
run: |
echo "Checking for downloaded datasheets..."
# KiBot should download datasheets to the configured directory
# Check if datasheets were downloaded
if [ -d "${GITHUB_WORKSPACE}/Generated/Datasheets" ]; then
echo "Datasheets folder found in Generated/"
# Create README
cat > "${GITHUB_WORKSPACE}/Generated/Datasheets/README.md" << EOF
# Component Datasheets
This folder contains downloaded datasheets for all components in the project.
Organized by component type:
- **ICs/** - Integrated circuits (U references)
- **Capacitors/** - Capacitors (C references)
- **Resistors/** - Resistors (R references)
- **Transistors/** - Transistors (Q references)
- **Diodes/** - Diodes (D references)
- **Connectors/** - Connectors (J, P references)
- **Inductors/** - Inductors (L references)
- And more...
Files are named: REFERENCE_VALUE.pdf (e.g., U1_LM7805.pdf)
Generated on: $(date)
Project: ${{ steps.find_project.outputs.project_name }}
EOF
echo "Datasheet folder structure:"
find "${GITHUB_WORKSPACE}/Generated/Datasheets" -type f -name "*.pdf" | head -20
# Count PDFs
PDF_COUNT=$(find "${GITHUB_WORKSPACE}/Generated/Datasheets" -type f -name "*.pdf" | wc -l)
echo "Total PDFs downloaded: $PDF_COUNT"
else
echo "No Datasheets folder found - KiBot may not have downloaded any datasheets"
echo "Check that components have valid Datasheet URLs in the schematic"
fi
- name: Quick Start fallback
if: steps.config_check.outputs.found == 'false'
run: |
cd "${{ steps.find_project.outputs.project_dir }}"
echo "Running KiBot in quick-start mode"
kibot --quick-start
# Move outputs to root Generated folder
mkdir -p "${GITHUB_WORKSPACE}/Generated"
if [ -d "Generated" ]; then
cp -r Generated/* "${GITHUB_WORKSPACE}/Generated/"
fi
- name: Add board information to outputs
run: |
echo "Board configuration: ${{ steps.layers.outputs.layers }} layers" > Generated/board_info.txt
echo "Project: ${{ steps.find_project.outputs.project_name }}" >> Generated/board_info.txt
echo "Project path: ${{ steps.find_project.outputs.project_dir }}" >> Generated/board_info.txt
echo "Generated on: $(date)" >> Generated/board_info.txt
echo "Commit: ${{ github.sha }}" >> Generated/board_info.txt
- name: Fix file permissions
run: |
chmod -R a+rw Generated || true
- name: Retrieve results - All outputs
uses: actions/upload-artifact@v3
with:
name: Automatic_outputs
path: Generated
- name: Retrieve results - Gerbers
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: Gerbers-${{ steps.layers.outputs.layers }}layer
path: Generated/Gerbers
- name: Retrieve results - Assembly
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: Assembly-${{ steps.layers.outputs.layers }}layer
path: Generated/Assembly
- name: Retrieve results - BOM
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: BOM-${{ steps.layers.outputs.layers }}layer
path: Generated/BoM
- name: Retrieve results - Datasheets
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: Datasheets
path: Generated/Datasheets
- name: Retrieve results - 3D Model
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: 3D-Model
path: Generated/3D
- name: Retrieve results - Fabrication Package
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: Fabrication-Package-${{ steps.layers.outputs.layers }}layer
path: Generated/*.zip
- name: Retrieve results - JLCPCB Package
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: JLCPCB-${{ steps.layers.outputs.layers }}layer
path: Generated/*_JLCPCB_compress.zip
- name: Retrieve results - Interactive Viewers
if: steps.config_check.outputs.found == 'true'
uses: actions/upload-artifact@v3
with:
name: Interactive-Viewers
path: Generated/Interactive
- name: Retrieve results - Diff Report
if: steps.generate_diff.outputs.has_diff == 'true'
uses: actions/upload-artifact@v3
with:
name: Schematic-PCB-Diff
path: Generated/DIFF
# Deploy to documentation branch
deploy:
runs-on: kicad-kibot-runner
needs: generate
steps:
- uses: actions/checkout@v4
- name: Retrieve results
uses: actions/download-artifact@v3
with:
name: Automatic_outputs
path: Generated
- name: Disable Jekyll
# Jekyll will filter the KiRi folders
run: |
touch Generated/.nojekyll
- name: Push to docu branch
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
# Set up git identity
git config --global user.email "${{ gitea.actor }}@noreply.localhost"
git config --global user.name "${{ gitea.actor }}"
# Get the repository URL and add authentication
REPO_URL=$(git config --get remote.origin.url)
AUTHED_URL=${REPO_URL/https:\/\//https:\/\/${GITEA_TOKEN}@}
# Clone the docu branch into a separate folder
git clone --depth 1 --branch docu "$AUTHED_URL" docu-branch || \
git clone --depth 1 "$AUTHED_URL" docu-branch
cd docu-branch
git checkout -B docu
# Clean old contents and copy new files
rm -rf ./*
cp -r ../Generated/* ./
# Commit and push if there are changes
git add .
if ! git diff --cached --quiet; then
git commit -m "chore: update deployed documentation"
git push --force "$AUTHED_URL" docu
else
echo "No changes to deploy"
fi
-90
View File
@@ -1,90 +0,0 @@
name: "Variants demo using --quick-start"
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
paths:
- 'kicad/c64psu/*.kicad_sch'
- 'kicad/c64psu/*.kicad_pcb'
- '.gitea/workflows/kibot_quick_start.yml'
pull_request:
paths:
- 'kicad/c64psu/*.kicad_sch'
- 'kicad/c64psu/*.kicad_pcb'
- '.gitea/workflows/kibot_quick_start.yml'
repository_dispatch:
types: [run_qs]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
quick-start:
runs-on: kicad-kibot-runner
steps:
- uses: actions/checkout@v3
with:
# So we can run a diff between last 2 changes
fetch-depth: '0'
- name: Quick Start
run: |
kibot --quick-start
- name: Retrieve results
uses: actions/upload-artifact@v3
with:
name: Automatic_outputs
path: Generated
# This step is to upload the results to another repo (web pages)
deploy:
runs-on: kicad-kibot-runner
needs: quick-start
steps:
- uses: actions/checkout@v4
- name: Retrieve results
uses: actions/download-artifact@v3
with:
name: Automatic_outputs
path: Generated
- name: Disable Jekyll
# Jekyll will filter the KiRi folders
run: |
touch Generated/.nojekyll
- name: Push to docu branch
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
# Set up git identity
git config --global user.email "${{ gitea.actor }}@noreply.localhost"
git config --global user.name "${{ gitea.actor }}"
# Get the repository URL and add authentication
REPO_URL=$(git config --get remote.origin.url)
AUTHED_URL=${REPO_URL/https:\/\//https:\/\/${GITEA_TOKEN}@}
# Clone the docu branch into a separate folder
git clone --depth 1 --branch docu "$AUTHED_URL" docu-branch || \
git clone --depth 1 "$AUTHED_URL" docu-branch
cd docu-branch
git checkout -B docu
# Clean old contents and copy new files
rm -rf ./*
cp -r ../Generated/* ./
# Commit and push if there are changes
git add .
if ! git diff --cached --quiet; then
git commit -m "chore: update deployed documentation"
git push --force "$AUTHED_URL" docu
else
echo "No changes to deploy"
fi
-92902
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
-26
View File
@@ -1,26 +0,0 @@
Ref,Val,Package,PosX,PosY,Rot,Side
"C2","10uF","C_0402_1005Metric",157.7620,-62.6872,180.0000,bottom
"C12","10uF","C_1210_3225Metric",160.4772,-81.2292,0.0000,bottom
"C13","10uF","C_1210_3225Metric",160.4772,-78.0288,0.0000,bottom
"C17","10uF","C_1210_3225Metric",160.2232,-91.2876,180.0000,bottom
"C21","10uF","C_0402_1005Metric",189.3316,-82.0192,-90.0000,bottom
"C22","100nF","C_0402_1005Metric",190.3476,-81.7880,90.0000,bottom
"C23","10uF","C_1206_3216Metric",199.8200,-48.6700,-90.0000,bottom
"C24","100nF","C_0402_1005Metric",157.7340,-63.6524,0.0000,bottom
"C25","10uF","C_1206_3216Metric",172.7217,-83.8137,-90.0000,bottom
"C42","100nF 50V","C_0402_1005Metric",201.5744,-48.6664,-90.0000,bottom
"C43","10uF","C_1206_3216Metric",175.2537,-83.7622,-90.0000,bottom
"C44","10uF","C_1210_3225Metric",160.1724,-94.6912,180.0000,bottom
"D2","SMAJ15CA","D_SMA",196.6468,-48.7868,90.0000,bottom
"JP3","Jumper_2_Open","PinHeader_1x02_P2.54mm_Vertical",215.4428,-65.4862,0.0000,bottom
"JP4","Jumper_2_Open","PinHeader_1x02_P2.54mm_Vertical",210.1088,-65.5370,0.0000,bottom
"R2","20k","R_0603_1608Metric",198.3740,-41.5036,-45.0000,bottom
"R22","4k7","R_0603_1608Metric",193.9036,-83.0072,90.0000,bottom
"R24","4k7","R_0603_1608Metric",193.9036,-86.0552,-90.0000,bottom
"R25","470","R_0603_1608Metric",196.1896,-83.7692,0.0000,bottom
"R26","205","R_0603_1608Metric",196.9516,-81.4710,90.0000,bottom
"R27","470","R_0603_1608Metric",191.0588,-87.0204,180.0000,bottom
"R28","20k","R_0603_1608Metric",198.6788,-54.4576,-135.0000,bottom
"U1","INA180A2","SOT-23-5",158.3436,-60.1472,-90.0000,bottom
"U3","LM321","SOT-23-5",190.9064,-84.5312,180.0000,bottom
"U7","LM4041CIM3X-1.2/NOPB","SOT-23",199.6948,-83.0213,0.0000,bottom
1 Ref Val Package PosX PosY Rot Side
2 C2 10uF C_0402_1005Metric 157.7620 -62.6872 180.0000 bottom
3 C12 10uF C_1210_3225Metric 160.4772 -81.2292 0.0000 bottom
4 C13 10uF C_1210_3225Metric 160.4772 -78.0288 0.0000 bottom
5 C17 10uF C_1210_3225Metric 160.2232 -91.2876 180.0000 bottom
6 C21 10uF C_0402_1005Metric 189.3316 -82.0192 -90.0000 bottom
7 C22 100nF C_0402_1005Metric 190.3476 -81.7880 90.0000 bottom
8 C23 10uF C_1206_3216Metric 199.8200 -48.6700 -90.0000 bottom
9 C24 100nF C_0402_1005Metric 157.7340 -63.6524 0.0000 bottom
10 C25 10uF C_1206_3216Metric 172.7217 -83.8137 -90.0000 bottom
11 C42 100nF 50V C_0402_1005Metric 201.5744 -48.6664 -90.0000 bottom
12 C43 10uF C_1206_3216Metric 175.2537 -83.7622 -90.0000 bottom
13 C44 10uF C_1210_3225Metric 160.1724 -94.6912 180.0000 bottom
14 D2 SMAJ15CA D_SMA 196.6468 -48.7868 90.0000 bottom
15 JP3 Jumper_2_Open PinHeader_1x02_P2.54mm_Vertical 215.4428 -65.4862 0.0000 bottom
16 JP4 Jumper_2_Open PinHeader_1x02_P2.54mm_Vertical 210.1088 -65.5370 0.0000 bottom
17 R2 20k R_0603_1608Metric 198.3740 -41.5036 -45.0000 bottom
18 R22 4k7 R_0603_1608Metric 193.9036 -83.0072 90.0000 bottom
19 R24 4k7 R_0603_1608Metric 193.9036 -86.0552 -90.0000 bottom
20 R25 470 R_0603_1608Metric 196.1896 -83.7692 0.0000 bottom
21 R26 205 R_0603_1608Metric 196.9516 -81.4710 90.0000 bottom
22 R27 470 R_0603_1608Metric 191.0588 -87.0204 180.0000 bottom
23 R28 20k R_0603_1608Metric 198.6788 -54.4576 -135.0000 bottom
24 U1 INA180A2 SOT-23-5 158.3436 -60.1472 -90.0000 bottom
25 U3 LM321 SOT-23-5 190.9064 -84.5312 180.0000 bottom
26 U7 LM4041CIM3X-1.2/NOPB SOT-23 199.6948 -83.0213 0.0000 bottom
-94
View File
@@ -1,94 +0,0 @@
Ref,Val,Package,PosX,PosY,Rot,Side
"C1","10uF","C_1210_3225Metric",144.3500,-56.3900,-90.0000,top
"C3","10uF","C_1210_3225Metric",157.6832,-49.8348,180.0000,top
"C4","10uF","C_0805_2012Metric",176.3268,-54.1020,0.0000,top
"C5","10uF","C_0805_2012Metric",175.7172,-42.7888,90.0000,top
"C6","10uF","C_0805_2012Metric",177.8508,-42.7736,90.0000,top
"C7","10uF","C_0805_2012Metric",179.9336,-42.7736,90.0000,top
"C8","10uF","C_1210_3225Metric",166.0652,-59.0296,90.0000,top
"C9","100nF","C_0402_1005Metric",168.5200,-51.8000,0.0000,top
"C10","10uF","C_1210_3225Metric",157.6943,-53.0753,0.0000,top
"C11","100nF","C_0402_1005Metric",169.1211,-57.7368,180.0000,top
"C14","10uF","C_1210_3225Metric",166.6240,-63.0936,180.0000,top
"C15","10uF","C_1210_3225Metric",166.6240,-66.3448,180.0000,top
"C16","10uF","C_1210_3225Metric",166.6240,-69.6468,0.0000,top
"C18","10uF","C_1210_3225Metric",154.8892,-71.8820,180.0000,top
"C19","10uF","C_1206_3216Metric",175.4124,-83.6864,-90.0000,top
"C20","1uF","C_0402_1005Metric",147.1398,-98.0270,180.0000,top
"C26","10uF","C_1210_3225Metric",154.8892,-62.0776,180.0000,top
"C27","1uF","C_0402_1005Metric",159.0268,-81.4832,0.0000,top
"C28","1uF","C_0402_1005Metric",158.7500,-94.6404,0.0000,top
"C29","1uF","C_0402_1005Metric",163.0680,-77.6732,90.0000,top
"C30","1uF","C_0402_1005Metric",163.0172,-90.9828,90.0000,top
"C31","10uF","C_1210_3225Metric",154.8892,-68.6308,0.0000,top
"C32","100nF 50V","C_0402_1005Metric",158.7500,-93.6752,0.0000,top
"C33","10uF","C_1210_3225Metric",154.8910,-65.3288,180.0000,top
"C34","100nF 50V","C_0402_1005Metric",163.9824,-90.9828,-90.0000,top
"C35","100nF","C_0402_1005Metric",152.1169,-74.8833,90.0000,top
"C36","1uF","C_0402_1005Metric",147.1346,-97.0618,180.0000,top
"C37","10uF","C_0805_2012Metric",182.0164,-42.7736,90.0000,top
"C38","10uF","C_0805_2012Metric",176.3268,-52.0700,0.0000,top
"C39","10uF","C_0805_2012Metric",172.7279,-52.1487,180.0000,top
"C40","100nF 50V","C_0402_1005Metric",164.0332,-77.6732,-90.0000,top
"C41","100nF 50V","C_0402_1005Metric",159.0040,-80.5180,0.0000,top
"C46","10uF","C_0402_1005Metric",150.6945,-80.3977,180.0000,top
"C47","100nF","C_0402_1005Metric",143.7082,-85.7334,0.0000,top
"C48","10uF","C_0402_1005Metric",149.0422,-98.0270,0.0000,top
"C49","100nF","C_0402_1005Metric",149.0422,-97.0618,180.0000,top
"C59","100nF","C_0402_1005Metric",151.1250,-95.7410,0.0000,top
"C60","100nF","C_0402_1005Metric",151.6838,-87.2574,90.0000,top
"C61","100nF","C_0402_1005Metric",141.3206,-88.1210,90.0000,top
"C62","100nF","C_0402_1005Metric",150.0849,-74.8605,90.0000,top
"C63","100nF","C_0402_1005Metric",152.5461,-81.3629,0.0000,top
"C94","16pF","C_0402_1005Metric",139.8982,-93.4042,45.0000,top
"C97","16pF","C_0402_1005Metric",138.3742,-89.3402,45.0000,top
"C104","1uF","C_0402_1005Metric",145.8075,-64.6568,180.0000,top
"C142","10uF","C_0402_1005Metric",152.5233,-80.3977,0.0000,top
"D1","LED","LED_0603_1608Metric",145.8900,-59.5100,0.0000,top
"D3","SMAJ15A","D_SMA",145.5311,-49.2531,0.0000,top
"D4","SMAJ18CA","D_SMA",172.4660,-83.7184,90.0000,top
"D27","SD103AWS","D_SOD-323",148.7882,-100.4654,180.0000,top
"IC1","AP33771CFBZ-13","SON40P300X300X80-15N-D",146.8175,-62.2368,180.0000,top
"IC2","TPP363082-T6TR","SOT95P280X95-6N",168.6131,-54.2824,0.0000,top
"J1","GSB1C4621DS1HR","AMPHENOL_GSB1C4621DS1HR",134.8500,-53.7750,-90.0000,top
"J2","DIN-7","CUI_SDS-70J",210.9800,-48.4400,90.0000,top
"J3","Conn_ST_STDC14","PinHeader_2x07_P1.27mm_Vertical_SMD",140.8634,-76.8942,-90.0000,top
"JP1","Jumper_2_Open","PinHeader_1x02_P2.54mm_Vertical",170.8354,-69.3928,90.0000,top
"JP2","Jumper_2_Open","PinHeader_1x02_P2.54mm_Vertical",171.1402,-100.7872,90.0000,top
"JP5","Jumper_2_Open","PinHeader_1x02_P2.54mm_Vertical",170.7846,-65.6844,90.0000,top
"JP6","Jumper_2_Open","PinHeader_1x02_P2.54mm_Vertical",171.1402,-97.0788,90.0000,top
"L1","15uH","CSBX1060",169.0195,-45.5448,90.0000,top
"MOSFET1","SQJ560EP-T1_GE3","POWERPAK_SO-8L_DUAL_VIS",167.9321,-77.2650,-90.0000,top
"MOSFET2","SQJ560EP-T1_GE3","POWERPAK_SO-8L_DUAL_VIS",167.8686,-90.5492,-90.0000,top
"Q1","DI025N06PT-AQ","TRANS_DI025N06PT-AQ",154.7100,-57.7498,180.0000,top
"Q5","DI025N06PT-AQ","TRANS_DI025N06PT-AQ",152.8651,-53.6728,0.0000,top
"R1","5m","R_0603_1608Metric",146.8707,-53.3171,0.0000,top
"R3","10","R_0402_1005Metric",151.5951,-57.7387,-90.0000,top
"R4","1k","R_0603_1608Metric",148.2475,-58.6668,90.0000,top
"R5","52k 1%","R_0603_1608Metric",139.3523,-61.0388,180.0000,top
"R6","52k 1%","R_0603_1608Metric",139.3473,-62.5487,180.0000,top
"R7","100","R_0603_1608Metric",150.9250,-64.2500,180.0000,top
"R8","510k","R_0603_1608Metric",169.2778,-59.5376,0.0000,top
"R9","~","R_0402_1005Metric",169.1211,-56.6699,0.0000,top
"R10","4.7","R_0402_1005Metric",163.4744,-89.5604,0.0000,top
"R11","4.7","R_0402_1005Metric",163.4744,-92.8624,0.0000,top
"R12","4.7","R_0402_1005Metric",163.5252,-76.2508,0.0000,top
"R13","4.7","R_0402_1005Metric",163.5252,-79.6036,0.0000,top
"R14","5.1k","R_0603_1608Metric",139.3444,-64.1096,180.0000,top
"R15","5.1k","R_0603_1608Metric",139.3322,-65.6844,180.0000,top
"R16","10","R_0402_1005Metric",142.9512,-84.7344,180.0000,top
"R19","5.1k","R_0603_1608Metric",157.4292,-86.2584,90.0000,top
"R20","5.1k","R_0603_1608Metric",155.9052,-86.2584,90.0000,top
"R21","5m","R_0805_2012Metric",160.8328,-60.0964,-90.0000,top
"R23","200m","R_0402_1005Metric",149.0422,-98.9922,180.0000,top
"R29","10.2k","R_0402_1005Metric",171.5595,-54.2843,-90.0000,top
"R30","1.37k","R_0402_1005Metric",171.5595,-56.2127,-90.0000,top
"R31","5.1k","R_0603_1608Metric",160.2740,-73.0504,90.0000,top
"R32","5.1k","R_0603_1608Metric",158.6992,-73.0626,90.0000,top
"R71","27k","R_0402_1005Metric",147.1626,-98.9922,180.0000,top
"T1","Transformer_1P_1S","9VAC_TRANSF",198.3700,-84.1100,0.0000,top
"U2","STM32G474CBTx","LQFP-48_7x7mm_P0.5mm",147.0102,-91.3722,0.0000,top
"U4","FAN3278","SOIC-8_3.9x4.9mm_P1.27mm",158.7642,-90.5002,0.0000,top
"U5","FAN3278","SOIC-8_3.9x4.9mm_P1.27mm",158.8008,-77.3176,0.0000,top
"U8","TLV75733PDBVR","SOT-23-5",151.0642,-77.8577,-90.0000,top
"Y2","40MHz 10pF","Crystal_SMD_2520-4Pin_2.5x2.0mm",139.3902,-91.1182,45.0000,top
1 Ref Val Package PosX PosY Rot Side
2 C1 10uF C_1210_3225Metric 144.3500 -56.3900 -90.0000 top
3 C3 10uF C_1210_3225Metric 157.6832 -49.8348 180.0000 top
4 C4 10uF C_0805_2012Metric 176.3268 -54.1020 0.0000 top
5 C5 10uF C_0805_2012Metric 175.7172 -42.7888 90.0000 top
6 C6 10uF C_0805_2012Metric 177.8508 -42.7736 90.0000 top
7 C7 10uF C_0805_2012Metric 179.9336 -42.7736 90.0000 top
8 C8 10uF C_1210_3225Metric 166.0652 -59.0296 90.0000 top
9 C9 100nF C_0402_1005Metric 168.5200 -51.8000 0.0000 top
10 C10 10uF C_1210_3225Metric 157.6943 -53.0753 0.0000 top
11 C11 100nF C_0402_1005Metric 169.1211 -57.7368 180.0000 top
12 C14 10uF C_1210_3225Metric 166.6240 -63.0936 180.0000 top
13 C15 10uF C_1210_3225Metric 166.6240 -66.3448 180.0000 top
14 C16 10uF C_1210_3225Metric 166.6240 -69.6468 0.0000 top
15 C18 10uF C_1210_3225Metric 154.8892 -71.8820 180.0000 top
16 C19 10uF C_1206_3216Metric 175.4124 -83.6864 -90.0000 top
17 C20 1uF C_0402_1005Metric 147.1398 -98.0270 180.0000 top
18 C26 10uF C_1210_3225Metric 154.8892 -62.0776 180.0000 top
19 C27 1uF C_0402_1005Metric 159.0268 -81.4832 0.0000 top
20 C28 1uF C_0402_1005Metric 158.7500 -94.6404 0.0000 top
21 C29 1uF C_0402_1005Metric 163.0680 -77.6732 90.0000 top
22 C30 1uF C_0402_1005Metric 163.0172 -90.9828 90.0000 top
23 C31 10uF C_1210_3225Metric 154.8892 -68.6308 0.0000 top
24 C32 100nF 50V C_0402_1005Metric 158.7500 -93.6752 0.0000 top
25 C33 10uF C_1210_3225Metric 154.8910 -65.3288 180.0000 top
26 C34 100nF 50V C_0402_1005Metric 163.9824 -90.9828 -90.0000 top
27 C35 100nF C_0402_1005Metric 152.1169 -74.8833 90.0000 top
28 C36 1uF C_0402_1005Metric 147.1346 -97.0618 180.0000 top
29 C37 10uF C_0805_2012Metric 182.0164 -42.7736 90.0000 top
30 C38 10uF C_0805_2012Metric 176.3268 -52.0700 0.0000 top
31 C39 10uF C_0805_2012Metric 172.7279 -52.1487 180.0000 top
32 C40 100nF 50V C_0402_1005Metric 164.0332 -77.6732 -90.0000 top
33 C41 100nF 50V C_0402_1005Metric 159.0040 -80.5180 0.0000 top
34 C46 10uF C_0402_1005Metric 150.6945 -80.3977 180.0000 top
35 C47 100nF C_0402_1005Metric 143.7082 -85.7334 0.0000 top
36 C48 10uF C_0402_1005Metric 149.0422 -98.0270 0.0000 top
37 C49 100nF C_0402_1005Metric 149.0422 -97.0618 180.0000 top
38 C59 100nF C_0402_1005Metric 151.1250 -95.7410 0.0000 top
39 C60 100nF C_0402_1005Metric 151.6838 -87.2574 90.0000 top
40 C61 100nF C_0402_1005Metric 141.3206 -88.1210 90.0000 top
41 C62 100nF C_0402_1005Metric 150.0849 -74.8605 90.0000 top
42 C63 100nF C_0402_1005Metric 152.5461 -81.3629 0.0000 top
43 C94 16pF C_0402_1005Metric 139.8982 -93.4042 45.0000 top
44 C97 16pF C_0402_1005Metric 138.3742 -89.3402 45.0000 top
45 C104 1uF C_0402_1005Metric 145.8075 -64.6568 180.0000 top
46 C142 10uF C_0402_1005Metric 152.5233 -80.3977 0.0000 top
47 D1 LED LED_0603_1608Metric 145.8900 -59.5100 0.0000 top
48 D3 SMAJ15A D_SMA 145.5311 -49.2531 0.0000 top
49 D4 SMAJ18CA D_SMA 172.4660 -83.7184 90.0000 top
50 D27 SD103AWS D_SOD-323 148.7882 -100.4654 180.0000 top
51 IC1 AP33771CFBZ-13 SON40P300X300X80-15N-D 146.8175 -62.2368 180.0000 top
52 IC2 TPP363082-T6TR SOT95P280X95-6N 168.6131 -54.2824 0.0000 top
53 J1 GSB1C4621DS1HR AMPHENOL_GSB1C4621DS1HR 134.8500 -53.7750 -90.0000 top
54 J2 DIN-7 CUI_SDS-70J 210.9800 -48.4400 90.0000 top
55 J3 Conn_ST_STDC14 PinHeader_2x07_P1.27mm_Vertical_SMD 140.8634 -76.8942 -90.0000 top
56 JP1 Jumper_2_Open PinHeader_1x02_P2.54mm_Vertical 170.8354 -69.3928 90.0000 top
57 JP2 Jumper_2_Open PinHeader_1x02_P2.54mm_Vertical 171.1402 -100.7872 90.0000 top
58 JP5 Jumper_2_Open PinHeader_1x02_P2.54mm_Vertical 170.7846 -65.6844 90.0000 top
59 JP6 Jumper_2_Open PinHeader_1x02_P2.54mm_Vertical 171.1402 -97.0788 90.0000 top
60 L1 15uH CSBX1060 169.0195 -45.5448 90.0000 top
61 MOSFET1 SQJ560EP-T1_GE3 POWERPAK_SO-8L_DUAL_VIS 167.9321 -77.2650 -90.0000 top
62 MOSFET2 SQJ560EP-T1_GE3 POWERPAK_SO-8L_DUAL_VIS 167.8686 -90.5492 -90.0000 top
63 Q1 DI025N06PT-AQ TRANS_DI025N06PT-AQ 154.7100 -57.7498 180.0000 top
64 Q5 DI025N06PT-AQ TRANS_DI025N06PT-AQ 152.8651 -53.6728 0.0000 top
65 R1 5m R_0603_1608Metric 146.8707 -53.3171 0.0000 top
66 R3 10 R_0402_1005Metric 151.5951 -57.7387 -90.0000 top
67 R4 1k R_0603_1608Metric 148.2475 -58.6668 90.0000 top
68 R5 52k 1% R_0603_1608Metric 139.3523 -61.0388 180.0000 top
69 R6 52k 1% R_0603_1608Metric 139.3473 -62.5487 180.0000 top
70 R7 100 R_0603_1608Metric 150.9250 -64.2500 180.0000 top
71 R8 510k R_0603_1608Metric 169.2778 -59.5376 0.0000 top
72 R9 ~ R_0402_1005Metric 169.1211 -56.6699 0.0000 top
73 R10 4.7 R_0402_1005Metric 163.4744 -89.5604 0.0000 top
74 R11 4.7 R_0402_1005Metric 163.4744 -92.8624 0.0000 top
75 R12 4.7 R_0402_1005Metric 163.5252 -76.2508 0.0000 top
76 R13 4.7 R_0402_1005Metric 163.5252 -79.6036 0.0000 top
77 R14 5.1k R_0603_1608Metric 139.3444 -64.1096 180.0000 top
78 R15 5.1k R_0603_1608Metric 139.3322 -65.6844 180.0000 top
79 R16 10 R_0402_1005Metric 142.9512 -84.7344 180.0000 top
80 R19 5.1k R_0603_1608Metric 157.4292 -86.2584 90.0000 top
81 R20 5.1k R_0603_1608Metric 155.9052 -86.2584 90.0000 top
82 R21 5m R_0805_2012Metric 160.8328 -60.0964 -90.0000 top
83 R23 200m R_0402_1005Metric 149.0422 -98.9922 180.0000 top
84 R29 10.2k R_0402_1005Metric 171.5595 -54.2843 -90.0000 top
85 R30 1.37k R_0402_1005Metric 171.5595 -56.2127 -90.0000 top
86 R31 5.1k R_0603_1608Metric 160.2740 -73.0504 90.0000 top
87 R32 5.1k R_0603_1608Metric 158.6992 -73.0626 90.0000 top
88 R71 27k R_0402_1005Metric 147.1626 -98.9922 180.0000 top
89 T1 Transformer_1P_1S 9VAC_TRANSF 198.3700 -84.1100 0.0000 top
90 U2 STM32G474CBTx LQFP-48_7x7mm_P0.5mm 147.0102 -91.3722 0.0000 top
91 U4 FAN3278 SOIC-8_3.9x4.9mm_P1.27mm 158.7642 -90.5002 0.0000 top
92 U5 FAN3278 SOIC-8_3.9x4.9mm_P1.27mm 158.8008 -77.3176 0.0000 top
93 U8 TLV75733PDBVR SOT-23-5 151.0642 -77.8577 -90.0000 top
94 Y2 40MHz 10pF Crystal_SMD_2520-4Pin_2.5x2.0mm 139.3902 -91.1182 45.0000 top
-65
View File
@@ -1,65 +0,0 @@
Reference,Value,Qty,Package,Description,Manufacturer,Part Number,LCSC Part,Digikey Part,Mouser Part
"C94,C97",16pF,2,C_0402_1005Metric,Unpolarized capacitor,,CC0402FRNPO9BN160,,,
"C9,C11,C22,C24,C32,C34,C35,C40,C41,C42,C47,C49,C59,C60,C61,C62,C63",100nF,17,C_0402_1005Metric,Unpolarized capacitor,,CC0402KRX5R9BB104 GRM155R61H104ME14,,,
"C20,C27,C28,C29,C30,C36,C104",1uF,7,C_0402_1005Metric,Unpolarized capacitor,,CC0402KRX5R6BB105 CC0402KPX5R8BB105,,,
"C1,C3,C8,C10,C12,C13,C14,C15,C16,C17,C18,C26,C31,C33,C44",10uF,15,C_1210_3225Metric,Unpolarized capacitor,,UMK325BJ106KM-P,,,
"C2,C21,C46,C48,C142",10uF,5,C_0402_1005Metric,Unpolarized capacitor,,CC0402MPX5R5BB106,,,
"C4,C5,C6,C7,C37,C38,C39",10uF,7,C_0805_2012Metric,Unpolarized capacitor,,GRM21BR61C106KE15K,,,
D1,LED,1,LED_0603_1608Metric,Light emitting diode,,IN-S63AT5B,,,
D27,SD103AWS,1,D_SOD-323,Schottky diode,,SD103AWS,,,
D3,SMAJ15A,1,D_SMA,"400W unidirectional Transient Voltage Suppressor, 15.0Vr, SMA(DO-214AC)",,SMAJ15A,,,
D2,SMAJ15CA,1,D_SMA,"400W bidirectional Transient Voltage Suppressor, 15.0Vr, SMA(DO-214AC)",,SMAJ15CA,,,
D4,SMAJ18CA,1,D_SMA,,,SMAJ18CA,,,
IC1,AP33771CFBZ-13,1,SON40P300X300X80-15N-D,USB Interface IC USB Ext Power Range W-DFN3030-14 T&R 3K,,AP33771CFBZ-13,,,
IC2,TPP363082-T6TR,1,SOT95P280X95-6N,Step-Down DC-DC Voltage Converter IC TSOT23-6,,TPP363082-T6TR,,,
J3,Conn_ST_STDC14,1,PinHeader_2x07_P1.27mm_Vertical_SMD,"ST Debug Connector, standard ARM Cortex-M SWD and JTAG interface plus UART",,3221-14-0300-00,,,
J2,DIN-7,1,CUI_SDS-70J,7-pin DIN connector,,SDS-70J,,,
J1,GSB1C4621DS1HR,1,AMPHENOL_GSB1C4621DS1HR,"USB-C (USB TYPE-C) USB 2.0 Receptacle Connector 24 (16+8 Dummy) Position Surface Mount, Right Angle",Amphenol,GSB1C4621DS1HR,,,
"JP1,JP2,JP3,JP4,JP5,JP6",Jumper_2_Open,6,PinHeader_1x02_P2.54mm_Vertical,"Jumper, 2-pole, open",,JL-100-25-T,,,
L1,15uH,1,CSBX1060,Inductor,,CSBX1060-150M,,,
"MOSFET1,MOSFET2",SQJ560EP-T1_GE3,2,POWERPAK_SO-8L_DUAL_VIS,,,SQJ560EP-T1_GE3,,,
"Q1,Q5",DI025N06PT-AQ,2,TRANS_DI025N06PT-AQ,,Diotec Semiconductor,DI025N06PT-AQ,,,
R1,5m,1,R_0603_1608Metric,Resistor,,PE0603FRF570R005L,,,
R21,5m,1,R_0805_2012Metric,Resistor,,PA0805FRF470R005L,,,
R23,200m,1,R_0402_1005Metric,Resistor,,PT0402FR-7W0R2L,,,
"R10,R11,R12,R13",4.7,4,R_0402_1005Metric,Resistor,,RT0402BRE074R7L,,,
"R3,R16",10,2,R_0402_1005Metric,Resistor,,RT0402FRE0710RL,,,
R7,100,1,R_0603_1608Metric,Resistor,,RC0603FR-13100RL,,,
R26,205,1,R_0603_1608Metric,Resistor,,RT0603BRD07205RL,,,
"R25,R27",470,2,R_0603_1608Metric,Resistor,,RT0603BRD07470RL,,,
R4,1k,1,R_0603_1608Metric,Resistor,,RC0603JR-131KL,,,
R30,1.37k,1,R_0402_1005Metric,Resistor,,RT0402DRE071K37L,,,
"R22,R24",4k7,2,R_0603_1608Metric,Resistor,,RT0603BRD074K7L,,,
"R14,R15,R19,R20,R31,R32",5.1k,6,R_0603_1608Metric,Resistor,,RC0603FR-075K1L,,,
R29,10.2k,1,R_0402_1005Metric,Resistor,,RT0402DRD0710K2L,,,
"R2,R28,R47",20k,3,R_0603_1608Metric,Resistor,,RC0603FR-1320KL,,,
R71,27k,1,R_0402_1005Metric,Resistor,,RC0402JR-0727KL,,,
"R5,R6",52k 1%,2,R_0603_1608Metric,Resistor,,RT0603BRD0752K3L,,,
"R43,R46",100k,2,R_0603_1608Metric,Resistor,,,,,
R45,180k,1,R_0603_1608Metric,Resistor,,,,,
R44,200k,1,R_0603_1608Metric,Resistor,,,,,
R8,510k,1,R_0603_1608Metric,Resistor,,RC0603FR-07510KL,,,
"U4,U5",FAN3278,2,SOIC-8_3.9x4.9mm_P1.27mm,"8-27V PMOS-NMOS Bridge Driver, SOIC-8",,FAN3278T,,,
U1,INA180A2,1,SOT-23-5,"Current Sense Amplifier, 1 Circuit, Rail-to-Rail, 26V, Gain 50 V/V, SOT-23-5",,INA180A2IDBVR,,,
U3,LM321,1,SOT-23-5,"Low Power Single Operational Amplifier, SOT-23-5",,LM321AW-S5TR,,,
U7,LM4041CIM3X-1.2/NOPB,1,SOT-23,"2.048V Precision Micropower Shunt Voltage Reference, SOT-23",,LM4041CIM3X-1.2/NOPB,,,
U2,STM32G474CBTx,1,LQFP-48_7x7mm_P0.5mm,"STMicroelectronics Arm Cortex-M4 MCU, 128KB flash, 128KB RAM, 170 MHz, 1.71-3.6V, 38 GPIO, LQFP48",,STM32G474CBT6,,,
U8,TLV75733PDBVR,1,SOT-23-5,"200mA Low Dropout Voltage Regulator, Fixed Output 1.2V, SOT-23-5",,TLV75733PDBVR,,,
Y2,40MHz 10pF,1,Crystal_SMD_2520-4Pin_2.5x2.0mm,"Four pin crystal, GND on pins 2 and 4",,ECS-400-10-36B2-CKM-TR,,,
Project info:
Schematic:,c64psu
Variant:,default
Revision:,
Date:,2025-12-16_10-23-18
KiCad Version:,9.0.1+1
Statistics:
Component Groups:,51
Component Count:,133
Fitted Components:,117
Number of PCBs:,1
Total Components:,117
1 Reference Value Qty Package Description Manufacturer Part Number LCSC Part Digikey Part Mouser Part
2 C94,C97 16pF 2 C_0402_1005Metric Unpolarized capacitor CC0402FRNPO9BN160
3 C9,C11,C22,C24,C32,C34,C35,C40,C41,C42,C47,C49,C59,C60,C61,C62,C63 100nF 17 C_0402_1005Metric Unpolarized capacitor CC0402KRX5R9BB104 GRM155R61H104ME14
4 C20,C27,C28,C29,C30,C36,C104 1uF 7 C_0402_1005Metric Unpolarized capacitor CC0402KRX5R6BB105 CC0402KPX5R8BB105
5 C1,C3,C8,C10,C12,C13,C14,C15,C16,C17,C18,C26,C31,C33,C44 10uF 15 C_1210_3225Metric Unpolarized capacitor UMK325BJ106KM-P
6 C2,C21,C46,C48,C142 10uF 5 C_0402_1005Metric Unpolarized capacitor CC0402MPX5R5BB106
7 C4,C5,C6,C7,C37,C38,C39 10uF 7 C_0805_2012Metric Unpolarized capacitor GRM21BR61C106KE15K
8 D1 LED 1 LED_0603_1608Metric Light emitting diode IN-S63AT5B
9 D27 SD103AWS 1 D_SOD-323 Schottky diode SD103AWS
10 D3 SMAJ15A 1 D_SMA 400W unidirectional Transient Voltage Suppressor, 15.0Vr, SMA(DO-214AC) SMAJ15A
11 D2 SMAJ15CA 1 D_SMA 400W bidirectional Transient Voltage Suppressor, 15.0Vr, SMA(DO-214AC) SMAJ15CA
12 D4 SMAJ18CA 1 D_SMA SMAJ18CA
13 IC1 AP33771CFBZ-13 1 SON40P300X300X80-15N-D USB Interface IC USB Ext Power Range W-DFN3030-14 T&R 3K AP33771CFBZ-13
14 IC2 TPP363082-T6TR 1 SOT95P280X95-6N Step-Down DC-DC Voltage Converter IC TSOT23-6 TPP363082-T6TR
15 J3 Conn_ST_STDC14 1 PinHeader_2x07_P1.27mm_Vertical_SMD ST Debug Connector, standard ARM Cortex-M SWD and JTAG interface plus UART 3221-14-0300-00
16 J2 DIN-7 1 CUI_SDS-70J 7-pin DIN connector SDS-70J
17 J1 GSB1C4621DS1HR 1 AMPHENOL_GSB1C4621DS1HR USB-C (USB TYPE-C) USB 2.0 Receptacle Connector 24 (16+8 Dummy) Position Surface Mount, Right Angle Amphenol GSB1C4621DS1HR
18 JP1,JP2,JP3,JP4,JP5,JP6 Jumper_2_Open 6 PinHeader_1x02_P2.54mm_Vertical Jumper, 2-pole, open JL-100-25-T
19 L1 15uH 1 CSBX1060 Inductor CSBX1060-150M
20 MOSFET1,MOSFET2 SQJ560EP-T1_GE3 2 POWERPAK_SO-8L_DUAL_VIS SQJ560EP-T1_GE3
21 Q1,Q5 DI025N06PT-AQ 2 TRANS_DI025N06PT-AQ Diotec Semiconductor DI025N06PT-AQ
22 R1 5m 1 R_0603_1608Metric Resistor PE0603FRF570R005L
23 R21 5m 1 R_0805_2012Metric Resistor PA0805FRF470R005L
24 R23 200m 1 R_0402_1005Metric Resistor PT0402FR-7W0R2L
25 R10,R11,R12,R13 4.7 4 R_0402_1005Metric Resistor RT0402BRE074R7L
26 R3,R16 10 2 R_0402_1005Metric Resistor RT0402FRE0710RL
27 R7 100 1 R_0603_1608Metric Resistor RC0603FR-13100RL
28 R26 205 1 R_0603_1608Metric Resistor RT0603BRD07205RL
29 R25,R27 470 2 R_0603_1608Metric Resistor RT0603BRD07470RL
30 R4 1k 1 R_0603_1608Metric Resistor RC0603JR-131KL
31 R30 1.37k 1 R_0402_1005Metric Resistor RT0402DRE071K37L
32 R22,R24 4k7 2 R_0603_1608Metric Resistor RT0603BRD074K7L
33 R14,R15,R19,R20,R31,R32 5.1k 6 R_0603_1608Metric Resistor RC0603FR-075K1L
34 R29 10.2k 1 R_0402_1005Metric Resistor RT0402DRD0710K2L
35 R2,R28,R47 20k 3 R_0603_1608Metric Resistor RC0603FR-1320KL
36 R71 27k 1 R_0402_1005Metric Resistor RC0402JR-0727KL
37 R5,R6 52k 1% 2 R_0603_1608Metric Resistor RT0603BRD0752K3L
38 R43,R46 100k 2 R_0603_1608Metric Resistor
39 R45 180k 1 R_0603_1608Metric Resistor
40 R44 200k 1 R_0603_1608Metric Resistor
41 R8 510k 1 R_0603_1608Metric Resistor RC0603FR-07510KL
42 U4,U5 FAN3278 2 SOIC-8_3.9x4.9mm_P1.27mm 8-27V PMOS-NMOS Bridge Driver, SOIC-8 FAN3278T
43 U1 INA180A2 1 SOT-23-5 Current Sense Amplifier, 1 Circuit, Rail-to-Rail, 26V, Gain 50 V/V, SOT-23-5 INA180A2IDBVR
44 U3 LM321 1 SOT-23-5 Low Power Single Operational Amplifier, SOT-23-5 LM321AW-S5TR
45 U7 LM4041CIM3X-1.2/NOPB 1 SOT-23 2.048V Precision Micropower Shunt Voltage Reference, SOT-23 LM4041CIM3X-1.2/NOPB
46 U2 STM32G474CBTx 1 LQFP-48_7x7mm_P0.5mm STMicroelectronics Arm Cortex-M4 MCU, 128KB flash, 128KB RAM, 170 MHz, 1.71-3.6V, 38 GPIO, LQFP48 STM32G474CBT6
47 U8 TLV75733PDBVR 1 SOT-23-5 200mA Low Dropout Voltage Regulator, Fixed Output 1.2V, SOT-23-5 TLV75733PDBVR
48 Y2 40MHz 10pF 1 Crystal_SMD_2520-4Pin_2.5x2.0mm Four pin crystal, GND on pins 2 and 4 ECS-400-10-36B2-CKM-TR
49 Project info:
50 Schematic: c64psu
51 Variant: default
52 Revision:
53 Date: 2025-12-16_10-23-18
54 KiCad Version: 9.0.1+1
55 Statistics:
56 Component Groups: 51
57 Component Count: 133
58 Fitted Components: 117
59 Number of PCBs: 1
60 Total Components: 117
-872
View File
@@ -1,872 +0,0 @@
<html>
<head>
<meta charset="UTF-8">
<title>Bill of Materials - c64psu</title>
<style>
.cell-title { vertical-align: bottom; }
.cell-info { vertical-align: top; padding: 1em;}
.cell-extra-info { vertical-align: top; padding: 1em;}
.cell-stats { vertical-align: top; padding: 1em;}
.title { font-size:2.5em; font-weight: bold; }
.subtitle { font-size:1.5em; font-weight: bold; }
.h2 { font-size:1.5em; font-weight: bold; }
.td-empty0 { text-align: center; background-color: #F57676;}
.td-gen0 { text-align: center; background-color: #DCF5E4;}
.td-kicad0 { text-align: center; background-color: #F5DCA9;}
.td-user0 { text-align: center; background-color: #DCEFF5;}
.td-empty1 { text-align: center; background-color: #FF8080;}
.td-gen1 { text-align: center; background-color: #E6FFEE;}
.td-kicad1 { text-align: center; background-color: #FFE6B3;}
.td-user1 { text-align: center; background-color: #E6F9FF;}
.td-nocolor { text-align: center; }
.color-ref { margin: 25px 0; }
.color-ref th { text-align: left }
.color-ref td { padding: 5px 20px; }
.head-table { margin-bottom: 2em; }
.centered-checkmark { font-size: 30vw; text-align: center; color: green; }
.tg-sort-header::-moz-selection{background:0 0}
.tg-sort-header::selection{background:0 0}.tg-sort-header{cursor:pointer}
.tg-sort-header:after{content:'';float:right;border-width:0 5px 5px;border-style:solid;
border-color:#ffffff transparent;visibility:hidden;opacity:.6}
.tg-sort-header:hover:after{visibility:visible}
.tg-sort-asc:after,.tg-sort-asc:hover:after,.tg-sort-desc:after{visibility:visible;opacity:1}
.tg-sort-desc:after{border-bottom:none;border-width:5px 5px 0}
.content-table {
border-collapse:
collapse;
margin-top: 5px;
margin-bottom: 4em;
font-size: 0.9em;
font-family: sans-serif;
min-width: 400px;
border-radius: 5px 5px 0 0;
overflow: hidden;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}
.content-table thead tr { background-color: #0e4e8e; color: #ffffff; text-align: left; }
.content-table th, .content-table td { padding: 12px 15px; }
.content-table tbody tr { border-bottom: 1px solid #dddddd; }
.content-table tbody tr:nth-of-type(even) { background-color: #f3f3f3; }
.content-table tbody tr:last-of-type { border-bottom: 2px solid #0e4e8e; }
.content-table * tr:hover > td { background-color: @bgl@ !important }
.content-table {
border-collapse:
collapse;
margin-top: 5px;
margin-bottom: 4em;
font-size: 0.9em;
font-family: sans-serif;
min-width: 400px;
border-radius: 5px 5px 0 0;
overflow: hidden;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}
.content-table thead tr { background-color: @bg@; color: #ffffff; text-align: left; }
.content-table th, .content-table td { padding: 12px 15px; }
.content-table tbody tr { border-bottom: 1px solid #dddddd; }
.content-table tbody tr:nth-of-type(even) { background-color: #f3f3f3; }
.content-table tbody tr:last-of-type { border-bottom: 2px solid @bg@; }
.content-table * tr:hover > td { background-color: #3e7ebe !important }
</style>
</head>
<body>
<table class="head-table">
<tr>
<td rowspan="2">
</td>
<td colspan="2" class="cell-title">
<div class="title">Bill of Materials - c64psu</div>
</td>
</tr>
<tr>
<td class="cell-info">
<b>Schematic</b>: c64psu<br>
<b>Variant</b>: default<br>
<b>Revision</b>: <br>
<b>Date</b>: 2025-12-16_10-23-18<br>
<b>KiCad Version</b>: 9.0.1+1<br>
</td>
<td class="cell-stats">
<b>Component Groups</b>: 51<br>
<b>Component Count</b>: 133 (per PCB)<br>
<b>Fitted Components</b>: 117 (per PCB)<br>
<b>Number of PCBs</b>: 1<br>
<b>Total Components</b>: 117 (for 1 PCBs)<br>
</td>
</tr>
</table>
<h2>Component Groups</h2>
<table class="content-table">
<thead>
<tr>
<th class="th-kicad">Reference</th>
<th class="th-kicad">Value</th>
<th class="th-gen">Qty</th>
<th class="th-kicad">Package</th>
<th class="th-user">Description</th>
<th class="th-user">Manufacturer</th>
<th class="th-user">Part Number</th>
<th class="th-user">LCSC Part</th>
<th class="th-user">Digikey Part</th>
<th class="th-user">Mouser Part</th>
</tr>
</thead>
<tbody>
<tr id="0">
<td class="td-kicad0"><div id="C97"></div><div id="C94"></div>C94 C97</td>
<td class="td-kicad0">16pF</td>
<td class="td-gen0">2</td>
<td class="td-kicad0">C_0402_1005Metric</td>
<td class="td-user0">Unpolarized capacitor</td>
<td class="td-empty0"></td>
<td class="td-user0">CC0402FRNPO9BN160</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="1">
<td class="td-kicad1"><div id="C63"></div><div id="C62"></div><div id="C61"></div><div id="C60"></div><div id="C59"></div><div id="C49"></div><div id="C47"></div><div id="C42"></div><div id="C41"></div><div id="C40"></div><div id="C35"></div><div id="C34"></div><div id="C32"></div><div id="C24"></div><div id="C22"></div><div id="C11"></div><div id="C9"></div>C9 C11 C22 C24 C32 C34 C35 C40 C41 C42 C47 C49 C59 C60 C61 C62 C63</td>
<td class="td-kicad1">100nF</td>
<td class="td-gen1">17</td>
<td class="td-kicad1">C_0402_1005Metric</td>
<td class="td-user1">Unpolarized capacitor</td>
<td class="td-empty1"></td>
<td class="td-user1">CC0402KRX5R9BB104 GRM155R61H104ME14</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="2">
<td class="td-kicad0"><div id="C104"></div><div id="C36"></div><div id="C30"></div><div id="C29"></div><div id="C28"></div><div id="C27"></div><div id="C20"></div>C20 C27 C28 C29 C30 C36 C104</td>
<td class="td-kicad0">1uF</td>
<td class="td-gen0">7</td>
<td class="td-kicad0">C_0402_1005Metric</td>
<td class="td-user0">Unpolarized capacitor</td>
<td class="td-empty0"></td>
<td class="td-user0">CC0402KRX5R6BB105 CC0402KPX5R8BB105</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="3">
<td class="td-kicad1"><div id="C44"></div><div id="C33"></div><div id="C31"></div><div id="C26"></div><div id="C18"></div><div id="C17"></div><div id="C16"></div><div id="C15"></div><div id="C14"></div><div id="C13"></div><div id="C12"></div><div id="C10"></div><div id="C8"></div><div id="C3"></div><div id="C1"></div>C1 C3 C8 C10 C12 C13 C14 C15 C16 C17 C18 C26 C31 C33 C44</td>
<td class="td-kicad1">10uF</td>
<td class="td-gen1">15</td>
<td class="td-kicad1">C_1210_3225Metric</td>
<td class="td-user1">Unpolarized capacitor</td>
<td class="td-empty1"></td>
<td class="td-user1">UMK325BJ106KM-P</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="4">
<td class="td-kicad0"><div id="C142"></div><div id="C48"></div><div id="C46"></div><div id="C21"></div><div id="C2"></div>C2 C21 C46 C48 C142</td>
<td class="td-kicad0">10uF</td>
<td class="td-gen0">5</td>
<td class="td-kicad0">C_0402_1005Metric</td>
<td class="td-user0">Unpolarized capacitor</td>
<td class="td-empty0"></td>
<td class="td-user0">CC0402MPX5R5BB106</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="6">
<td class="td-kicad1"><div id="C39"></div><div id="C38"></div><div id="C37"></div><div id="C7"></div><div id="C6"></div><div id="C5"></div><div id="C4"></div>C4 C5 C6 C7 C37 C38 C39</td>
<td class="td-kicad1">10uF</td>
<td class="td-gen1">7</td>
<td class="td-kicad1">C_0805_2012Metric</td>
<td class="td-user1">Unpolarized capacitor</td>
<td class="td-empty1"></td>
<td class="td-user1">GRM21BR61C106KE15K</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="7">
<td class="td-kicad0"><div id="D1"></div>D1</td>
<td class="td-kicad0">LED</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">LED_0603_1608Metric</td>
<td class="td-user0">Light emitting diode</td>
<td class="td-empty0"></td>
<td class="td-user0">IN-S63AT5B</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="8">
<td class="td-kicad1"><div id="D27"></div>D27</td>
<td class="td-kicad1">SD103AWS</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">D_SOD-323</td>
<td class="td-user1">Schottky diode</td>
<td class="td-empty1"></td>
<td class="td-user1">SD103AWS</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="9">
<td class="td-kicad0"><div id="D3"></div>D3</td>
<td class="td-kicad0">SMAJ15A</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">D_SMA</td>
<td class="td-user0">400W unidirectional Transient Voltage Suppressor, 15.0Vr, SMA(DO-214AC)</td>
<td class="td-empty0"></td>
<td class="td-user0">SMAJ15A</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="10">
<td class="td-kicad1"><div id="D2"></div>D2</td>
<td class="td-kicad1">SMAJ15CA</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">D_SMA</td>
<td class="td-user1">400W bidirectional Transient Voltage Suppressor, 15.0Vr, SMA(DO-214AC)</td>
<td class="td-empty1"></td>
<td class="td-user1">SMAJ15CA</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="11">
<td class="td-kicad0"><div id="D4"></div>D4</td>
<td class="td-kicad0">SMAJ18CA</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">D_SMA</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-user0">SMAJ18CA</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="12">
<td class="td-kicad1"><div id="IC1"></div>IC1</td>
<td class="td-kicad1">AP33771CFBZ-13</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">SON40P300X300X80-15N-D</td>
<td class="td-user1">USB Interface IC USB Ext Power Range W-DFN3030-14 T&R 3K</td>
<td class="td-empty1"></td>
<td class="td-user1">AP33771CFBZ-13</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="13">
<td class="td-kicad0"><div id="IC2"></div>IC2</td>
<td class="td-kicad0">TPP363082-T6TR</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">SOT95P280X95-6N</td>
<td class="td-user0">Step-Down DC-DC Voltage Converter IC TSOT23-6</td>
<td class="td-empty0"></td>
<td class="td-user0">TPP363082-T6TR</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="14">
<td class="td-kicad1"><div id="J3"></div>J3</td>
<td class="td-kicad1">Conn_ST_STDC14</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">PinHeader_2x07_P1.27mm_Vertical_SMD</td>
<td class="td-user1">ST Debug Connector, standard ARM Cortex-M SWD and JTAG interface plus UART</td>
<td class="td-empty1"></td>
<td class="td-user1">3221-14-0300-00</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="15">
<td class="td-kicad0"><div id="J2"></div>J2</td>
<td class="td-kicad0">DIN-7</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">CUI_SDS-70J</td>
<td class="td-user0">7-pin DIN connector</td>
<td class="td-empty0"></td>
<td class="td-user0">SDS-70J</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="16">
<td class="td-kicad1"><div id="J1"></div>J1</td>
<td class="td-kicad1">GSB1C4621DS1HR</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">AMPHENOL_GSB1C4621DS1HR</td>
<td class="td-user1">USB-C (USB TYPE-C) USB 2.0 Receptacle Connector 24 (16+8 Dummy) Position Surface Mount, Right Angle</td>
<td class="td-user1">Amphenol</td>
<td class="td-user1">GSB1C4621DS1HR</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="17">
<td class="td-kicad0"><div id="JP6"></div><div id="JP5"></div><div id="JP4"></div><div id="JP3"></div><div id="JP2"></div><div id="JP1"></div>JP1 JP2 JP3 JP4 JP5 JP6</td>
<td class="td-kicad0">Jumper_2_Open</td>
<td class="td-gen0">6</td>
<td class="td-kicad0">PinHeader_1x02_P2.54mm_Vertical</td>
<td class="td-user0">Jumper, 2-pole, open</td>
<td class="td-empty0"></td>
<td class="td-user0">JL-100-25-T</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="18">
<td class="td-kicad1"><div id="L1"></div>L1</td>
<td class="td-kicad1">15uH</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">CSBX1060</td>
<td class="td-user1">Inductor</td>
<td class="td-empty1"></td>
<td class="td-user1">CSBX1060-150M</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="19">
<td class="td-kicad0"><div id="MOSFET2"></div><div id="MOSFET1"></div>MOSFET1 MOSFET2</td>
<td class="td-kicad0">SQJ560EP-T1_GE3</td>
<td class="td-gen0">2</td>
<td class="td-kicad0">POWERPAK_SO-8L_DUAL_VIS</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-user0">SQJ560EP-T1_GE3</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="20">
<td class="td-kicad1"><div id="Q5"></div><div id="Q1"></div>Q1 Q5</td>
<td class="td-kicad1">DI025N06PT-AQ</td>
<td class="td-gen1">2</td>
<td class="td-kicad1">TRANS_DI025N06PT-AQ</td>
<td class="td-empty1"></td>
<td class="td-user1">Diotec Semiconductor</td>
<td class="td-user1">DI025N06PT-AQ</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="21">
<td class="td-kicad0"><div id="R1"></div>R1</td>
<td class="td-kicad0">5m</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0603_1608Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">PE0603FRF570R005L</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="22">
<td class="td-kicad1"><div id="R21"></div>R21</td>
<td class="td-kicad1">5m</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">R_0805_2012Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">PA0805FRF470R005L</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="23">
<td class="td-kicad0"><div id="R23"></div>R23</td>
<td class="td-kicad0">200m</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0402_1005Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">PT0402FR-7W0R2L</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="27">
<td class="td-kicad1"><div id="R13"></div><div id="R12"></div><div id="R11"></div><div id="R10"></div>R10 R11 R12 R13</td>
<td class="td-kicad1">4.7</td>
<td class="td-gen1">4</td>
<td class="td-kicad1">R_0402_1005Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RT0402BRE074R7L</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="28">
<td class="td-kicad0"><div id="R16"></div><div id="R3"></div>R3 R16</td>
<td class="td-kicad0">10</td>
<td class="td-gen0">2</td>
<td class="td-kicad0">R_0402_1005Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RT0402FRE0710RL</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="29">
<td class="td-kicad1"><div id="R7"></div>R7</td>
<td class="td-kicad1">100</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RC0603FR-13100RL</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="30">
<td class="td-kicad0"><div id="R26"></div>R26</td>
<td class="td-kicad0">205</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0603_1608Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RT0603BRD07205RL</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="31">
<td class="td-kicad1"><div id="R27"></div><div id="R25"></div>R25 R27</td>
<td class="td-kicad1">470</td>
<td class="td-gen1">2</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RT0603BRD07470RL</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="32">
<td class="td-kicad0"><div id="R4"></div>R4</td>
<td class="td-kicad0">1k</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0603_1608Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RC0603JR-131KL</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="33">
<td class="td-kicad1"><div id="R30"></div>R30</td>
<td class="td-kicad1">1.37k</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">R_0402_1005Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RT0402DRE071K37L</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="34">
<td class="td-kicad0"><div id="R24"></div><div id="R22"></div>R22 R24</td>
<td class="td-kicad0">4k7</td>
<td class="td-gen0">2</td>
<td class="td-kicad0">R_0603_1608Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RT0603BRD074K7L</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="35">
<td class="td-kicad1"><div id="R32"></div><div id="R31"></div><div id="R20"></div><div id="R19"></div><div id="R15"></div><div id="R14"></div>R14 R15 R19 R20 R31 R32</td>
<td class="td-kicad1">5.1k</td>
<td class="td-gen1">6</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RC0603FR-075K1L</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="36">
<td class="td-kicad0"><div id="R29"></div>R29</td>
<td class="td-kicad0">10.2k</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0402_1005Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RT0402DRD0710K2L</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="37">
<td class="td-kicad1"><div id="R47"></div><div id="R28"></div><div id="R2"></div>R2 R28 R47</td>
<td class="td-kicad1">20k</td>
<td class="td-gen1">3</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RC0603FR-1320KL</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="38">
<td class="td-kicad0"><div id="R71"></div>R71</td>
<td class="td-kicad0">27k</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0402_1005Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RC0402JR-0727KL</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="39">
<td class="td-kicad1"><div id="R6"></div><div id="R5"></div>R5 R6</td>
<td class="td-kicad1">52k 1%</td>
<td class="td-gen1">2</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RT0603BRD0752K3L</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="40">
<td class="td-kicad0"><div id="R46"></div><div id="R43"></div>R43 R46</td>
<td class="td-kicad0">100k</td>
<td class="td-gen0">2</td>
<td class="td-kicad0">R_0603_1608Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="41">
<td class="td-kicad1"><div id="R45"></div>R45</td>
<td class="td-kicad1">180k</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="42">
<td class="td-kicad0"><div id="R44"></div>R44</td>
<td class="td-kicad0">200k</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">R_0603_1608Metric</td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="43">
<td class="td-kicad1"><div id="R8"></div>R8</td>
<td class="td-kicad1">510k</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">R_0603_1608Metric</td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RC0603FR-07510KL</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="44">
<td class="td-kicad0"><div id="U5"></div><div id="U4"></div>U4 U5</td>
<td class="td-kicad0">FAN3278</td>
<td class="td-gen0">2</td>
<td class="td-kicad0">SOIC-8_3.9x4.9mm_P1.27mm</td>
<td class="td-user0">8-27V PMOS-NMOS Bridge Driver, SOIC-8</td>
<td class="td-empty0"></td>
<td class="td-user0">FAN3278T</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="45">
<td class="td-kicad1"><div id="U1"></div>U1</td>
<td class="td-kicad1">INA180A2</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">SOT-23-5</td>
<td class="td-user1">Current Sense Amplifier, 1 Circuit, Rail-to-Rail, 26V, Gain 50 V/V, SOT-23-5</td>
<td class="td-empty1"></td>
<td class="td-user1">INA180A2IDBVR</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="46">
<td class="td-kicad0"><div id="U3"></div>U3</td>
<td class="td-kicad0">LM321</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">SOT-23-5</td>
<td class="td-user0">Low Power Single Operational Amplifier, SOT-23-5</td>
<td class="td-empty0"></td>
<td class="td-user0">LM321AW-S5TR</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="47">
<td class="td-kicad1"><div id="U7"></div>U7</td>
<td class="td-kicad1">LM4041CIM3X-1.2/NOPB</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">SOT-23</td>
<td class="td-user1">2.048V Precision Micropower Shunt Voltage Reference, SOT-23</td>
<td class="td-empty1"></td>
<td class="td-user1">LM4041CIM3X-1.2/NOPB</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="48">
<td class="td-kicad0"><div id="U2"></div>U2</td>
<td class="td-kicad0">STM32G474CBTx</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">LQFP-48_7x7mm_P0.5mm</td>
<td class="td-user0">STMicroelectronics Arm Cortex-M4 MCU, 128KB flash, 128KB RAM, 170 MHz, 1.71-3.6V, 38 GPIO, LQFP48</td>
<td class="td-empty0"></td>
<td class="td-user0">STM32G474CBT6</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="49">
<td class="td-kicad1"><div id="U8"></div>U8</td>
<td class="td-kicad1">TLV75733PDBVR</td>
<td class="td-gen1">1</td>
<td class="td-kicad1">SOT-23-5</td>
<td class="td-user1">200mA Low Dropout Voltage Regulator, Fixed Output 1.2V, SOT-23-5</td>
<td class="td-empty1"></td>
<td class="td-user1">TLV75733PDBVR</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="50">
<td class="td-kicad0"><div id="Y2"></div>Y2</td>
<td class="td-kicad0">40MHz 10pF</td>
<td class="td-gen0">1</td>
<td class="td-kicad0">Crystal_SMD_2520-4Pin_2.5x2.0mm</td>
<td class="td-user0">Four pin crystal, GND on pins 2 and 4</td>
<td class="td-empty0"></td>
<td class="td-user0">ECS-400-10-36B2-CKM-TR</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
</tbody>
</table>
<h2>Optional components (DNF=Do Not Fit)</h2>
<table class="content-table">
<thead>
<tr>
<th class="th-kicad">Reference</th>
<th class="th-kicad">Value</th>
<th class="th-gen">Qty</th>
<th class="th-kicad">Package</th>
<th class="th-user">Description</th>
<th class="th-user">Manufacturer</th>
<th class="th-user">Part Number</th>
<th class="th-user">LCSC Part</th>
<th class="th-user">Digikey Part</th>
<th class="th-user">Mouser Part</th>
</tr>
</thead>
<tbody>
<tr id="5">
<td class="td-kicad0"><div id="C43"></div><div id="C25"></div><div id="C23"></div><div id="C19"></div>C19 C23 C25 C43</td>
<td class="td-kicad0">10uF</td>
<td class="td-gen0">4</td>
<td class="td-kicad0">C_1206_3216Metric</td>
<td class="td-user0">Unpolarized capacitor</td>
<td class="td-empty0"></td>
<td class="td-user0">CC1206KKX5R9BB106</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="24">
<td class="td-kicad1"><div id="R40"></div><div id="R37"></div><div id="R34"></div><div id="R33"></div>R33 R34 R37 R40</td>
<td class="td-kicad1">1</td>
<td class="td-gen1">4</td>
<td class="td-empty1"></td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RL0510S-1R0-F</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
<tr id="25">
<td class="td-kicad0"><div id="R41"></div><div id="R38"></div><div id="R35"></div><div id="R17"></div>R17 R35 R38 R41</td>
<td class="td-kicad0">2r2</td>
<td class="td-gen0">4</td>
<td class="td-empty0"></td>
<td class="td-user0">Resistor</td>
<td class="td-empty0"></td>
<td class="td-user0">RL0510S-2R2-F</td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
<td class="td-empty0"></td>
</tr>
<tr id="26">
<td class="td-kicad1"><div id="R42"></div><div id="R39"></div><div id="R36"></div><div id="R18"></div>R18 R36 R39 R42</td>
<td class="td-kicad1">3r3</td>
<td class="td-gen1">4</td>
<td class="td-empty1"></td>
<td class="td-user1">Resistor</td>
<td class="td-empty1"></td>
<td class="td-user1">RL0510S-3R3-F</td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
<td class="td-empty1"></td>
</tr>
</tbody>
</table>
<table class="color-ref">
<tr><th>Color reference for columns:</th></tr>
<tr><td class="td-kicad0">KiCad Fields (default)</td></tr>
<tr><td class="td-gen0">Generated Fields</td></tr>
<tr><td class="td-user0">User Fields</td></tr>
<tr><td class="td-empty0">Empty Fields</td></tr>
</table>
<script charset="utf-8">
var TGSort = window.TGSort || function(n) {
"use strict";
function r(n) { return n ? n.length : 0 }
function t(n, t, e, o = 0) { for (e = r(n); o < e; ++o) t(n[o], o) }
function e(n) { return n.split("").reverse().join("") }
function o(n) {
var e = n[0];
return t(n, function(n) {
for (; !n.startsWith(e);) e = e.substring(0, r(e) - 1)
}), r(e)
}
function u(n, r, e = []) {
return t(n, function(n) {
r(n) && e.push(n)
}), e
}
var a = parseFloat;
function i(n, r) {
return function(t) {
var e = "";
return t.replace(n, function(n, t, o) {
return e = t.replace(r, "") + "." + (o || "").substring(1)
}), a(e)
}
}
var s = i(/^(?:\s*)([+-]?(?:\d+)(?:,\d{3})*)(\.\d*)?$/g, /,/g),
c = i(/^(?:\s*)([+-]?(?:\d+)(?:\.\d{3})*)(,\d*)?$/g, /\./g);
function f(n) {
var t = a(n);
return !isNaN(t) && r("" + t) + 1 >= r(n) ? t : NaN
}
function d(n) {
var e = [],
o = n;
return t([f, s, c], function(u) {
var a = [],
i = [];
t(n, function(n, r) {
r = u(n), a.push(r), r || i.push(n)
}), r(i) < r(o) && (o = i, e = a)
}), r(u(o, function(n) {
return n == o[0]
})) == r(o) ? e : []
}
function v(n) {
if ("TABLE" == n.nodeName) {
for (var a = function(r) {
var e, o, u = [],
a = [];
return function n(r, e) {
e(r), t(r.childNodes, function(r) {
n(r, e)
})
}(n, function(n) {
"TR" == (o = n.nodeName) ? (e = [], u.push(e), a.push(n)) : "TD" != o && "TH" != o || e.push(n)
}), [u, a]
}(), i = a[0], s = a[1], c = r(i), f = c > 1 && r(i[0]) < r(i[1]) ? 1 : 0, v = f + 1, p = i[f], h = r(p), l = [], g = [], N = [], m = v; m < c; ++m) {
for (var T = 0; T < h; ++T) {
r(g) < h && g.push([]);
var C = i[m][T],
L = C.textContent || C.innerText || "";
g[T].push(L.trim())
}
N.push(m - v)
}
t(p, function(n, t) {
l[t] = 0;
var a = n.classList;
a.add("tg-sort-header"), n.addEventListener("click", function() {
var n = l[t];
! function() {
for (var n = 0; n < h; ++n) {
var r = p[n].classList;
r.remove("tg-sort-asc"), r.remove("tg-sort-desc"), l[n] = 0
}
}(), (n = 1 == n ? -1 : +!n) && a.add(n > 0 ? "tg-sort-asc" : "tg-sort-desc"), l[t] = n;
var i, f = g[t],
m = function(r, t) {
return n * f[r].localeCompare(f[t]) || n * (r - t)
},
T = function(n) {
var t = d(n);
if (!r(t)) {
var u = o(n),
a = o(n.map(e));
t = d(n.map(function(n) {
return n.substring(u, r(n) - a)
}))
}
return t
}(f);
(r(T) || r(T = r(u(i = f.map(Date.parse), isNaN)) ? [] : i)) && (m = function(r, t) {
var e = T[r],
o = T[t],
u = isNaN(e),
a = isNaN(o);
return u && a ? 0 : u ? -n : a ? n : e > o ? n : e < o ? -n : n * (r - t)
});
var C, L = N.slice();
L.sort(m);
for (var E = v; E < c; ++E)(C = s[E].parentNode).removeChild(s[E]);
for (E = v; E < c; ++E) C.appendChild(s[v + L[E - v]])
})
})
}
}
n.addEventListener("DOMContentLoaded", function() {
for (var t = n.getElementsByClassName("content-table"), e = 0; e < r(t); ++e) try {
v(t[e])
} catch (n) {}
})
}(document)
</script>
</body></html>
Binary file not shown.
-15
View File
@@ -1,15 +0,0 @@
# KiCad Project Diff Report
**Base Commit:** 5e21ee15
**Head Commit:** e9775f2c
**Date:** Tue Dec 16 10:23:18 UTC 2025
## Changed Files:
M kicad/c64psu/c64psu.kicad_sch
## Summary:
kicad/c64psu/c64psu.kicad_sch | 2686 +++++++++++++++++++----------------------
1 file changed, 1240 insertions(+), 1446 deletions(-)
## Commit Messages:
e9775f2 seperated into transformer / experimental
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-126
View File
@@ -1,126 +0,0 @@
<!DOCTYPE html>
<html class="react-root">
<head>
<link rel="stylesheet" type="text/css" href="/assets/static/src_styles_global-00f5cfaf.B9h5MWpr.css">
<link rel="stylesheet" type="text/css" href="/assets/static/src_styles_simgraph-2e2e66e0.xdRgJchD.css">
<link rel="stylesheet" type="text/css" href="/assets/static/src_styles_footer_cn-e9255475.C6VRb3Zo.css">
<link rel="stylesheet" type="text/css" href="/assets/static/src_styles_jquery.qtip.C0pyK8Sv.css">
<link rel="stylesheet" type="text/css" href="/assets/static/src_styles_global-00f5cfaf.Bp-vOpln.css">
<!-- OneTrust Cookies Consent Notice start -->
<script type="text/javascript" src="https://cdn.cookielaw.org/consent/b866f587-e7d0-4f41-bb98-ffe290290472/OtAutoBlock.js"></script>
<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="b866f587-e7d0-4f41-bb98-ffe290290472"></script>
<script type="text/javascript">
function OptanonWrapper() { }
</script>
<script type="text/javascript">
window.addEventListener("OTConsentApplied", function(e) {
document.location.reload();
}, { once: true });
</script>
<!-- OneTrust Cookies Consent Notice end -->
<script src="https://assets.adobedtm.com/193a95d152ddc4b48eec9ef739f5e8baea85bc42/satelliteLib-cd45bb235be3c8a9435191c7064254804b40eb59.js" charset="utf-8"></script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PRTZ8QW');</script>
<!-- End Google Tag Manager -->
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<!-- クリティカルCSSをインライン化 -->
<style>
/* Reset & Base */
* { box-sizing: border-box; }
body {
margin: 0;
padding: 0;
line-height: 1.6;
}
/* ヘッダー(ファーストビューに表示される部分) */
.header {
background: #fff;
border-bottom: 1px solid #ddd;
position: sticky;
top: 0;
z-index: 100;
}
/* ローディングスピナー */
.loading-spinner {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
/* 検索フォーム(ファーストビューに表示) */
.search-form {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
/* ボタンの基本スタイル */
.btn {
padding: 10px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
.btn-primary {
background-color: #e50022;
color: white;
}
/* スピナーアニメーション */
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.spinner {
border: 4px solid rgba(0, 0, 0, 0.1);
border-radius: 50%;
border-top: 4px solid #e50022;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
body { font-family: "FSEmeric", Arial, "Helvetica Neue", Helvetica, sans-serif; }
.react-root, .react-root select, .react-root input, .react-root textarea { font-family: "FSEmeric", Arial, "Helvetica Neue", Helvetica, sans-serif; }
</style>
<!-- 外部CSSを遅延読み込み -->
<link rel="preload" href="/styles/SiteRenewal/Business/header.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link rel="preload" href="/styles/SiteRenewal/Business/layout.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="/styles/SiteRenewal/Business/layout.css"></noscript>
<!-- フォント用のnoscriptフォールバック -->
<noscript>
<link rel="stylesheet" href="/styles/SiteRenewal/Business/header.css" />
<link rel="stylesheet" href="/styles/SiteRenewal/Business/noscript.css" />
</noscript>
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PRTZ8QW"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="react-root"><!--$!--><template></template><!--/$--></div>
<script type="text/javascript">if (typeof _satellite !== "undefined") { _satellite.pageBottom();}</script>
<script id="vike_pageContext" type="application/json">{"pageProps":"!undefined","locale":"en-global","abortReason":"!undefined","_urlRewrite":null,"_urlRedirect":"!undefined","abortStatusCode":"!undefined","_abortCall":"!undefined","_pageContextInitIsPassedToClient":"!undefined","pageId":"/src/pages/pim/details","routeParams":{},"data":"!undefined"}</script>
<script src="/assets/entries/entry-client-routing.CAp7bBDh.js" type="module" async></script>
<link rel="modulepreload" href="/assets/entries/src_pages_pim_details.C6IqwWJh.js" as="script" type="text/javascript">
<link rel="modulepreload" href="/assets/chunks/chunk-3lZX8NVt.js" as="script" type="text/javascript">
<link rel="modulepreload" href="/assets/chunks/chunk-C4c85zTN.js" as="script" type="text/javascript">
<link rel="modulepreload" href="/assets/chunks/chunk-BOhWv5dm.js" as="script" type="text/javascript">
</body>
</html>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-18
View File
@@ -1,18 +0,0 @@
# Component Datasheets
This folder contains downloaded datasheets for all components in the project.
Organized by component type:
- **ICs/** - Integrated circuits (U references)
- **Capacitors/** - Capacitors (C references)
- **Resistors/** - Resistors (R references)
- **Transistors/** - Transistors (Q references)
- **Diodes/** - Diodes (D references)
- **Connectors/** - Connectors (J, P references)
- **Inductors/** - Inductors (L references)
- And more...
Files are named: REFERENCE_VALUE.pdf (e.g., U1_LM7805.pdf)
Generated on: Tue Dec 16 10:27:44 UTC 2025
Project: c64psu
-22
View File
@@ -1,22 +0,0 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.1+1*%
%TF.CreationDate,2025-12-16T10:26:37+00:00*%
%TF.ProjectId,c64psu,63363470-7375-42e6-9b69-6361645f7063,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,NonPlated,1,4,NPTH,Drill*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.1+1) date 2025-12-16 10:26:37*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,ComponentDrill*%
%ADD10C,2.400000*%
%TD*%
G04 APERTURE END LIST*
D10*
%TO.C,J2*%
X210980000Y-40940000D03*
X210980000Y-55940000D03*
M02*
-31
View File
@@ -1,31 +0,0 @@
Drill report for c64psu.kicad_pcb
Created on 2025-12-16T10:26:37+0000
Copper Layer Stackup:
=============================================================
L1 : F.Cu front
L2 : In1.Cu in1
L3 : In2.Cu in2
L4 : B.Cu back
Drill file 'c64psu-PTH.drl' contains
plated through holes:
=============================================================
T1 0.300mm 0.0118" (242 holes)
T2 0.650mm 0.0256" (4 holes) (with 4 slots)
T3 0.800mm 0.0315" (16 holes)
T4 1.000mm 0.0394" (12 holes)
T5 1.300mm 0.0512" (9 holes)
T6 1.500mm 0.0591" (10 holes)
T7 3.200mm 0.1260" (3 holes)
Total plated holes count 296
Drill file 'c64psu-NPTH.drl' contains
unplated through holes:
=============================================================
T1 2.400mm 0.0945" (2 holes)
Total unplated holes count 2
-185
View File
@@ -1,185 +0,0 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "9.0.1+1"
},
"CreationDate": "2025-12-16T10:26:37+00:00"
},
"GeneralSpecs": {
"ProjectId": {
"Name": "c64psu",
"GUID": "63363470-7375-42e6-9b69-6361645f7063",
"Revision": "rev?"
},
"Size": {
"X": 86.2251,
"Y": 71.9422
},
"LayerNumber": 4,
"BoardThickness": 1.6,
"Finish": "None"
},
"DesignRules": [
{
"Layers": "Outer",
"PadToPad": 0.2,
"PadToTrack": 0.2,
"TrackToTrack": 0.2,
"MinLineWidth": 0.17,
"TrackToRegion": 0.2,
"RegionToRegion": 0.2
},
{
"Layers": "Inner",
"PadToPad": 0.2,
"PadToTrack": 0.2,
"TrackToTrack": 0.2,
"MinLineWidth": 0.21,
"TrackToRegion": 0.25,
"RegionToRegion": 0.25
}
],
"FilesAttributes": [
{
"Path": "c64psuF_Cu.gbr",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "c64psuB_Cu.gbr",
"FileFunction": "Copper,L4,Bot",
"FilePolarity": "Positive"
},
{
"Path": "c64psuIn1_Cu.gbr",
"FileFunction": "Copper,L5,Inr",
"FilePolarity": "Positive"
},
{
"Path": "c64psuIn2_Cu.gbr",
"FileFunction": "Copper,L7,Inr",
"FilePolarity": "Positive"
},
{
"Path": "c64psuF_Paste.gbr",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
},
{
"Path": "c64psuB_Paste.gbr",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
},
{
"Path": "c64psuF_Silkscreen.gbr",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "c64psuB_Silkscreen.gbr",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "c64psuF_Mask.gbr",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "c64psuB_Mask.gbr",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "c64psuEdge_Cuts.gbr",
"FileFunction": "Profile",
"FilePolarity": "Positive"
},
{
"Path": "c64psuUser_Comments.gbr",
"FileFunction": "Other,User",
"FilePolarity": "Positive"
},
{
"Path": "c64psuF_Fab.gbr",
"FileFunction": "AssemblyDrawing,Top",
"FilePolarity": "Positive"
},
{
"Path": "c64psuB_Fab.gbr",
"FileFunction": "AssemblyDrawing,Bot",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
{
"Type": "Legend",
"Name": "Top Silk Screen"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Top Solder Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "F.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.1,
"Material": "FR4",
"Name": "F.Cu/In1.Cu",
"Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In1.Cu"
},
{
"Type": "Dielectric",
"Thickness": 1.24,
"Material": "FR4",
"Name": "In1.Cu/In2.Cu",
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In2.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.1,
"Material": "FR4",
"Name": "In2.Cu/B.Cu",
"Notes": "Type: dielectric layer 3 (from In2.Cu to B.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "B.Cu"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
}
]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-31
View File
@@ -1,31 +0,0 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,9.0.1+1*
G04 #@! TF.CreationDate,2025-12-16T10:26:37+00:00*
G04 #@! TF.ProjectId,c64psu,63363470-7375-42e6-9b69-6361645f7063,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.1+1) date 2025-12-16 10:26:37*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 #@! TA.AperFunction,Profile*
%ADD10C,0.050000*%
G04 #@! TD*
G04 APERTURE END LIST*
D10*
X219224551Y-37033468D02*
X219250062Y-108900624D01*
X133100087Y-108875624D01*
X133075074Y-58400000D01*
X139675000Y-58400000D01*
X139675000Y-57800000D01*
X139250000Y-57800000D01*
X139250000Y-49750000D01*
X139700000Y-49750000D01*
X139700000Y-49150000D01*
X133075000Y-49150000D01*
X133075000Y-37008468D01*
X219224551Y-37033468D01*
M02*
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-17
View File
@@ -1,17 +0,0 @@
M48
; DRILL file {KiCad 9.0.1+1} date 2025-12-16T10:26:37+0000
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-12-16T10:26:37+00:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.1+1
; #@! TF.FileFunction,NonPlated,1,4,NPTH
FMAT,2
METRIC
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T1C2.400
%
G90
G05
T1
X210.98Y-40.94
X210.98Y-55.94
M30
-345
View File
@@ -1,345 +0,0 @@
M48
; DRILL file {KiCad 9.0.1+1} date 2025-12-16T10:26:37+0000
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-12-16T10:26:37+00:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.1+1
; #@! TF.FileFunction,Plated,1,4,PTH
FMAT,2
METRIC
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C0.650
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T3C0.800
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T4C1.000
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T5C1.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T6C1.500
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T7C3.200
%
G90
G05
T1
X137.008Y-65.837
X137.109Y-61.112
X137.16Y-62.549
X137.16Y-64.211
X138.035Y-89.68
X138.12Y-88.324
X138.277Y-91.242
X138.323Y-74.944
X138.323Y-93.201
X139.04Y-81.128
X139.543Y-93.744
X139.593Y-78.844
X140.305Y-88.781
X140.307Y-50.563
X140.332Y-57.091
X140.499Y-49.9
X140.504Y-90.994
X140.57Y-57.765
X140.579Y-58.488
X140.863Y-74.944
X141.067Y-93.658
X141.127Y-52.517
X141.29Y-62.57
X141.321Y-87.641
X141.321Y-88.601
X141.321Y-92.795
X141.326Y-84.734
X141.333Y-49.761
X141.333Y-50.574
X141.368Y-55.35
X141.607Y-54.139
X141.823Y-52.913
X142.133Y-74.944
X142.459Y-53.398
X142.846Y-63.857
X143.213Y-62.422
X143.228Y-85.733
X143.818Y-57.663
X143.924Y-63.376
X143.963Y-59.487
X144.26Y-85.835
X144.396Y-58.112
X144.526Y-91.237
X144.775Y-88.375
X144.836Y-57.52
X145.283Y-58.147
X145.925Y-84.199
X146.287Y-64.657
X146.311Y-63.284
X146.325Y-61.263
X146.631Y-48.685
X146.653Y-98.992
X146.655Y-97.062
X146.66Y-98.027
X146.674Y-49.826
X146.761Y-81.94
X147.117Y-84.379
X147.232Y-61.231
X147.264Y-94.42
X147.367Y-63.241
X147.531Y-49.253
X148.418Y-49.805
X148.432Y-48.692
X149.245Y-94.319
X149.522Y-97.062
X149.522Y-98.027
X149.753Y-99.145
X149.855Y-100.516
X150.085Y-74.38
X150.121Y-89.122
X150.214Y-80.398
X150.617Y-95.741
X150.922Y-85.175
X150.935Y-55.756
X151.064Y-76.72
X151.125Y-72.7
X151.125Y-73.5
X151.156Y-71.816
X151.43Y-84.667
X151.54Y-56.264
X151.595Y-57.229
X151.605Y-95.741
X151.684Y-86.777
X151.75Y-64.25
X152.014Y-84.082
X152.014Y-79.55
X152.014Y-80.34
X152.117Y-74.403
X152.404Y-94.738
X152.857Y-92.354
X153.003Y-80.398
X153.026Y-81.363
X153.363Y-72.742
X153.371Y-61.16
X153.371Y-70.948
X153.38Y-64.506
X153.397Y-69.535
X153.414Y-62.078
X153.414Y-71.882
X153.414Y-68.631
X153.416Y-65.329
X153.432Y-63.007
X153.441Y-67.905
X153.67Y-95.148
X155.143Y-74.574
X155.862Y-77.955
X156.108Y-87.325
X156.115Y-54.096
X156.159Y-84.023
X156.174Y-52.075
X156.18Y-55.826
X156.208Y-49.835
X156.213Y-48.843
X156.219Y-53.075
X156.221Y-50.86
X156.256Y-56.618
X156.289Y-91.135
X156.312Y-59.284
X156.326Y-75.413
X156.85Y-56.096
X156.937Y-77.946
X156.96Y-91.158
X157.175Y-83.972
X157.277Y-87.274
X157.734Y-68.834
X157.734Y-69.596
X157.734Y-70.358
X158.214Y-63.652
X158.242Y-62.687
X158.27Y-93.675
X158.27Y-94.64
X158.344Y-60.198
X158.556Y-81.496
X158.626Y-80.565
X158.648Y-68.834
X158.648Y-69.647
X158.648Y-70.409
X158.659Y-95.522
X158.681Y-90.451
X158.748Y-91.288
X158.985Y-78.64
X159.003Y-77.435
X159.664Y-68.834
X159.664Y-69.596
X159.664Y-70.358
X160.579Y-68.834
X160.579Y-69.647
X160.579Y-70.409
X160.833Y-59.184
X160.833Y-61.009
X161.148Y-91.19
X161.595Y-68.834
X161.595Y-69.596
X161.595Y-70.358
X161.655Y-77.953
X162.096Y-91.254
X162.207Y-77.986
X162.509Y-68.834
X162.509Y-69.647
X162.509Y-70.409
X162.998Y-78.315
X163.017Y-90.503
X163.017Y-91.463
X163.068Y-77.193
X163.722Y-78.34
X163.871Y-90.503
X163.982Y-91.463
X164.033Y-77.193
X164.338Y-98.044
X164.47Y-78.307
X164.745Y-91.116
X164.934Y-74.62
X164.95Y-77.703
X164.986Y-75.423
X165.057Y-87.793
X165.109Y-88.596
X165.14Y-60.48
X165.405Y-51.968
X165.462Y-91.532
X165.732Y-75.383
X165.749Y-74.631
X165.78Y-90.908
X165.78Y-77.673
X165.8Y-78.297
X165.854Y-88.555
X165.872Y-87.804
X165.872Y-60.311
X165.971Y-52.606
X166.175Y-51.895
X166.53Y-53.114
X166.606Y-60.252
X166.683Y-52.403
X167.292Y-52.758
X167.363Y-53.332
X168.063Y-63.37
X168.074Y-62.657
X168.08Y-64.12
X168.096Y-67.205
X168.097Y-53.238
X168.099Y-66.345
X168.099Y-69.647
X168.122Y-70.443
X168.148Y-68.805
X168.161Y-65.398
X170.457Y-57.737
X170.637Y-56.642
X171.559Y-56.723
X171.751Y-52.544
X171.77Y-51.742
X172.164Y-85.254
X172.276Y-82.321
X172.575Y-61.75
X173.079Y-82.287
X173.112Y-85.254
X173.375Y-61.75
X174.25Y-61.75
X174.752Y-85.198
X174.763Y-82.287
X175.286Y-41.834
X175.588Y-85.165
X175.834Y-82.231
X176.096Y-41.819
X177.249Y-51.661
X177.249Y-53.711
X177.264Y-54.514
X177.272Y-52.478
X177.455Y-41.819
X178.206Y-41.812
X179.543Y-41.834
X180.331Y-41.826
X181.609Y-41.812
X182.426Y-41.812
X188.773Y-86.614
X189.332Y-81.539
X189.332Y-82.499
X190.348Y-81.308
X190.348Y-82.268
X192.044Y-84.531
X196.799Y-39.929
X196.952Y-80.646
X197.206Y-55.931
X198.808Y-82.057
T3
X162.54Y-73.05
X163.708Y-86.411
X163.748Y-94.691
X163.799Y-81.331
X165.08Y-73.05
X166.248Y-86.411
X166.288Y-94.691
X166.339Y-81.331
X169.215Y-82.804
X169.215Y-85.344
X172.994Y-75.844
X174.17Y-56.365
X175.534Y-75.844
X176.71Y-56.365
X193.599Y-47.63
X193.599Y-50.17
T4
X170.785Y-65.684
X170.835Y-69.393
X171.14Y-97.079
X171.14Y-100.787
X173.325Y-65.684
X173.375Y-69.393
X173.68Y-97.079
X173.68Y-100.787
X210.109Y-62.997
X210.109Y-65.537
X215.443Y-62.946
X215.443Y-65.486
T5
X203.48Y-40.94
X203.48Y-45.94
X203.48Y-50.94
X203.48Y-55.94
X205.98Y-43.44
X205.98Y-48.44
X205.98Y-53.44
X215.98Y-45.94
X215.98Y-50.94
T6
X183.37Y-69.11
X183.37Y-76.61
X183.37Y-84.11
X183.37Y-91.61
X183.37Y-99.11
X213.37Y-69.11
X213.37Y-76.61
X213.37Y-84.11
X213.37Y-91.61
X213.37Y-99.11
T7
X140.0Y-42.0
X140.0Y-105.0
X190.0Y-42.0
T2
G00X135.3Y-48.155
M15
G01X134.4Y-48.155
M16
G05
G00X135.3Y-59.395
M15
G01X134.4Y-59.395
M16
G05
G00X139.1Y-48.155
M15
G01X138.6Y-48.155
M16
G05
G00X139.1Y-59.395
M15
G01X138.6Y-59.395
M16
G05
M30
-46
View File
@@ -1,46 +0,0 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,9.0.1+1*
G04 #@! TF.CreationDate,2025-12-16T10:26:37+00:00*
G04 #@! TF.ProjectId,c64psu,63363470-7375-42e6-9b69-6361645f7063,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Other,Comment*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.1+1) date 2025-12-16 10:26:37*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.150000*%
G04 APERTURE END LIST*
D10*
X192800000Y-42000000D02*
G75*
G02*
X187200000Y-42000000I-2800000J0D01*
G01*
X187200000Y-42000000D02*
G75*
G02*
X192800000Y-42000000I2800000J0D01*
G01*
X142800000Y-105000000D02*
G75*
G02*
X137200000Y-105000000I-2800000J0D01*
G01*
X137200000Y-105000000D02*
G75*
G02*
X142800000Y-105000000I2800000J0D01*
G01*
X142800000Y-42000000D02*
G75*
G02*
X137200000Y-42000000I-2800000J0D01*
G01*
X137200000Y-42000000D02*
G75*
G02*
X142800000Y-42000000I2800000J0D01*
G01*
M02*
-34
View File
@@ -1,34 +0,0 @@
<!DOCTYPE HTML>
<html lang="en">
<body>
<script type="module" src="kicanvas.js"></script>
<div id="no_file_access" style="display: none; ">
<span>The browser can't read local files. Enable it to continue. I.e. use <i>--allow-file-access-from-files</i> on Chrome</span>
</div>
<kicanvas-embed controls="full">
<kicanvas-source src="c64psu.kicad_pcb"></kicanvas-source>
</kicanvas-embed>
<script>
function ready()
{
try
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'c64psu.kicad_pcb', false);
xmlhttp.send();
}
catch (error)
{
if (window.location.protocol === 'file:')
{
document.getElementById('no_file_access').style.display = 'block';
}
throw(error);
}
}
window.addEventListener('DOMContentLoaded', ready);
</script>
</body>
</html>
-34
View File
@@ -1,34 +0,0 @@
<!DOCTYPE HTML>
<html lang="en">
<body>
<script type="module" src="kicanvas.js"></script>
<div id="no_file_access" style="display: none; ">
<span>The browser can't read local files. Enable it to continue. I.e. use <i>--allow-file-access-from-files</i> on Chrome</span>
</div>
<kicanvas-embed controls="full">
<kicanvas-source src="c64psu.kicad_pro"></kicanvas-source>
</kicanvas-embed>
<script>
function ready()
{
try
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'c64psu.kicad_pro', false);
xmlhttp.send();
}
catch (error)
{
if (window.location.protocol === 'file:')
{
document.getElementById('no_file_access').style.display = 'block';
}
throw(error);
}
}
window.addEventListener('DOMContentLoaded', ready);
</script>
</body>
</html>
-34
View File
@@ -1,34 +0,0 @@
<!DOCTYPE HTML>
<html lang="en">
<body>
<script type="module" src="kicanvas.js"></script>
<div id="no_file_access" style="display: none; ">
<span>The browser can't read local files. Enable it to continue. I.e. use <i>--allow-file-access-from-files</i> on Chrome</span>
</div>
<kicanvas-embed controls="full">
<kicanvas-source src="c64psu.kicad_sch"></kicanvas-source>
</kicanvas-embed>
<script>
function ready()
{
try
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'c64psu.kicad_sch', false);
xmlhttp.send();
}
catch (error)
{
if (window.location.protocol === 'file:')
{
document.getElementById('no_file_access').style.display = 'block';
}
throw(error);
}
}
window.addEventListener('DOMContentLoaded', ready);
</script>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-44
View File
@@ -1,44 +0,0 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,9.0.1+1*
G04 #@! TF.CreationDate,2025-12-16T10:27:43+00:00*
G04 #@! TF.ProjectId,c64psu,63363470-7375-42e6-9b69-6361645f7063,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.1+1) date 2025-12-16 10:27:43*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 #@! TA.AperFunction,Profile*
%ADD10C,0.050000*%
G04 #@! TD*
G04 APERTURE END LIST*
D10*
X219224551Y-37033468D02*
X219250062Y-108900624D01*
X133100087Y-108875624D01*
X133075074Y-58400000D01*
X139675000Y-58400000D01*
X139675000Y-57800000D01*
X139250000Y-57800000D01*
X139250000Y-49750000D01*
X139700000Y-49750000D01*
X139700000Y-49150000D01*
X133075000Y-49150000D01*
X133075000Y-37008468D01*
X219224551Y-37033468D01*
X219224551Y-37033468D02*
X219250062Y-108900624D01*
X133100087Y-108875624D01*
X133075074Y-58400000D01*
X139675000Y-58400000D01*
X139675000Y-57800000D01*
X139250000Y-57800000D01*
X139250000Y-49750000D01*
X139700000Y-49750000D01*
X139700000Y-49150000D01*
X133075000Y-49150000D01*
X133075000Y-37008468D01*
X219224551Y-37033468D01*
M02*
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-17
View File
@@ -1,17 +0,0 @@
M48
; DRILL file {KiCad 9.0.1+1} date 2025-12-16T10:27:43+0000
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-12-16T10:27:43+00:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.1+1
; #@! TF.FileFunction,NonPlated,1,4,NPTH
FMAT,2
METRIC
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T1C2.400
%
G90
G05
T1
X210.98Y-40.94
X210.98Y-55.94
M30
-345
View File
@@ -1,345 +0,0 @@
M48
; DRILL file {KiCad 9.0.1+1} date 2025-12-16T10:27:43+0000
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-12-16T10:27:43+00:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.1+1
; #@! TF.FileFunction,Plated,1,4,PTH
FMAT,2
METRIC
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C0.650
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T3C0.800
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T4C1.000
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T5C1.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T6C1.500
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T7C3.200
%
G90
G05
T1
X137.008Y-65.837
X137.109Y-61.112
X137.16Y-62.549
X137.16Y-64.211
X138.035Y-89.68
X138.12Y-88.324
X138.277Y-91.242
X138.323Y-74.944
X138.323Y-93.201
X139.04Y-81.128
X139.543Y-93.744
X139.593Y-78.844
X140.305Y-88.781
X140.307Y-50.563
X140.332Y-57.091
X140.499Y-49.9
X140.504Y-90.994
X140.57Y-57.765
X140.579Y-58.488
X140.863Y-74.944
X141.067Y-93.658
X141.127Y-52.517
X141.29Y-62.57
X141.321Y-87.641
X141.321Y-88.601
X141.321Y-92.795
X141.326Y-84.734
X141.333Y-49.761
X141.333Y-50.574
X141.368Y-55.35
X141.607Y-54.139
X141.823Y-52.913
X142.133Y-74.944
X142.459Y-53.398
X142.846Y-63.857
X143.213Y-62.422
X143.228Y-85.733
X143.818Y-57.663
X143.924Y-63.376
X143.963Y-59.487
X144.26Y-85.835
X144.396Y-58.112
X144.526Y-91.237
X144.775Y-88.375
X144.836Y-57.52
X145.283Y-58.147
X145.925Y-84.199
X146.287Y-64.657
X146.311Y-63.284
X146.325Y-61.263
X146.631Y-48.685
X146.653Y-98.992
X146.655Y-97.062
X146.66Y-98.027
X146.674Y-49.826
X146.761Y-81.94
X147.117Y-84.379
X147.232Y-61.231
X147.264Y-94.42
X147.367Y-63.241
X147.531Y-49.253
X148.418Y-49.805
X148.432Y-48.692
X149.245Y-94.319
X149.522Y-97.062
X149.522Y-98.027
X149.753Y-99.145
X149.855Y-100.516
X150.085Y-74.38
X150.121Y-89.122
X150.214Y-80.398
X150.617Y-95.741
X150.922Y-85.175
X150.935Y-55.756
X151.064Y-76.72
X151.125Y-72.7
X151.125Y-73.5
X151.156Y-71.816
X151.43Y-84.667
X151.54Y-56.264
X151.595Y-57.229
X151.605Y-95.741
X151.684Y-86.777
X151.75Y-64.25
X152.014Y-84.082
X152.014Y-79.55
X152.014Y-80.34
X152.117Y-74.403
X152.404Y-94.738
X152.857Y-92.354
X153.003Y-80.398
X153.026Y-81.363
X153.363Y-72.742
X153.371Y-61.16
X153.371Y-70.948
X153.38Y-64.506
X153.397Y-69.535
X153.414Y-62.078
X153.414Y-71.882
X153.414Y-68.631
X153.416Y-65.329
X153.432Y-63.007
X153.441Y-67.905
X153.67Y-95.148
X155.143Y-74.574
X155.862Y-77.955
X156.108Y-87.325
X156.115Y-54.096
X156.159Y-84.023
X156.174Y-52.075
X156.18Y-55.826
X156.208Y-49.835
X156.213Y-48.843
X156.219Y-53.075
X156.221Y-50.86
X156.256Y-56.618
X156.289Y-91.135
X156.312Y-59.284
X156.326Y-75.413
X156.85Y-56.096
X156.937Y-77.946
X156.96Y-91.158
X157.175Y-83.972
X157.277Y-87.274
X157.734Y-68.834
X157.734Y-69.596
X157.734Y-70.358
X158.214Y-63.652
X158.242Y-62.687
X158.27Y-93.675
X158.27Y-94.64
X158.344Y-60.198
X158.556Y-81.496
X158.626Y-80.565
X158.648Y-68.834
X158.648Y-69.647
X158.648Y-70.409
X158.659Y-95.522
X158.681Y-90.451
X158.748Y-91.288
X158.985Y-78.64
X159.003Y-77.435
X159.664Y-68.834
X159.664Y-69.596
X159.664Y-70.358
X160.579Y-68.834
X160.579Y-69.647
X160.579Y-70.409
X160.833Y-59.184
X160.833Y-61.009
X161.148Y-91.19
X161.595Y-68.834
X161.595Y-69.596
X161.595Y-70.358
X161.655Y-77.953
X162.096Y-91.254
X162.207Y-77.986
X162.509Y-68.834
X162.509Y-69.647
X162.509Y-70.409
X162.998Y-78.315
X163.017Y-90.503
X163.017Y-91.463
X163.068Y-77.193
X163.722Y-78.34
X163.871Y-90.503
X163.982Y-91.463
X164.033Y-77.193
X164.338Y-98.044
X164.47Y-78.307
X164.745Y-91.116
X164.934Y-74.62
X164.95Y-77.703
X164.986Y-75.423
X165.057Y-87.793
X165.109Y-88.596
X165.14Y-60.48
X165.405Y-51.968
X165.462Y-91.532
X165.732Y-75.383
X165.749Y-74.631
X165.78Y-90.908
X165.78Y-77.673
X165.8Y-78.297
X165.854Y-88.555
X165.872Y-87.804
X165.872Y-60.311
X165.971Y-52.606
X166.175Y-51.895
X166.53Y-53.114
X166.606Y-60.252
X166.683Y-52.403
X167.292Y-52.758
X167.363Y-53.332
X168.063Y-63.37
X168.074Y-62.657
X168.08Y-64.12
X168.096Y-67.205
X168.097Y-53.238
X168.099Y-66.345
X168.099Y-69.647
X168.122Y-70.443
X168.148Y-68.805
X168.161Y-65.398
X170.457Y-57.737
X170.637Y-56.642
X171.559Y-56.723
X171.751Y-52.544
X171.77Y-51.742
X172.164Y-85.254
X172.276Y-82.321
X172.575Y-61.75
X173.079Y-82.287
X173.112Y-85.254
X173.375Y-61.75
X174.25Y-61.75
X174.752Y-85.198
X174.763Y-82.287
X175.286Y-41.834
X175.588Y-85.165
X175.834Y-82.231
X176.096Y-41.819
X177.249Y-51.661
X177.249Y-53.711
X177.264Y-54.514
X177.272Y-52.478
X177.455Y-41.819
X178.206Y-41.812
X179.543Y-41.834
X180.331Y-41.826
X181.609Y-41.812
X182.426Y-41.812
X188.773Y-86.614
X189.332Y-81.539
X189.332Y-82.499
X190.348Y-81.308
X190.348Y-82.268
X192.044Y-84.531
X196.799Y-39.929
X196.952Y-80.646
X197.206Y-55.931
X198.808Y-82.057
T3
X162.54Y-73.05
X163.708Y-86.411
X163.748Y-94.691
X163.799Y-81.331
X165.08Y-73.05
X166.248Y-86.411
X166.288Y-94.691
X166.339Y-81.331
X169.215Y-82.804
X169.215Y-85.344
X172.994Y-75.844
X174.17Y-56.365
X175.534Y-75.844
X176.71Y-56.365
X193.599Y-47.63
X193.599Y-50.17
T4
X170.785Y-65.684
X170.835Y-69.393
X171.14Y-97.079
X171.14Y-100.787
X173.325Y-65.684
X173.375Y-69.393
X173.68Y-97.079
X173.68Y-100.787
X210.109Y-62.997
X210.109Y-65.537
X215.443Y-62.946
X215.443Y-65.486
T5
X203.48Y-40.94
X203.48Y-45.94
X203.48Y-50.94
X203.48Y-55.94
X205.98Y-43.44
X205.98Y-48.44
X205.98Y-53.44
X215.98Y-45.94
X215.98Y-50.94
T6
X183.37Y-69.11
X183.37Y-76.61
X183.37Y-84.11
X183.37Y-91.61
X183.37Y-99.11
X213.37Y-69.11
X213.37Y-76.61
X213.37Y-84.11
X213.37Y-91.61
X213.37Y-99.11
T7
X140.0Y-42.0
X140.0Y-105.0
X190.0Y-42.0
T2
G00X135.3Y-48.155
M15
G01X134.4Y-48.155
M16
G05
G00X135.3Y-59.395
M15
G01X134.4Y-59.395
M16
G05
G00X139.1Y-48.155
M15
G01X138.6Y-48.155
M16
G05
G00X139.1Y-59.395
M15
G01X138.6Y-59.395
M16
G05
M30
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 529 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 3.2 MiB

-5
View File
@@ -1,5 +0,0 @@
Board configuration: 4 layers
Project: c64psu
Project path: ./kicad/c64psu
Generated on: Tue Dec 16 10:27:44 UTC 2025
Commit: e9775f2ce78dc286cf8bec8b3a4b339598700a0a
-1829
View File
File diff suppressed because it is too large Load Diff
-2089
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
BIN
View File
Binary file not shown.
-155
View File
@@ -1,155 +0,0 @@
# PCB
Board size: 86.18x71.89 mm (3.39x2.83 inches)
- This is the size of the rectangle that contains the board
- Thickness: 1.6 mm (63 mils)
- Material: FR4
- Finish: None
- Layers: 4
- Copper thickness: 35 µm
Solder mask: TOP / BOTTOM
- Color: Green
Silk screen: TOP / BOTTOM
- Color: White
Stackup:
| Name | Type | Color | Thickness [µm]| Material | Er | Loss tan |
|----------------------|----------------------|------------------|---------------|-----------------|-----------|--------------|
| F.SilkS | Top Silk Screen | | | | | |
| F.Paste | Top Solder Paste | | | | | |
| F.Mask | Top Solder Mask | | 10 | | | |
| F.Cu | copper | | 35 | | | |
| dielectric 1 | prepreg | | 100 | FR4 | 4.5 | 0.020 |
| In1.Cu | copper | | 35 | | | |
| dielectric 2 | core | | 1240 | FR4 | 4.5 | 0.020 |
| In2.Cu | copper | | 35 | | | |
| dielectric 3 | prepreg | | 100 | FR4 | 4.5 | 0.020 |
| B.Cu | copper | | 35 | | | |
| B.Mask | Bottom Solder Mask | | 10 | | | |
| B.Paste | Bottom Solder Paste | | | | | |
| B.SilkS | Bottom Silk Screen | | | | | |
# Important sizes
Clearance: 0.2 mm (8 mils)
Track width: 0.17 mm (7 mils)
- By design rules: 0.0 mm (0 mils)
Drill: 0.4 mm (16 mils)
- Vias: 0.4 mm (16 mils) [Design: 0.4 mm (16 mils)]
- Pads: 0.75 mm (30 mils)
- The above values are real drill sizes, they add 0.1 mm (4 mils) to plated holes (PTH)
Via: 0.6/0.3 mm (24/12 mils)
- By design rules: 0.5/0.3 mm (20/12 mils)
- Micro via: yes [0.2/0.1 mm (8/4 mils)]
- Buried/blind via: yes
- Total: 242 (thru: 242 buried/blind: 0 micro: 0)
Outer Annular Ring: 0.1 mm (4 mils)
- By design rules: 0.15 mm (6 mils)
Eurocircuits class: 6C
- Using min drill 0.35 mm for an OAR of 0.13 mm
# General stats
Components count: (SMD/THT)
- Top: 87/6 (SMD + THT)
- Bottom: 23/2 (SMD + THT)
Defined tracks:
- 0.17 mm (7 mils)
- 0.21 mm (8 mils)
- 0.3 mm (12 mils)
- 0.4 mm (16 mils)
- 0.6 mm (24 mils)
- 0.8 mm (31 mils)
- 1.0 mm (39 mils)
- 1.5 mm (59 mils)
- 2.0 mm (79 mils)
Used tracks:
- 0.17 mm (7 mils) (43) defined: yes
- 0.21 mm (8 mils) (150) defined: yes
- 0.3 mm (12 mils) (193) defined: yes
- 0.4 mm (16 mils) (16) defined: yes
- 0.6 mm (24 mils) (52) defined: yes
- 0.8 mm (31 mils) (39) defined: yes
- 1.0 mm (39 mils) (83) defined: yes
- 1.5 mm (59 mils) (58) defined: yes
- 2.0 mm (79 mils) (2) defined: yes
Defined vias:
Used vias:
- 0.6/0.3 mm (24/12 mils) (Count: 242, Aspect: 2.7 A) defined: no
Holes (excluding vias):
- 0.8 mm (31 mils) (16)
- 1.0 mm (39 mils) (12)
- 1.3 mm (51 mils) (9)
- 1.5 mm (59 mils) (10)
- 2.4 mm (94 mils) (2)
- 3.2 mm (126 mils) (3)
Oval holes:
- 0.65x1.15 mm (26x45 mils) (2)
- 0.65x1.55 mm (26x61 mils) (2)
Drill tools (including vias and computing adjusts and rounding):
- 0.4 mm (16 mils) (242)
- 0.75 mm (30 mils) (4)
- 0.9 mm (35 mils) (16)
- 1.1 mm (43 mils) (12)
- 1.4 mm (55 mils) (9)
- 1.6 mm (63 mils) (10)
- 2.4 mm (94 mils) (2)
- 3.3 mm (130 mils) (3)
Solder paste stats:
Using a paste with 87.75 % alloy, that has an specific gravity for the alloy of 7.4 g/cm³
and 1.0 g/cm³ for the flux. This paste has an specific gravity of 4.15 g/cm³.
The stencil thickness is 0.12 mm.
| Side | Pads with paste | Area [mm²] | Paste [g] |
|--------|-----------------|------------|-----------|
| Top | 284 | 308.02 | 1.53 |
| Bottom | 53 | 69.05 | 0.34 |
| Total | 337 | 377.08 | 1.88 |
Note: this is just an approximation to the theoretical value. Margins of the solder mask and waste aren't computed.
# Schematic
![Schematic SVG](Schematic/c64psu-schematic.svg){ width=16.5cm height=11.7cm }
# PCB Layers
![PCB PDF](PCB/PDF/c64psu-pcb.pdf){ width=16.5cm height=11.7cm }
Binary file not shown.
+177
View File
@@ -0,0 +1,177 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.8708178" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.675350171" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32G474CBTx" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1396998678" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.228321373" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.246627769" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.569851536" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.493855913" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1904983327" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32G474CBTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32G4xx_HAL_Driver/Inc | ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32G4xx/Include | ../Drivers/CMSIS/Include || || || USE_HAL_DRIVER | STM32G474xx || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32G474CBTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1640224048" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="170" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1281027497" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/C64PSU}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.735311501" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.2006906671" name="MCU/MPU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1855830196" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.157180494" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1912403188" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1629961419" name="MCU/MPU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.381323083" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1032522822" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1506700134" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
<listOptionValue builtIn="false" value="STM32G474xx"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.505082228" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32G4xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32G4xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1739233053" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1959465196" name="MCU/MPU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1328862026" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1658628852" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.874144747" name="MCU/MPU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.805491319" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32G474CBTX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.2086841037" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.742594965" name="MCU/MPU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.447884668" name="MCU/MPU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.2084313060" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.166942023" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.1628172650" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1928881817" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1224520690" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1009979057" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.72889785" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.353202695" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.247084598" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32G474CBTx" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1792927124" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1582475621" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.636128663" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1043717698" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.hard" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.740239677" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.382897756" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.6 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32G474CBTx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Core/Inc | ../Drivers/STM32G4xx_HAL_Driver/Inc | ../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32G4xx/Include | ../Drivers/CMSIS/Include || || || USE_HAL_DRIVER | STM32G474xx || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32G474CBTX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || || || " valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.debug.option.cpuclock.1137781942" superClass="com.st.stm32cube.ide.mcu.debug.option.cpuclock" useByScannerDiscovery="false" value="170" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1467828888" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/C64PSU}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1030449639" managedBuildOn="true" name="Gnu Make Builder.Release" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.819839422" name="MCU/MPU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1416770793" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1009335607" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1435282348" name="MCU/MPU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.2052750479" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.271396770" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.872682043" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
<listOptionValue builtIn="false" value="STM32G474xx"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.81271307" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32G4xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32G4xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.159999454" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.23676458" name="MCU/MPU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1762026445" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1557761898" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.583093127" name="MCU/MPU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.740573275" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32G474CBTX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1525614507" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1015339789" name="MCU/MPU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1322389031" name="MCU/MPU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1409667175" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.432060545" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.743066654" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.2107066322" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1032671562" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1815606098" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.389915405" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="C64PSU.null.1845114449" name="C64PSU"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1629961419;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1739233053">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1435282348;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.159999454">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope"/>
</cproject>
+25
View File
File diff suppressed because one or more lines are too long
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>C64PSU</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.st.stm32cube.ide.mcu.MCUProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUCubeProjectNature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584" name="Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1564881755989101936" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
<configuration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1348968572" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1564881755989101936" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
</project>
@@ -0,0 +1,5 @@
635E684B79701B039C64EA45C3F84D30=A303B722E829A74A50F19E28DBC37946
66BE74F758C12D739921AEA421D593D3=3
8DF89ED150041C4CBC7CB9A9CAA90856=030A9442AEB48217A304EB6A045F69AD
DC22A860405A8BF2F2C095E5B6529F12=030A9442AEB48217A304EB6A045F69AD
eclipse.preferences.version=1
+86
View File
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.cubeprog_external_loaders" value="[]"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth__pwd_enable" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_certif_path" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_check_enable" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_key_path" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_permission" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.debug_auth_pwd_file" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/>
<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.incremental_flashing" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;Debug/C64PSU.elf&quot;,&quot;fProjectName&quot;:&quot;C64PSU&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="170000000"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.vector_table" value=""/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="C:\Users\janik\C64PSU\code\Debug\st-link_gdbserver_log.txt"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="true"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value="002E00173432510731373239"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkenable_rtos" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlinkrestart_configurations" value="{&quot;fVersion&quot;:1,&quot;fItems&quot;:[{&quot;fDisplayName&quot;:&quot;Reset&quot;,&quot;fIsSuppressible&quot;:false,&quot;fResetAttribute&quot;:&quot;Software system reset&quot;,&quot;fResetStrategies&quot;:[{&quot;fDisplayName&quot;:&quot;Software system reset&quot;,&quot;fLaunchAttribute&quot;:&quot;system_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Hardware reset&quot;,&quot;fLaunchAttribute&quot;:&quot;hardware_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset hardware\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;Core reset&quot;,&quot;fLaunchAttribute&quot;:&quot;core_reset&quot;,&quot;fGdbCommands&quot;:[&quot;monitor reset core\r\n&quot;],&quot;fCmdOptions&quot;:[&quot;-g&quot;]},{&quot;fDisplayName&quot;:&quot;None&quot;,&quot;fLaunchAttribute&quot;:&quot;no_reset&quot;,&quot;fGdbCommands&quot;:[],&quot;fCmdOptions&quot;:[&quot;-g&quot;]}],&quot;fGdbCommandGroup&quot;:{&quot;name&quot;:&quot;Additional commands&quot;,&quot;commands&quot;:[]},&quot;fStartApplication&quot;:true}]}"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.enableRtosProxy" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyCustomProperties" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriver" value="threadx"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverAuto" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyDriverPort" value="cortex_m0"/>
<intAttribute key="com.st.stm32cube.ide.mcu.rtosproxy.rtosProxyPort" value="60000"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDeviceId" value="com.st.stm32cube.ide.mcu.debug.stlink"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/C64PSU.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="C64PSU"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.65797584"/>
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/C64PSU"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
</launchConfiguration>
+337
View File
@@ -0,0 +1,337 @@
#MicroXplorer Configuration settings - do not modify
ADC3.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_5
ADC3.CommonPathInternal=null|null|null|null
ADC3.ContinuousConvMode=ENABLE
ADC3.DMAContinuousRequests=ENABLE
ADC3.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,ContinuousConvMode,DMAContinuousRequests,Overrun,CommonPathInternal
ADC3.NbrOfConversionFlag=1
ADC3.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC3.Overrun=ADC_OVR_DATA_OVERWRITTEN
ADC3.Rank-0\#ChannelRegularConversion=1
ADC3.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_247CYCLES_5
ADC3.master=1
ADC4.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_4
ADC4.CommonPathInternal=null|null|null|null
ADC4.ContinuousConvMode=ENABLE
ADC4.DMAContinuousRequests=ENABLE
ADC4.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,ContinuousConvMode,DMAContinuousRequests,Overrun,CommonPathInternal
ADC4.NbrOfConversionFlag=1
ADC4.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC4.Overrun=ADC_OVR_DATA_OVERWRITTEN
ADC4.Rank-0\#ChannelRegularConversion=1
ADC4.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_247CYCLES_5
CAD.formats=
CAD.pinconfig=
CAD.provider=
DAC1.DAC_Channel-DAC_OUT2_Int=DAC_CHANNEL_2
DAC1.IPParameters=DAC_Channel-DAC_OUT2_Int
Dma.ADC3.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.ADC3.0.EventEnable=DISABLE
Dma.ADC3.0.Instance=DMA1_Channel1
Dma.ADC3.0.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
Dma.ADC3.0.MemInc=DMA_MINC_ENABLE
Dma.ADC3.0.Mode=DMA_CIRCULAR
Dma.ADC3.0.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
Dma.ADC3.0.PeriphInc=DMA_PINC_DISABLE
Dma.ADC3.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.ADC3.0.Priority=DMA_PRIORITY_HIGH
Dma.ADC3.0.RequestNumber=1
Dma.ADC3.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.ADC3.0.SignalID=NONE
Dma.ADC3.0.SyncEnable=DISABLE
Dma.ADC3.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.ADC3.0.SyncRequestNumber=1
Dma.ADC3.0.SyncSignalID=NONE
Dma.ADC4.1.Direction=DMA_PERIPH_TO_MEMORY
Dma.ADC4.1.EventEnable=DISABLE
Dma.ADC4.1.Instance=DMA1_Channel2
Dma.ADC4.1.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
Dma.ADC4.1.MemInc=DMA_MINC_ENABLE
Dma.ADC4.1.Mode=DMA_CIRCULAR
Dma.ADC4.1.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
Dma.ADC4.1.PeriphInc=DMA_PINC_DISABLE
Dma.ADC4.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING
Dma.ADC4.1.Priority=DMA_PRIORITY_VERY_HIGH
Dma.ADC4.1.RequestNumber=1
Dma.ADC4.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
Dma.ADC4.1.SignalID=NONE
Dma.ADC4.1.SyncEnable=DISABLE
Dma.ADC4.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
Dma.ADC4.1.SyncRequestNumber=1
Dma.ADC4.1.SyncSignalID=NONE
Dma.Request0=ADC3
Dma.Request1=ADC4
Dma.RequestsNb=2
File.Version=6
GPIO.groupedBy=Group By Peripherals
HRTIM1.CompareUnit1-Output_TA1TA2=HRTIM_COMPAREUNIT_1
HRTIM1.CompareUnit1-Output_TB1TB2=HRTIM_COMPAREUNIT_1
HRTIM1.CompareValue1-Output_TA1TA2=0x0
HRTIM1.CompareValue1-Output_TB1TB2=0x0
HRTIM1.DeadTimeInsertion-Output_TB1TB2=HRTIM_TIMDEADTIMEINSERTION_DISABLED
HRTIM1.Event_EEV1=HRTIM_EVENT_1
HRTIM1.IPParameters=SyncOptions,Event_EEV1,CompareUnit1-Output_TB1TB2,CompareValue1-Output_TB1TB2,CompareUnit1-Output_TA1TA2,CompareValue1-Output_TA1TA2,Periode_MASTER,Periode_TB,PreloadEnable-Output_TB1TB2,RepetitionUpdate-Output_TB1TB2,DeadTimeInsertion-Output_TB1TB2,NumberUpdateTrigger-Output_TB1TB2,UpdateTrigger1-Output_TB1TB2,ResetUpdate-Output_TB1TB2,NumberResetTrigger-Output_TB1TB2,ResetTrigger1-Output_TB1TB2,NumberSetSource1-Output_TB1TB2,Periode_TA,SetOutput1_Source1-Output_TB1TB2,NumberResetSource1-Output_TB1TB2,ResetOutput1_Source1-Output_TB1TB2,NumberSetSource2_TB,SetOutput2_Source1-Output_TB1TB2,NumberResetSource2_TB,ResetOutput2_Source1-Output_TB1TB2,PreloadEnable-Output_TA1TA2,RepetitionUpdate-Output_TA1TA2,NumberUpdateTrigger-Output_TA1TA2,UpdateTrigger1-Output_TA1TA2,ResetUpdate-Output_TA1TA2,NumberResetTrigger-Output_TA1TA2,ResetTrigger1-Output_TA1TA2,NumberSetSource1-Output_TA1TA2,SetOutput1_Source1-Output_TA1TA2,NumberResetSource1-Output_TA1TA2,ResetOutput1_Source1-Output_TA1TA2,NumberSetSource2_TA,SetOutput2_Source1-Output_TA1TA2,NumberResetSource2_TA,ResetOutput2_Source1-Output_TA1TA2
HRTIM1.NumberResetSource1-Output_TA1TA2=1
HRTIM1.NumberResetSource1-Output_TB1TB2=1
HRTIM1.NumberResetSource2_TA=1
HRTIM1.NumberResetSource2_TB=1
HRTIM1.NumberResetTrigger-Output_TA1TA2=1
HRTIM1.NumberResetTrigger-Output_TB1TB2=1
HRTIM1.NumberSetSource1-Output_TA1TA2=1
HRTIM1.NumberSetSource1-Output_TB1TB2=1
HRTIM1.NumberSetSource2_TA=1
HRTIM1.NumberSetSource2_TB=1
HRTIM1.NumberUpdateTrigger-Output_TA1TA2=1
HRTIM1.NumberUpdateTrigger-Output_TB1TB2=1
HRTIM1.Periode_MASTER=0xD480
HRTIM1.Periode_TA=0xD480
HRTIM1.Periode_TB=0xD480
HRTIM1.PreloadEnable-Output_TA1TA2=HRTIM_PRELOAD_ENABLED
HRTIM1.PreloadEnable-Output_TB1TB2=HRTIM_PRELOAD_ENABLED
HRTIM1.RepetitionUpdate-Output_TA1TA2=HRTIM_UPDATEONREPETITION_ENABLED
HRTIM1.RepetitionUpdate-Output_TB1TB2=HRTIM_UPDATEONREPETITION_ENABLED
HRTIM1.ResetOutput1_Source1-Output_TA1TA2=HRTIM_OUTPUTRESET_TIMCMP1
HRTIM1.ResetOutput1_Source1-Output_TB1TB2=HRTIM_OUTPUTRESET_TIMCMP1
HRTIM1.ResetOutput2_Source1-Output_TA1TA2=HRTIM_OUTPUTRESET_TIMCMP1
HRTIM1.ResetOutput2_Source1-Output_TB1TB2=HRTIM_OUTPUTRESET_TIMCMP1
HRTIM1.ResetTrigger1-Output_TA1TA2=HRTIM_TIMRESETTRIGGER_MASTER_PER
HRTIM1.ResetTrigger1-Output_TB1TB2=HRTIM_TIMRESETTRIGGER_MASTER_PER
HRTIM1.ResetUpdate-Output_TA1TA2=HRTIM_TIMUPDATEONRESET_ENABLED
HRTIM1.ResetUpdate-Output_TB1TB2=HRTIM_TIMUPDATEONRESET_ENABLED
HRTIM1.SetOutput1_Source1-Output_TA1TA2=HRTIM_OUTPUTSET_TIMPER
HRTIM1.SetOutput1_Source1-Output_TB1TB2=HRTIM_OUTPUTSET_TIMPER
HRTIM1.SetOutput2_Source1-Output_TA1TA2=HRTIM_OUTPUTSET_TIMPER
HRTIM1.SetOutput2_Source1-Output_TB1TB2=HRTIM_OUTPUTSET_TIMPER
HRTIM1.SyncOptions=HRTIM_SYNCOPTION_NONE
HRTIM1.UpdateTrigger1-Output_TA1TA2=HRTIM_TIMUPDATETRIGGER_TIMER_A
HRTIM1.UpdateTrigger1-Output_TB1TB2=HRTIM_TIMUPDATETRIGGER_TIMER_B
KeepUserPlacement=false
Mcu.CPN=STM32G474CBT6TR
Mcu.Family=STM32G4
Mcu.IP0=ADC3
Mcu.IP1=ADC4
Mcu.IP10=NVIC
Mcu.IP11=RCC
Mcu.IP12=SYS
Mcu.IP13=TIM1
Mcu.IP14=USART1
Mcu.IP2=COMP5
Mcu.IP3=COMP7
Mcu.IP4=CORDIC
Mcu.IP5=DAC1
Mcu.IP6=DAC4
Mcu.IP7=DMA
Mcu.IP8=FMAC
Mcu.IP9=HRTIM1
Mcu.IPNb=15
Mcu.Name=STM32G474C(B-C-E)Tx
Mcu.Package=LQFP48
Mcu.Pin0=PF0-OSC_IN
Mcu.Pin1=PF1-OSC_OUT
Mcu.Pin10=PA13
Mcu.Pin11=PA14
Mcu.Pin12=PA15
Mcu.Pin13=PB3
Mcu.Pin14=PB6
Mcu.Pin15=PB7
Mcu.Pin16=VP_COMP5_VS_DAC1OUT2
Mcu.Pin17=VP_COMP7_VS_DAC4OUT1
Mcu.Pin18=VP_CORDIC_VS_CORDIC
Mcu.Pin19=VP_DAC1_VS_DACI2
Mcu.Pin2=PB11
Mcu.Pin20=VP_DAC4_VS_DACI1
Mcu.Pin21=VP_FMAC_VS_FMAC
Mcu.Pin22=VP_HRTIM1_VS_hrtimMasterTimerNoOutput
Mcu.Pin23=VP_SYS_V_VREFBUF
Mcu.Pin24=VP_SYS_VS_Systick
Mcu.Pin25=VP_SYS_VS_DBSignals
Mcu.Pin26=VP_TIM1_VS_ClockSourceINT
Mcu.Pin3=PB12
Mcu.Pin4=PB13
Mcu.Pin5=PB14
Mcu.Pin6=PA8
Mcu.Pin7=PA9
Mcu.Pin8=PA10
Mcu.Pin9=PA11
Mcu.PinsNb=27
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32G474CBTx
MxCube.Version=6.15.0
MxDb.Version=DB.6.0.150
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DMA1_Channel1_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Channel2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.TIM1_BRK_TIM15_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.TIM1_CC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.TIM1_TRG_COM_TIM17_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.TIM1_UP_TIM16_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA10.Mode=Output_TB1TB2
PA10.Signal=HRTIM1_CHB1
PA11.Mode=Output_TB1TB2
PA11.Signal=HRTIM1_CHB2
PA13.Mode=JTAG_4_pins
PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=JTAG_4_pins
PA14.Signal=SYS_JTCK-SWCLK
PA15.Mode=JTAG_4_pins
PA15.Signal=SYS_JTDI
PA8.Mode=Output_TA1TA2
PA8.Signal=HRTIM1_CHA1
PA9.Mode=Output_TA1TA2
PA9.Signal=HRTIM1_CHA2
PB11.GPIOParameters=GPIO_PuPd,GPIO_Label
PB11.GPIO_Label=ENABLE_DRVA
PB11.GPIO_PuPd=GPIO_PULLDOWN
PB11.Locked=true
PB11.Signal=GPIO_Output
PB12.GPIOParameters=GPIO_PuPd,GPIO_Label
PB12.GPIO_Label=ENABLE_DRVB
PB12.GPIO_PuPd=GPIO_PULLDOWN
PB12.Locked=true
PB12.Signal=GPIO_Output
PB13.GPIOParameters=GPIO_Label
PB13.GPIO_Label=VOLTAGE
PB13.Locked=true
PB13.Signal=SharedAnalog_PB13
PB14.GPIOParameters=GPIO_Label
PB14.GPIO_Label=CURRENT
PB14.Locked=true
PB14.Signal=SharedAnalog_PB14
PB3.Mode=JTAG_4_pins
PB3.Signal=SYS_JTDO-SWO
PB6.Locked=true
PB6.Mode=Asynchronous
PB6.Signal=USART1_TX
PB7.Locked=true
PB7.Mode=Asynchronous
PB7.Signal=USART1_RX
PF0-OSC_IN.Mode=HSE-External-Oscillator
PF0-OSC_IN.Signal=RCC_OSC_IN
PF1-OSC_OUT.Mode=HSE-External-Oscillator
PF1-OSC_OUT.Signal=RCC_OSC_OUT
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerLinker=GCC
ProjectManager.CompilerOptimize=6
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=false
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32G474CBTx
ProjectManager.FirmwarePackage=STM32Cube FW_G4 V1.6.1
ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=C64PSU.ioc
ProjectManager.ProjectName=C64PSU
ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM1_Init-TIM1-false-HAL-true,5-MX_CORDIC_Init-CORDIC-false-HAL-true,6-MX_FMAC_Init-FMAC-false-HAL-true,7-MX_ADC3_Init-ADC3-false-HAL-true,8-MX_ADC4_Init-ADC4-false-HAL-true,9-MX_COMP5_Init-COMP5-false-HAL-true,10-MX_COMP7_Init-COMP7-false-HAL-true,11-MX_DAC1_Init-DAC1-false-HAL-true,12-MX_DAC4_Init-DAC4-false-HAL-true,13-MX_HRTIM1_Init-HRTIM1-false-HAL-true,14-MX_USART1_UART_Init-USART1-false-HAL-true
RCC.ADC12Freq_Value=170000000
RCC.ADC345Freq_Value=170000000
RCC.AHBFreq_Value=170000000
RCC.APB1Freq_Value=170000000
RCC.APB1TimFreq_Value=170000000
RCC.APB2Freq_Value=170000000
RCC.APB2TimFreq_Value=170000000
RCC.CRSFreq_Value=48000000
RCC.CortexFreq_Value=170000000
RCC.EXTERNAL_CLOCK_VALUE=12288000
RCC.FCLKCortexFreq_Value=170000000
RCC.FDCANFreq_Value=170000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=170000000
RCC.HSE_VALUE=40000000
RCC.HSI48_VALUE=48000000
RCC.HSI_VALUE=16000000
RCC.I2C1Freq_Value=170000000
RCC.I2C2Freq_Value=170000000
RCC.I2C3Freq_Value=170000000
RCC.I2C4Freq_Value=170000000
RCC.I2SFreq_Value=170000000
RCC.IPParameters=ADC12Freq_Value,ADC345Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,QSPIFreq_Value,RNGFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
RCC.LPTIM1Freq_Value=170000000
RCC.LPUART1Freq_Value=170000000
RCC.LSCOPinFreq_Value=32000
RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000
RCC.MCO1PinFreq_Value=16000000
RCC.PLLM=RCC_PLLM_DIV4
RCC.PLLN=34
RCC.PLLPoutputFreq_Value=170000000
RCC.PLLQoutputFreq_Value=170000000
RCC.PLLRCLKFreq_Value=170000000
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.PWRFreq_Value=170000000
RCC.QSPIFreq_Value=170000000
RCC.RNGFreq_Value=170000000
RCC.SAI1Freq_Value=170000000
RCC.SYSCLKFreq_VALUE=170000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.USART1Freq_Value=170000000
RCC.USART2Freq_Value=170000000
RCC.USART3Freq_Value=170000000
RCC.USBFreq_Value=170000000
RCC.VCOInputFreq_Value=10000000
RCC.VCOOutputFreq_Value=340000000
SH.SharedAnalog_PB13.0=ADC3_IN5,IN5-Single-Ended
SH.SharedAnalog_PB13.1=COMP5_INP,INP
SH.SharedAnalog_PB13.ConfNb=2
SH.SharedAnalog_PB14.0=COMP7_INP,INP
SH.SharedAnalog_PB14.1=ADC4_IN4,IN4-Single-Ended
SH.SharedAnalog_PB14.ConfNb=2
TIM1.IPParameters=Prescaler,PeriodNoDither
TIM1.PeriodNoDither=20
TIM1.Prescaler=170-1
USART1.IPParameters=VirtualMode-Asynchronous
USART1.VirtualMode-Asynchronous=VM_ASYNC
VP_COMP5_VS_DAC1OUT2.Mode=INM_DAC1OUT2
VP_COMP5_VS_DAC1OUT2.Signal=COMP5_VS_DAC1OUT2
VP_COMP7_VS_DAC4OUT1.Mode=INM_DAC4OUT1
VP_COMP7_VS_DAC4OUT1.Signal=COMP7_VS_DAC4OUT1
VP_CORDIC_VS_CORDIC.Mode=CORDIC_Activate
VP_CORDIC_VS_CORDIC.Signal=CORDIC_VS_CORDIC
VP_DAC1_VS_DACI2.Mode=DAC_OUT2_Int
VP_DAC1_VS_DACI2.Signal=DAC1_VS_DACI2
VP_DAC4_VS_DACI1.Mode=DAC_OUT1_Int
VP_DAC4_VS_DACI1.Signal=DAC4_VS_DACI1
VP_FMAC_VS_FMAC.Mode=FMAC_Activate
VP_FMAC_VS_FMAC.Signal=FMAC_VS_FMAC
VP_HRTIM1_VS_hrtimMasterTimerNoOutput.Mode=MasterTimer
VP_HRTIM1_VS_hrtimMasterTimerNoOutput.Signal=HRTIM1_VS_hrtimMasterTimerNoOutput
VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_SYS_V_VREFBUF.Mode=ExternalMode
VP_SYS_V_VREFBUF.Signal=SYS_V_VREFBUF
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
board=custom
isbadioc=false
+79
View File
@@ -0,0 +1,79 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.h
* @brief : Header for main.c file.
* This file contains the common defines of the application.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32g4xx_hal.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
void HAL_HRTIM_MspPostInit(HRTIM_HandleTypeDef *hhrtim);
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define ENABLE_DRVA_Pin GPIO_PIN_11
#define ENABLE_DRVA_GPIO_Port GPIOB
#define ENABLE_DRVB_Pin GPIO_PIN_12
#define ENABLE_DRVB_GPIO_Port GPIOB
#define VOLTAGE_Pin GPIO_PIN_13
#define VOLTAGE_GPIO_Port GPIOB
#define CURRENT_Pin GPIO_PIN_14
#define CURRENT_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */
+380
View File
@@ -0,0 +1,380 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32g4xx_hal_conf.h
* @author MCD Application Team
* @brief HAL configuration file
******************************************************************************
* @attention
*
* Copyright (c) 2019 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef STM32G4xx_HAL_CONF_H
#define STM32G4xx_HAL_CONF_H
#ifdef __cplusplus
extern "C" {
#endif
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* ########################## Module Selection ############################## */
/**
* @brief This is the list of modules to be used in the HAL driver
*/
#define HAL_MODULE_ENABLED
#define HAL_ADC_MODULE_ENABLED
#define HAL_COMP_MODULE_ENABLED
#define HAL_CORDIC_MODULE_ENABLED
/*#define HAL_CRC_MODULE_ENABLED */
/*#define HAL_CRYP_MODULE_ENABLED */
#define HAL_DAC_MODULE_ENABLED
/*#define HAL_FDCAN_MODULE_ENABLED */
#define HAL_FMAC_MODULE_ENABLED
#define HAL_HRTIM_MODULE_ENABLED
/*#define HAL_IRDA_MODULE_ENABLED */
/*#define HAL_IWDG_MODULE_ENABLED */
/*#define HAL_I2C_MODULE_ENABLED */
/*#define HAL_I2S_MODULE_ENABLED */
/*#define HAL_LPTIM_MODULE_ENABLED */
/*#define HAL_NAND_MODULE_ENABLED */
/*#define HAL_NOR_MODULE_ENABLED */
/*#define HAL_OPAMP_MODULE_ENABLED */
/*#define HAL_PCD_MODULE_ENABLED */
/*#define HAL_QSPI_MODULE_ENABLED */
/*#define HAL_RNG_MODULE_ENABLED */
/*#define HAL_RTC_MODULE_ENABLED */
/*#define HAL_SAI_MODULE_ENABLED */
/*#define HAL_SMARTCARD_MODULE_ENABLED */
/*#define HAL_SMBUS_MODULE_ENABLED */
/*#define HAL_SPI_MODULE_ENABLED */
/*#define HAL_SRAM_MODULE_ENABLED */
#define HAL_TIM_MODULE_ENABLED
#define HAL_UART_MODULE_ENABLED
/*#define HAL_USART_MODULE_ENABLED */
/*#define HAL_WWDG_MODULE_ENABLED */
#define HAL_GPIO_MODULE_ENABLED
#define HAL_EXTI_MODULE_ENABLED
#define HAL_DMA_MODULE_ENABLED
#define HAL_RCC_MODULE_ENABLED
#define HAL_FLASH_MODULE_ENABLED
#define HAL_PWR_MODULE_ENABLED
#define HAL_CORTEX_MODULE_ENABLED
/* ########################## Register Callbacks selection ############################## */
/**
* @brief This is the list of modules where register callback can be used
*/
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U
#define USE_HAL_COMP_REGISTER_CALLBACKS 0U
#define USE_HAL_CORDIC_REGISTER_CALLBACKS 0U
#define USE_HAL_CRYP_REGISTER_CALLBACKS 0U
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U
#define USE_HAL_EXTI_REGISTER_CALLBACKS 0U
#define USE_HAL_FDCAN_REGISTER_CALLBACKS 0U
#define USE_HAL_FMAC_REGISTER_CALLBACKS 0U
#define USE_HAL_HRTIM_REGISTER_CALLBACKS 0U
#define USE_HAL_I2C_REGISTER_CALLBACKS 0U
#define USE_HAL_I2S_REGISTER_CALLBACKS 0U
#define USE_HAL_IRDA_REGISTER_CALLBACKS 0U
#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U
#define USE_HAL_NAND_REGISTER_CALLBACKS 0U
#define USE_HAL_NOR_REGISTER_CALLBACKS 0U
#define USE_HAL_OPAMP_REGISTER_CALLBACKS 0U
#define USE_HAL_PCD_REGISTER_CALLBACKS 0U
#define USE_HAL_QSPI_REGISTER_CALLBACKS 0U
#define USE_HAL_RNG_REGISTER_CALLBACKS 0U
#define USE_HAL_RTC_REGISTER_CALLBACKS 0U
#define USE_HAL_SAI_REGISTER_CALLBACKS 0U
#define USE_HAL_SMARTCARD_REGISTER_CALLBACKS 0U
#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0U
#define USE_HAL_SPI_REGISTER_CALLBACKS 0U
#define USE_HAL_SRAM_REGISTER_CALLBACKS 0U
#define USE_HAL_TIM_REGISTER_CALLBACKS 0U
#define USE_HAL_UART_REGISTER_CALLBACKS 0U
#define USE_HAL_USART_REGISTER_CALLBACKS 0U
#define USE_HAL_WWDG_REGISTER_CALLBACKS 0U
/* ########################## Oscillator Values adaptation ####################*/
/**
* @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSE is used as system clock source, directly or through the PLL).
*/
#if !defined (HSE_VALUE)
#define HSE_VALUE (40000000UL) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSE_STARTUP_TIMEOUT)
#define HSE_STARTUP_TIMEOUT (100UL) /*!< Time out for HSE start up, in ms */
#endif /* HSE_STARTUP_TIMEOUT */
/**
* @brief Internal High Speed oscillator (HSI) value.
* This value is used by the RCC HAL module to compute the system frequency
* (when HSI is used as system clock source, directly or through the PLL).
*/
#if !defined (HSI_VALUE)
#define HSI_VALUE (16000000UL) /*!< Value of the Internal oscillator in Hz*/
#endif /* HSI_VALUE */
/**
* @brief Internal High Speed oscillator (HSI48) value for USB FS and RNG.
* This internal oscillator is mainly dedicated to provide a high precision clock to
* the USB peripheral by means of a special Clock Recovery System (CRS) circuitry.
* When the CRS is not used, the HSI48 RC oscillator runs on it default frequency
* which is subject to manufacturing process variations.
*/
#if !defined (HSI48_VALUE)
#define HSI48_VALUE (48000000UL) /*!< Value of the Internal High Speed oscillator for USB FS/RNG in Hz.
The real value my vary depending on manufacturing process variations.*/
#endif /* HSI48_VALUE */
/**
* @brief Internal Low Speed oscillator (LSI) value.
*/
#if !defined (LSI_VALUE)
/*!< Value of the Internal Low Speed oscillator in Hz
The real value may vary depending on the variations in voltage and temperature.*/
#define LSI_VALUE (32000UL) /*!< LSI Typical Value in Hz*/
#endif /* LSI_VALUE */
/**
* @brief External Low Speed oscillator (LSE) value.
* This value is used by the UART, RTC HAL module to compute the system frequency
*/
#if !defined (LSE_VALUE)
#define LSE_VALUE (32768UL) /*!< Value of the External Low Speed oscillator in Hz */
#endif /* LSE_VALUE */
#if !defined (LSE_STARTUP_TIMEOUT)
#define LSE_STARTUP_TIMEOUT (5000UL) /*!< Time out for LSE start up, in ms */
#endif /* LSE_STARTUP_TIMEOUT */
/**
* @brief External clock source for I2S and SAI peripherals
* This value is used by the I2S and SAI HAL modules to compute the I2S and SAI clock source
* frequency, this source is inserted directly through I2S_CKIN pad.
*/
#if !defined (EXTERNAL_CLOCK_VALUE)
#define EXTERNAL_CLOCK_VALUE (12288000UL) /*!< Value of the External oscillator in Hz*/
#endif /* EXTERNAL_CLOCK_VALUE */
/* Tip: To avoid modifying this file each time you need to use different HSE,
=== you can define the HSE value in your toolchain compiler preprocessor. */
/* ########################### System Configuration ######################### */
/**
* @brief This is the HAL system configuration section
*/
#define VDD_VALUE (3300UL) /*!< Value of VDD in mv */
#define TICK_INT_PRIORITY (15UL) /*!< tick interrupt priority (lowest by default) */
#define USE_RTOS 0U
#define PREFETCH_ENABLE 0U
#define INSTRUCTION_CACHE_ENABLE 1U
#define DATA_CACHE_ENABLE 1U
/* ########################## Assert Selection ############################## */
/**
* @brief Uncomment the line below to expanse the "assert_param" macro in the
* HAL drivers code
*/
/* #define USE_FULL_ASSERT 1U */
/* ################## SPI peripheral configuration ########################## */
/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
* Activated: CRC code is present inside driver
* Deactivated: CRC code cleaned from driver
*/
#define USE_SPI_CRC 0U
/* Includes ------------------------------------------------------------------*/
/**
* @brief Include module's header file
*/
#ifdef HAL_RCC_MODULE_ENABLED
#include "stm32g4xx_hal_rcc.h"
#endif /* HAL_RCC_MODULE_ENABLED */
#ifdef HAL_GPIO_MODULE_ENABLED
#include "stm32g4xx_hal_gpio.h"
#endif /* HAL_GPIO_MODULE_ENABLED */
#ifdef HAL_DMA_MODULE_ENABLED
#include "stm32g4xx_hal_dma.h"
#endif /* HAL_DMA_MODULE_ENABLED */
#ifdef HAL_CORTEX_MODULE_ENABLED
#include "stm32g4xx_hal_cortex.h"
#endif /* HAL_CORTEX_MODULE_ENABLED */
#ifdef HAL_ADC_MODULE_ENABLED
#include "stm32g4xx_hal_adc.h"
#endif /* HAL_ADC_MODULE_ENABLED */
#ifdef HAL_COMP_MODULE_ENABLED
#include "stm32g4xx_hal_comp.h"
#endif /* HAL_COMP_MODULE_ENABLED */
#ifdef HAL_CORDIC_MODULE_ENABLED
#include "stm32g4xx_hal_cordic.h"
#endif /* HAL_CORDIC_MODULE_ENABLED */
#ifdef HAL_CRC_MODULE_ENABLED
#include "stm32g4xx_hal_crc.h"
#endif /* HAL_CRC_MODULE_ENABLED */
#ifdef HAL_CRYP_MODULE_ENABLED
#include "stm32g4xx_hal_cryp.h"
#endif /* HAL_CRYP_MODULE_ENABLED */
#ifdef HAL_DAC_MODULE_ENABLED
#include "stm32g4xx_hal_dac.h"
#endif /* HAL_DAC_MODULE_ENABLED */
#ifdef HAL_EXTI_MODULE_ENABLED
#include "stm32g4xx_hal_exti.h"
#endif /* HAL_EXTI_MODULE_ENABLED */
#ifdef HAL_FDCAN_MODULE_ENABLED
#include "stm32g4xx_hal_fdcan.h"
#endif /* HAL_FDCAN_MODULE_ENABLED */
#ifdef HAL_FLASH_MODULE_ENABLED
#include "stm32g4xx_hal_flash.h"
#endif /* HAL_FLASH_MODULE_ENABLED */
#ifdef HAL_FMAC_MODULE_ENABLED
#include "stm32g4xx_hal_fmac.h"
#endif /* HAL_FMAC_MODULE_ENABLED */
#ifdef HAL_HRTIM_MODULE_ENABLED
#include "stm32g4xx_hal_hrtim.h"
#endif /* HAL_HRTIM_MODULE_ENABLED */
#ifdef HAL_IRDA_MODULE_ENABLED
#include "stm32g4xx_hal_irda.h"
#endif /* HAL_IRDA_MODULE_ENABLED */
#ifdef HAL_IWDG_MODULE_ENABLED
#include "stm32g4xx_hal_iwdg.h"
#endif /* HAL_IWDG_MODULE_ENABLED */
#ifdef HAL_I2C_MODULE_ENABLED
#include "stm32g4xx_hal_i2c.h"
#endif /* HAL_I2C_MODULE_ENABLED */
#ifdef HAL_I2S_MODULE_ENABLED
#include "stm32g4xx_hal_i2s.h"
#endif /* HAL_I2S_MODULE_ENABLED */
#ifdef HAL_LPTIM_MODULE_ENABLED
#include "stm32g4xx_hal_lptim.h"
#endif /* HAL_LPTIM_MODULE_ENABLED */
#ifdef HAL_NAND_MODULE_ENABLED
#include "stm32g4xx_hal_nand.h"
#endif /* HAL_NAND_MODULE_ENABLED */
#ifdef HAL_NOR_MODULE_ENABLED
#include "stm32g4xx_hal_nor.h"
#endif /* HAL_NOR_MODULE_ENABLED */
#ifdef HAL_OPAMP_MODULE_ENABLED
#include "stm32g4xx_hal_opamp.h"
#endif /* HAL_OPAMP_MODULE_ENABLED */
#ifdef HAL_PCD_MODULE_ENABLED
#include "stm32g4xx_hal_pcd.h"
#endif /* HAL_PCD_MODULE_ENABLED */
#ifdef HAL_PWR_MODULE_ENABLED
#include "stm32g4xx_hal_pwr.h"
#endif /* HAL_PWR_MODULE_ENABLED */
#ifdef HAL_QSPI_MODULE_ENABLED
#include "stm32g4xx_hal_qspi.h"
#endif /* HAL_QSPI_MODULE_ENABLED */
#ifdef HAL_RNG_MODULE_ENABLED
#include "stm32g4xx_hal_rng.h"
#endif /* HAL_RNG_MODULE_ENABLED */
#ifdef HAL_RTC_MODULE_ENABLED
#include "stm32g4xx_hal_rtc.h"
#endif /* HAL_RTC_MODULE_ENABLED */
#ifdef HAL_SAI_MODULE_ENABLED
#include "stm32g4xx_hal_sai.h"
#endif /* HAL_SAI_MODULE_ENABLED */
#ifdef HAL_SMARTCARD_MODULE_ENABLED
#include "stm32g4xx_hal_smartcard.h"
#endif /* HAL_SMARTCARD_MODULE_ENABLED */
#ifdef HAL_SMBUS_MODULE_ENABLED
#include "stm32g4xx_hal_smbus.h"
#endif /* HAL_SMBUS_MODULE_ENABLED */
#ifdef HAL_SPI_MODULE_ENABLED
#include "stm32g4xx_hal_spi.h"
#endif /* HAL_SPI_MODULE_ENABLED */
#ifdef HAL_SRAM_MODULE_ENABLED
#include "stm32g4xx_hal_sram.h"
#endif /* HAL_SRAM_MODULE_ENABLED */
#ifdef HAL_TIM_MODULE_ENABLED
#include "stm32g4xx_hal_tim.h"
#endif /* HAL_TIM_MODULE_ENABLED */
#ifdef HAL_UART_MODULE_ENABLED
#include "stm32g4xx_hal_uart.h"
#endif /* HAL_UART_MODULE_ENABLED */
#ifdef HAL_USART_MODULE_ENABLED
#include "stm32g4xx_hal_usart.h"
#endif /* HAL_USART_MODULE_ENABLED */
#ifdef HAL_WWDG_MODULE_ENABLED
#include "stm32g4xx_hal_wwdg.h"
#endif /* HAL_WWDG_MODULE_ENABLED */
/* Exported macro ------------------------------------------------------------*/
#ifdef USE_FULL_ASSERT
/**
* @brief The assert_param macro is used for function's parameters check.
* @param expr: If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* @retval None
*/
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(uint8_t *file, uint32_t line);
#else
#define assert_param(expr) ((void)0U)
#endif /* USE_FULL_ASSERT */
#ifdef __cplusplus
}
#endif
#endif /* STM32G4xx_HAL_CONF_H */
+72
View File
@@ -0,0 +1,72 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32g4xx_it.h
* @brief This file contains the headers of the interrupt handlers.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32G4xx_IT_H
#define __STM32G4xx_IT_H
#ifdef __cplusplus
extern "C" {
#endif
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void NMI_Handler(void);
void HardFault_Handler(void);
void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void DMA1_Channel1_IRQHandler(void);
void DMA1_Channel2_IRQHandler(void);
void TIM1_BRK_TIM15_IRQHandler(void);
void TIM1_UP_TIM16_IRQHandler(void);
void TIM1_TRG_COM_TIM17_IRQHandler(void);
void TIM1_CC_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
#ifdef __cplusplus
}
#endif
#endif /* __STM32G4xx_IT_H */
+963
View File
@@ -0,0 +1,963 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.c
* @brief : Main program body
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
/* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc3;
ADC_HandleTypeDef hadc4;
DMA_HandleTypeDef hdma_adc3;
DMA_HandleTypeDef hdma_adc4;
COMP_HandleTypeDef hcomp5;
COMP_HandleTypeDef hcomp7;
CORDIC_HandleTypeDef hcordic;
DAC_HandleTypeDef hdac1;
DAC_HandleTypeDef hdac4;
FMAC_HandleTypeDef hfmac;
HRTIM_HandleTypeDef hhrtim1;
TIM_HandleTypeDef htim1;
UART_HandleTypeDef huart1;
/* USER CODE BEGIN PV */
uint16_t time = 0;
#include <stdint.h>
const uint16_t pwm_sine[500] = {
0, 0, 548, 822, 1096, 1370, 1644, 1917, 2191, 2465,
2738, 3012, 3285, 3558, 3831, 4104, 4376, 4649, 4921, 5193,
5465, 5737, 6009, 6280, 6551, 6822, 7092, 7362, 7632, 7902,
8171, 8440, 8709, 8977, 9245, 9512, 9779, 10046, 10313, 10579,
10844, 11109, 11374, 11638, 11902, 12165, 12428, 12691, 12952, 13214,
13474, 13735, 13994, 14254, 14512, 14770, 15028, 15285, 15541, 15796,
16051, 16306, 16559, 16812, 17065, 17317, 17568, 17818, 18068, 18316,
18565, 18812, 19059, 19305, 19550, 19794, 20038, 20281, 20523, 20764,
21004, 21244, 21483, 21720, 21957, 22194, 22429, 22663, 22897, 23129,
23361, 23592, 23821, 24050, 24278, 24505, 24731, 24956, 25180, 25403,
25625, 25846, 26066, 26285, 26502, 26719, 26935, 27150, 27363, 27576,
27787, 27997, 28207, 28415, 28622, 28828, 29032, 29236, 29438, 29639,
29839, 30038, 30236, 30432, 30628, 30822, 31015, 31206, 31396, 31586,
31773, 31960, 32145, 32329, 32512, 32694, 32874, 33053, 33230, 33407,
33582, 33755, 33927, 34098, 34268, 34436, 34603, 34769, 34933, 35095,
35257, 35417, 35575, 35732, 35888, 36042, 36195, 36346, 36496, 36645,
36792, 36938, 37082, 37225, 37366, 37505, 37644, 37780, 37916, 38049,
38182, 38312, 38442, 38569, 38695, 38820, 38943, 39065, 39185, 39303,
39420, 39535, 39649, 39761, 39872, 39981, 40088, 40194, 40298, 40401,
40502, 40602, 40699, 40796, 40890, 40983, 41075, 41164, 41252, 41339,
41424, 41507, 41588, 41668, 41747, 41823, 41898, 41971, 42043, 42113,
42181, 42248, 42313, 42376, 42438, 42497, 42556, 42612, 42667, 42720,
42772, 42821, 42869, 42916, 42960, 43003, 43045, 43084, 43122, 43158,
43192, 43225, 43256, 43285, 43313, 43339, 43363, 43385, 43406, 43425,
43442, 43458, 43471, 43484, 43494, 43503, 43509, 43515, 43518, 43520,
43520, 43518, 43515, 43509, 43503, 43494, 43484, 43471, 43458, 43442,
43425, 43406, 43385, 43363, 43339, 43313, 43285, 43256, 43225, 43192,
43158, 43122, 43084, 43045, 43003, 42960, 42916, 42869, 42821, 42772,
42720, 42667, 42612, 42556, 42497, 42438, 42376, 42313, 42248, 42181,
42113, 42043, 41971, 41898, 41823, 41747, 41668, 41588, 41507, 41424,
41339, 41252, 41164, 41075, 40983, 40890, 40796, 40699, 40602, 40502,
40401, 40298, 40194, 40088, 39981, 39872, 39761, 39649, 39535, 39420,
39303, 39185, 39065, 38943, 38820, 38695, 38569, 38442, 38312, 38182,
38049, 37916, 37780, 37644, 37505, 37366, 37225, 37082, 36938, 36792,
36645, 36496, 36346, 36195, 36042, 35888, 35732, 35575, 35417, 35257,
35095, 34933, 34769, 34603, 34436, 34268, 34098, 33927, 33755, 33582,
33407, 33230, 33053, 32874, 32694, 32512, 32329, 32145, 31960, 31773,
31586, 31396, 31206, 31015, 30822, 30628, 30432, 30236, 30038, 29839,
29639, 29438, 29236, 29032, 28828, 28622, 28415, 28207, 27997, 27787,
27576, 27363, 27150, 26935, 26719, 26502, 26285, 26066, 25846, 25625,
25403, 25180, 24956, 24731, 24505, 24278, 24050, 23821, 23592, 23361,
23129, 22897, 22663, 22429, 22194, 21957, 21720, 21483, 21244, 21004,
20764, 20523, 20281, 20038, 19794, 19550, 19305, 19059, 18812, 18565,
18316, 18068, 17818, 17568, 17317, 17065, 16812, 16559, 16306, 16051,
15796, 15541, 15285, 15028, 14770, 14512, 14254, 13994, 13735, 13474,
13214, 12952, 12691, 12428, 12165, 11902, 11638, 11374, 11109, 10844,
10579, 10313, 10046, 9779, 9512, 9245, 8977, 8709, 8440, 8171,
7902, 7632, 7362, 7092, 6822, 6551, 6280, 6009, 5737, 5465,
5193, 4921, 4649, 4376, 4104, 3831, 3558, 3285, 3012, 2738,
2465, 2191, 1917, 1644, 1370, 1096, 822, 548, 0, 0
};
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_TIM1_Init(void);
static void MX_CORDIC_Init(void);
static void MX_FMAC_Init(void);
static void MX_ADC3_Init(void);
static void MX_ADC4_Init(void);
static void MX_COMP5_Init(void);
static void MX_COMP7_Init(void);
static void MX_DAC1_Init(void);
static void MX_DAC4_Init(void);
static void MX_HRTIM1_Init(void);
static void MX_USART1_UART_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_TIM1_Init();
MX_CORDIC_Init();
MX_FMAC_Init();
MX_ADC3_Init();
MX_ADC4_Init();
MX_COMP5_Init();
MX_COMP7_Init();
MX_DAC1_Init();
MX_DAC4_Init();
MX_HRTIM1_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(ENABLE_DRVA_GPIO_Port,ENABLE_DRVA_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(ENABLE_DRVB_GPIO_Port,ENABLE_DRVA_Pin,GPIO_PIN_RESET);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
HAL_HRTIM_WaveformCountStart(&hhrtim1,HRTIM_TIMERID_MASTER|HRTIM_TIMERID_TIMER_A|HRTIM_TIMERID_TIMER_B);
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Configure the main internal regulator output voltage
*/
HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = RCC_PLLM_DIV4;
RCC_OscInitStruct.PLL.PLLN = 34;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
{
Error_Handler();
}
}
/**
* @brief ADC3 Initialization Function
* @param None
* @retval None
*/
static void MX_ADC3_Init(void)
{
/* USER CODE BEGIN ADC3_Init 0 */
/* USER CODE END ADC3_Init 0 */
ADC_MultiModeTypeDef multimode = {0};
ADC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN ADC3_Init 1 */
/* USER CODE END ADC3_Init 1 */
/** Common config
*/
hadc3.Instance = ADC3;
hadc3.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
hadc3.Init.Resolution = ADC_RESOLUTION_12B;
hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc3.Init.GainCompensation = 0;
hadc3.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
hadc3.Init.LowPowerAutoWait = DISABLE;
hadc3.Init.ContinuousConvMode = ENABLE;
hadc3.Init.NbrOfConversion = 1;
hadc3.Init.DiscontinuousConvMode = DISABLE;
hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc3.Init.DMAContinuousRequests = ENABLE;
hadc3.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
hadc3.Init.OversamplingMode = DISABLE;
if (HAL_ADC_Init(&hadc3) != HAL_OK)
{
Error_Handler();
}
/** Configure the ADC multi-mode
*/
multimode.Mode = ADC_MODE_INDEPENDENT;
if (HAL_ADCEx_MultiModeConfigChannel(&hadc3, &multimode) != HAL_OK)
{
Error_Handler();
}
/** Configure Regular Channel
*/
sConfig.Channel = ADC_CHANNEL_5;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5;
sConfig.SingleDiff = ADC_SINGLE_ENDED;
sConfig.OffsetNumber = ADC_OFFSET_NONE;
sConfig.Offset = 0;
if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN ADC3_Init 2 */
/* USER CODE END ADC3_Init 2 */
}
/**
* @brief ADC4 Initialization Function
* @param None
* @retval None
*/
static void MX_ADC4_Init(void)
{
/* USER CODE BEGIN ADC4_Init 0 */
/* USER CODE END ADC4_Init 0 */
ADC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN ADC4_Init 1 */
/* USER CODE END ADC4_Init 1 */
/** Common config
*/
hadc4.Instance = ADC4;
hadc4.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
hadc4.Init.Resolution = ADC_RESOLUTION_12B;
hadc4.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc4.Init.GainCompensation = 0;
hadc4.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc4.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
hadc4.Init.LowPowerAutoWait = DISABLE;
hadc4.Init.ContinuousConvMode = ENABLE;
hadc4.Init.NbrOfConversion = 1;
hadc4.Init.DiscontinuousConvMode = DISABLE;
hadc4.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc4.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc4.Init.DMAContinuousRequests = ENABLE;
hadc4.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
hadc4.Init.OversamplingMode = DISABLE;
if (HAL_ADC_Init(&hadc4) != HAL_OK)
{
Error_Handler();
}
/** Configure Regular Channel
*/
sConfig.Channel = ADC_CHANNEL_4;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5;
sConfig.SingleDiff = ADC_SINGLE_ENDED;
sConfig.OffsetNumber = ADC_OFFSET_NONE;
sConfig.Offset = 0;
if (HAL_ADC_ConfigChannel(&hadc4, &sConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN ADC4_Init 2 */
/* USER CODE END ADC4_Init 2 */
}
/**
* @brief COMP5 Initialization Function
* @param None
* @retval None
*/
static void MX_COMP5_Init(void)
{
/* USER CODE BEGIN COMP5_Init 0 */
/* USER CODE END COMP5_Init 0 */
/* USER CODE BEGIN COMP5_Init 1 */
/* USER CODE END COMP5_Init 1 */
hcomp5.Instance = COMP5;
hcomp5.Init.InputPlus = COMP_INPUT_PLUS_IO1;
hcomp5.Init.InputMinus = COMP_INPUT_MINUS_DAC1_CH2;
hcomp5.Init.OutputPol = COMP_OUTPUTPOL_NONINVERTED;
hcomp5.Init.Hysteresis = COMP_HYSTERESIS_NONE;
hcomp5.Init.BlankingSrce = COMP_BLANKINGSRC_NONE;
hcomp5.Init.TriggerMode = COMP_TRIGGERMODE_NONE;
if (HAL_COMP_Init(&hcomp5) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN COMP5_Init 2 */
/* USER CODE END COMP5_Init 2 */
}
/**
* @brief COMP7 Initialization Function
* @param None
* @retval None
*/
static void MX_COMP7_Init(void)
{
/* USER CODE BEGIN COMP7_Init 0 */
/* USER CODE END COMP7_Init 0 */
/* USER CODE BEGIN COMP7_Init 1 */
/* USER CODE END COMP7_Init 1 */
hcomp7.Instance = COMP7;
hcomp7.Init.InputPlus = COMP_INPUT_PLUS_IO1;
hcomp7.Init.InputMinus = COMP_INPUT_MINUS_DAC4_CH1;
hcomp7.Init.OutputPol = COMP_OUTPUTPOL_NONINVERTED;
hcomp7.Init.Hysteresis = COMP_HYSTERESIS_NONE;
hcomp7.Init.BlankingSrce = COMP_BLANKINGSRC_NONE;
hcomp7.Init.TriggerMode = COMP_TRIGGERMODE_NONE;
if (HAL_COMP_Init(&hcomp7) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN COMP7_Init 2 */
/* USER CODE END COMP7_Init 2 */
}
/**
* @brief CORDIC Initialization Function
* @param None
* @retval None
*/
static void MX_CORDIC_Init(void)
{
/* USER CODE BEGIN CORDIC_Init 0 */
/* USER CODE END CORDIC_Init 0 */
/* USER CODE BEGIN CORDIC_Init 1 */
/* USER CODE END CORDIC_Init 1 */
hcordic.Instance = CORDIC;
if (HAL_CORDIC_Init(&hcordic) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN CORDIC_Init 2 */
/* USER CODE END CORDIC_Init 2 */
}
/**
* @brief DAC1 Initialization Function
* @param None
* @retval None
*/
static void MX_DAC1_Init(void)
{
/* USER CODE BEGIN DAC1_Init 0 */
/* USER CODE END DAC1_Init 0 */
DAC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN DAC1_Init 1 */
/* USER CODE END DAC1_Init 1 */
/** DAC Initialization
*/
hdac1.Instance = DAC1;
if (HAL_DAC_Init(&hdac1) != HAL_OK)
{
Error_Handler();
}
/** DAC channel OUT2 config
*/
sConfig.DAC_HighFrequency = DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC;
sConfig.DAC_DMADoubleDataMode = DISABLE;
sConfig.DAC_SignedFormat = DISABLE;
sConfig.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_DISABLE;
sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
sConfig.DAC_Trigger2 = DAC_TRIGGER_NONE;
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_DISABLE;
sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_INTERNAL;
sConfig.DAC_UserTrimming = DAC_TRIMMING_FACTORY;
if (HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_2) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN DAC1_Init 2 */
/* USER CODE END DAC1_Init 2 */
}
/**
* @brief DAC4 Initialization Function
* @param None
* @retval None
*/
static void MX_DAC4_Init(void)
{
/* USER CODE BEGIN DAC4_Init 0 */
/* USER CODE END DAC4_Init 0 */
DAC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN DAC4_Init 1 */
/* USER CODE END DAC4_Init 1 */
/** DAC Initialization
*/
hdac4.Instance = DAC4;
if (HAL_DAC_Init(&hdac4) != HAL_OK)
{
Error_Handler();
}
/** DAC channel OUT1 config
*/
sConfig.DAC_HighFrequency = DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC;
sConfig.DAC_DMADoubleDataMode = DISABLE;
sConfig.DAC_SignedFormat = DISABLE;
sConfig.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_DISABLE;
sConfig.DAC_Trigger = DAC_TRIGGER_NONE;
sConfig.DAC_Trigger2 = DAC_TRIGGER_NONE;
sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_DISABLE;
sConfig.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_INTERNAL;
sConfig.DAC_UserTrimming = DAC_TRIMMING_FACTORY;
if (HAL_DAC_ConfigChannel(&hdac4, &sConfig, DAC_CHANNEL_1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN DAC4_Init 2 */
/* USER CODE END DAC4_Init 2 */
}
/**
* @brief FMAC Initialization Function
* @param None
* @retval None
*/
static void MX_FMAC_Init(void)
{
/* USER CODE BEGIN FMAC_Init 0 */
/* USER CODE END FMAC_Init 0 */
/* USER CODE BEGIN FMAC_Init 1 */
/* USER CODE END FMAC_Init 1 */
hfmac.Instance = FMAC;
if (HAL_FMAC_Init(&hfmac) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN FMAC_Init 2 */
/* USER CODE END FMAC_Init 2 */
}
/**
* @brief HRTIM1 Initialization Function
* @param None
* @retval None
*/
static void MX_HRTIM1_Init(void)
{
/* USER CODE BEGIN HRTIM1_Init 0 */
/* USER CODE END HRTIM1_Init 0 */
HRTIM_EventCfgTypeDef pEventCfg = {0};
HRTIM_TimeBaseCfgTypeDef pTimeBaseCfg = {0};
HRTIM_TimerCfgTypeDef pTimerCfg = {0};
HRTIM_TimerCtlTypeDef pTimerCtl = {0};
HRTIM_CompareCfgTypeDef pCompareCfg = {0};
HRTIM_OutputCfgTypeDef pOutputCfg = {0};
/* USER CODE BEGIN HRTIM1_Init 1 */
/* USER CODE END HRTIM1_Init 1 */
hhrtim1.Instance = HRTIM1;
hhrtim1.Init.HRTIMInterruptResquests = HRTIM_IT_NONE;
hhrtim1.Init.SyncOptions = HRTIM_SYNCOPTION_NONE;
if (HAL_HRTIM_Init(&hhrtim1) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_DLLCalibrationStart(&hhrtim1, HRTIM_CALIBRATIONRATE_3) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_PollForDLLCalibration(&hhrtim1, 10) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_EventPrescalerConfig(&hhrtim1, HRTIM_EVENTPRESCALER_DIV1) != HAL_OK)
{
Error_Handler();
}
pEventCfg.Source = HRTIM_EEV1SRC_COMP2_OUT;
pEventCfg.Polarity = HRTIM_EVENTPOLARITY_HIGH;
pEventCfg.Sensitivity = HRTIM_EVENTSENSITIVITY_LEVEL;
pEventCfg.FastMode = HRTIM_EVENTFASTMODE_DISABLE;
if (HAL_HRTIM_EventConfig(&hhrtim1, HRTIM_EVENT_1, &pEventCfg) != HAL_OK)
{
Error_Handler();
}
pTimeBaseCfg.Period = 0xD480;
pTimeBaseCfg.RepetitionCounter = 0x00;
pTimeBaseCfg.PrescalerRatio = HRTIM_PRESCALERRATIO_MUL32;
pTimeBaseCfg.Mode = HRTIM_MODE_CONTINUOUS;
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimeBaseCfg) != HAL_OK)
{
Error_Handler();
}
pTimerCfg.InterruptRequests = HRTIM_MASTER_IT_NONE;
pTimerCfg.DMARequests = HRTIM_MASTER_DMA_NONE;
pTimerCfg.DMASrcAddress = 0x0000;
pTimerCfg.DMADstAddress = 0x0000;
pTimerCfg.DMASize = 0x1;
pTimerCfg.HalfModeEnable = HRTIM_HALFMODE_DISABLED;
pTimerCfg.InterleavedMode = HRTIM_INTERLEAVED_MODE_DISABLED;
pTimerCfg.StartOnSync = HRTIM_SYNCSTART_DISABLED;
pTimerCfg.ResetOnSync = HRTIM_SYNCRESET_DISABLED;
pTimerCfg.DACSynchro = HRTIM_DACSYNC_NONE;
pTimerCfg.PreloadEnable = HRTIM_PRELOAD_DISABLED;
pTimerCfg.UpdateGating = HRTIM_UPDATEGATING_INDEPENDENT;
pTimerCfg.BurstMode = HRTIM_TIMERBURSTMODE_MAINTAINCLOCK;
pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_DISABLED;
pTimerCfg.ReSyncUpdate = HRTIM_TIMERESYNC_UPDATE_UNCONDITIONAL;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimerCfg) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimeBaseCfg) != HAL_OK)
{
Error_Handler();
}
pTimerCtl.UpDownMode = HRTIM_TIMERUPDOWNMODE_UP;
pTimerCtl.GreaterCMP1 = HRTIM_TIMERGTCMP1_EQUAL;
pTimerCtl.DualChannelDacEnable = HRTIM_TIMER_DCDE_DISABLED;
if (HAL_HRTIM_WaveformTimerControl(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimerCtl) != HAL_OK)
{
Error_Handler();
}
pTimerCfg.InterruptRequests = HRTIM_TIM_IT_NONE;
pTimerCfg.DMARequests = HRTIM_TIM_DMA_NONE;
pTimerCfg.PreloadEnable = HRTIM_PRELOAD_ENABLED;
pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_ENABLED;
pTimerCfg.PushPull = HRTIM_TIMPUSHPULLMODE_DISABLED;
pTimerCfg.FaultEnable = HRTIM_TIMFAULTENABLE_NONE;
pTimerCfg.FaultLock = HRTIM_TIMFAULTLOCK_READWRITE;
pTimerCfg.DeadTimeInsertion = HRTIM_TIMDEADTIMEINSERTION_DISABLED;
pTimerCfg.DelayedProtectionMode = HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED;
pTimerCfg.UpdateTrigger = HRTIM_TIMUPDATETRIGGER_TIMER_A;
pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_MASTER_PER;
pTimerCfg.ResetUpdate = HRTIM_TIMUPDATEONRESET_ENABLED;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimerCfg) != HAL_OK)
{
Error_Handler();
}
pTimerCfg.UpdateTrigger = HRTIM_TIMUPDATETRIGGER_TIMER_B;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimerCfg) != HAL_OK)
{
Error_Handler();
}
pCompareCfg.CompareValue = 0x0;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK)
{
Error_Handler();
}
pOutputCfg.Polarity = HRTIM_OUTPUTPOLARITY_HIGH;
pOutputCfg.SetSource = HRTIM_OUTPUTSET_TIMPER;
pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_TIMCMP1;
pOutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE;
pOutputCfg.IdleLevel = HRTIM_OUTPUTIDLELEVEL_INACTIVE;
pOutputCfg.FaultLevel = HRTIM_OUTPUTFAULTLEVEL_NONE;
pOutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED;
pOutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA1, &pOutputCfg) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB1, &pOutputCfg) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA2, &pOutputCfg) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB2, &pOutputCfg) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimeBaseCfg) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_WaveformTimerControl(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimerCtl) != HAL_OK)
{
Error_Handler();
}
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN HRTIM1_Init 2 */
/* USER CODE END HRTIM1_Init 2 */
HAL_HRTIM_MspPostInit(&hhrtim1);
}
/**
* @brief TIM1 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM1_Init(void)
{
/* USER CODE BEGIN TIM1_Init 0 */
/* USER CODE END TIM1_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM1_Init 1 */
/* USER CODE END TIM1_Init 1 */
htim1.Instance = TIM1;
htim1.Init.Prescaler = 170-1;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 20;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim1.Init.RepetitionCounter = 0;
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM1_Init 2 */
/* USER CODE END TIM1_Init 2 */
}
/**
* @brief USART1 Initialization Function
* @param None
* @retval None
*/
static void MX_USART1_UART_Init(void)
{
/* USER CODE BEGIN USART1_Init 0 */
/* USER CODE END USART1_Init 0 */
/* USER CODE BEGIN USART1_Init 1 */
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart1) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */
}
/**
* Enable DMA controller clock
*/
static void MX_DMA_Init(void)
{
/* DMA controller clock enable */
__HAL_RCC_DMAMUX1_CLK_ENABLE();
__HAL_RCC_DMA1_CLK_ENABLE();
/* DMA interrupt init */
/* DMA1_Channel1_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
/* DMA1_Channel2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn);
}
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, ENABLE_DRVA_Pin|ENABLE_DRVB_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : ENABLE_DRVA_Pin ENABLE_DRVB_Pin */
GPIO_InitStruct.Pin = ENABLE_DRVA_Pin|ENABLE_DRVB_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef * htim)
{
if (htim == &htim1) // 50khz timer
{
time++; // current time in 20us increments; -> 1000 = one period
if (time >=1000) time = 0;
if ((time >= 0) && (time < 500))
{
// positive half
// set hrtim->A with pwm_sine[time]
HRTIM1->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].CMP1xR = pwm_sine[time];
HRTIM1->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].CMP1xR = 0xD480;
HAL_HRTIM_WaveformOutputStop(&hhrtim1,HRTIM_OUTPUT_TB1|HRTIM_OUTPUT_TA2);
HAL_HRTIM_WaveformOutputStart(&hhrtim1,HRTIM_OUTPUT_TA1|HRTIM_OUTPUT_TB2);
}
else if ((time >= 500) && (time < 1000))
{
// negative half
// set hrtim->B with pwm_sine[time]
HRTIM1->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_B].CMP1xR = pwm_sine[time];
HRTIM1->sTimerxRegs[HRTIM_TIMERINDEX_TIMER_A].CMP1xR = 0xD480;
HAL_HRTIM_WaveformOutputStop(&hhrtim1,HRTIM_OUTPUT_TA1|HRTIM_OUTPUT_TB2);
HAL_HRTIM_WaveformOutputStart(&hhrtim1,HRTIM_OUTPUT_TB1|HRTIM_OUTPUT_TA2);
}
}
}
/* USER CODE END 4 */
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
{
}
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
+731
View File
@@ -0,0 +1,731 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32g4xx_hal_msp.c
* @brief This file provides code for the MSP Initialization
* and de-Initialization codes.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
extern DMA_HandleTypeDef hdma_adc3;
extern DMA_HandleTypeDef hdma_adc4;
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */
/* USER CODE END TD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN Define */
/* USER CODE END Define */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN Macro */
/* USER CODE END Macro */
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* External functions --------------------------------------------------------*/
/* USER CODE BEGIN ExternalFunctions */
/* USER CODE END ExternalFunctions */
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
void HAL_HRTIM_MspPostInit(HRTIM_HandleTypeDef *hhrtim);
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
/* System interrupt init*/
/** Configure the internal voltage reference buffer high impedance mode
*/
HAL_SYSCFG_VREFBUF_HighImpedanceConfig(SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE);
/** Disable the Internal Voltage Reference buffer
*/
HAL_SYSCFG_DisableVREFBUF();
/** Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral
*/
HAL_PWREx_DisableUCPDDeadBattery();
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
static uint32_t HAL_RCC_ADC345_CLK_ENABLED=0;
/**
* @brief ADC MSP Initialization
* This function configures the hardware resources used in this example
* @param hadc: ADC handle pointer
* @retval None
*/
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
if(hadc->Instance==ADC3)
{
/* USER CODE BEGIN ADC3_MspInit 0 */
/* USER CODE END ADC3_MspInit 0 */
/** Initializes the peripherals clocks
*/
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC345;
PeriphClkInit.Adc345ClockSelection = RCC_ADC345CLKSOURCE_SYSCLK;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
/* Peripheral clock enable */
HAL_RCC_ADC345_CLK_ENABLED++;
if(HAL_RCC_ADC345_CLK_ENABLED==1){
__HAL_RCC_ADC345_CLK_ENABLE();
}
__HAL_RCC_GPIOB_CLK_ENABLE();
/**ADC3 GPIO Configuration
PB13 ------> ADC3_IN5
*/
GPIO_InitStruct.Pin = VOLTAGE_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(VOLTAGE_GPIO_Port, &GPIO_InitStruct);
/* ADC3 DMA Init */
/* ADC3 Init */
hdma_adc3.Instance = DMA1_Channel1;
hdma_adc3.Init.Request = DMA_REQUEST_ADC3;
hdma_adc3.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_adc3.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_adc3.Init.MemInc = DMA_MINC_ENABLE;
hdma_adc3.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_adc3.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
hdma_adc3.Init.Mode = DMA_CIRCULAR;
hdma_adc3.Init.Priority = DMA_PRIORITY_HIGH;
if (HAL_DMA_Init(&hdma_adc3) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(hadc,DMA_Handle,hdma_adc3);
/* USER CODE BEGIN ADC3_MspInit 1 */
/* USER CODE END ADC3_MspInit 1 */
}
else if(hadc->Instance==ADC4)
{
/* USER CODE BEGIN ADC4_MspInit 0 */
/* USER CODE END ADC4_MspInit 0 */
/** Initializes the peripherals clocks
*/
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC345;
PeriphClkInit.Adc345ClockSelection = RCC_ADC345CLKSOURCE_SYSCLK;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
/* Peripheral clock enable */
HAL_RCC_ADC345_CLK_ENABLED++;
if(HAL_RCC_ADC345_CLK_ENABLED==1){
__HAL_RCC_ADC345_CLK_ENABLE();
}
__HAL_RCC_GPIOB_CLK_ENABLE();
/**ADC4 GPIO Configuration
PB14 ------> ADC4_IN4
*/
GPIO_InitStruct.Pin = CURRENT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(CURRENT_GPIO_Port, &GPIO_InitStruct);
/* ADC4 DMA Init */
/* ADC4 Init */
hdma_adc4.Instance = DMA1_Channel2;
hdma_adc4.Init.Request = DMA_REQUEST_ADC4;
hdma_adc4.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_adc4.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_adc4.Init.MemInc = DMA_MINC_ENABLE;
hdma_adc4.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
hdma_adc4.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
hdma_adc4.Init.Mode = DMA_CIRCULAR;
hdma_adc4.Init.Priority = DMA_PRIORITY_VERY_HIGH;
if (HAL_DMA_Init(&hdma_adc4) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(hadc,DMA_Handle,hdma_adc4);
/* USER CODE BEGIN ADC4_MspInit 1 */
/* USER CODE END ADC4_MspInit 1 */
}
}
/**
* @brief ADC MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hadc: ADC handle pointer
* @retval None
*/
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
{
if(hadc->Instance==ADC3)
{
/* USER CODE BEGIN ADC3_MspDeInit 0 */
/* USER CODE END ADC3_MspDeInit 0 */
/* Peripheral clock disable */
HAL_RCC_ADC345_CLK_ENABLED--;
if(HAL_RCC_ADC345_CLK_ENABLED==0){
__HAL_RCC_ADC345_CLK_DISABLE();
}
/**ADC3 GPIO Configuration
PB13 ------> ADC3_IN5
*/
HAL_GPIO_DeInit(VOLTAGE_GPIO_Port, VOLTAGE_Pin);
/* ADC3 DMA DeInit */
HAL_DMA_DeInit(hadc->DMA_Handle);
/* USER CODE BEGIN ADC3_MspDeInit 1 */
/* USER CODE END ADC3_MspDeInit 1 */
}
else if(hadc->Instance==ADC4)
{
/* USER CODE BEGIN ADC4_MspDeInit 0 */
/* USER CODE END ADC4_MspDeInit 0 */
/* Peripheral clock disable */
HAL_RCC_ADC345_CLK_ENABLED--;
if(HAL_RCC_ADC345_CLK_ENABLED==0){
__HAL_RCC_ADC345_CLK_DISABLE();
}
/**ADC4 GPIO Configuration
PB14 ------> ADC4_IN4
*/
HAL_GPIO_DeInit(CURRENT_GPIO_Port, CURRENT_Pin);
/* ADC4 DMA DeInit */
HAL_DMA_DeInit(hadc->DMA_Handle);
/* USER CODE BEGIN ADC4_MspDeInit 1 */
/* USER CODE END ADC4_MspDeInit 1 */
}
}
/**
* @brief COMP MSP Initialization
* This function configures the hardware resources used in this example
* @param hcomp: COMP handle pointer
* @retval None
*/
void HAL_COMP_MspInit(COMP_HandleTypeDef* hcomp)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hcomp->Instance==COMP5)
{
/* USER CODE BEGIN COMP5_MspInit 0 */
/* USER CODE END COMP5_MspInit 0 */
__HAL_RCC_GPIOB_CLK_ENABLE();
/**COMP5 GPIO Configuration
PB13 ------> COMP5_INP
*/
GPIO_InitStruct.Pin = VOLTAGE_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(VOLTAGE_GPIO_Port, &GPIO_InitStruct);
/* USER CODE BEGIN COMP5_MspInit 1 */
/* USER CODE END COMP5_MspInit 1 */
}
else if(hcomp->Instance==COMP7)
{
/* USER CODE BEGIN COMP7_MspInit 0 */
/* USER CODE END COMP7_MspInit 0 */
__HAL_RCC_GPIOB_CLK_ENABLE();
/**COMP7 GPIO Configuration
PB14 ------> COMP7_INP
*/
GPIO_InitStruct.Pin = CURRENT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(CURRENT_GPIO_Port, &GPIO_InitStruct);
/* USER CODE BEGIN COMP7_MspInit 1 */
/* USER CODE END COMP7_MspInit 1 */
}
}
/**
* @brief COMP MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hcomp: COMP handle pointer
* @retval None
*/
void HAL_COMP_MspDeInit(COMP_HandleTypeDef* hcomp)
{
if(hcomp->Instance==COMP5)
{
/* USER CODE BEGIN COMP5_MspDeInit 0 */
/* USER CODE END COMP5_MspDeInit 0 */
/**COMP5 GPIO Configuration
PB13 ------> COMP5_INP
*/
HAL_GPIO_DeInit(VOLTAGE_GPIO_Port, VOLTAGE_Pin);
/* USER CODE BEGIN COMP5_MspDeInit 1 */
/* USER CODE END COMP5_MspDeInit 1 */
}
else if(hcomp->Instance==COMP7)
{
/* USER CODE BEGIN COMP7_MspDeInit 0 */
/* USER CODE END COMP7_MspDeInit 0 */
/**COMP7 GPIO Configuration
PB14 ------> COMP7_INP
*/
HAL_GPIO_DeInit(CURRENT_GPIO_Port, CURRENT_Pin);
/* USER CODE BEGIN COMP7_MspDeInit 1 */
/* USER CODE END COMP7_MspDeInit 1 */
}
}
/**
* @brief CORDIC MSP Initialization
* This function configures the hardware resources used in this example
* @param hcordic: CORDIC handle pointer
* @retval None
*/
void HAL_CORDIC_MspInit(CORDIC_HandleTypeDef* hcordic)
{
if(hcordic->Instance==CORDIC)
{
/* USER CODE BEGIN CORDIC_MspInit 0 */
/* USER CODE END CORDIC_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_CORDIC_CLK_ENABLE();
/* USER CODE BEGIN CORDIC_MspInit 1 */
/* USER CODE END CORDIC_MspInit 1 */
}
}
/**
* @brief CORDIC MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hcordic: CORDIC handle pointer
* @retval None
*/
void HAL_CORDIC_MspDeInit(CORDIC_HandleTypeDef* hcordic)
{
if(hcordic->Instance==CORDIC)
{
/* USER CODE BEGIN CORDIC_MspDeInit 0 */
/* USER CODE END CORDIC_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_CORDIC_CLK_DISABLE();
/* USER CODE BEGIN CORDIC_MspDeInit 1 */
/* USER CODE END CORDIC_MspDeInit 1 */
}
}
/**
* @brief DAC MSP Initialization
* This function configures the hardware resources used in this example
* @param hdac: DAC handle pointer
* @retval None
*/
void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
{
if(hdac->Instance==DAC1)
{
/* USER CODE BEGIN DAC1_MspInit 0 */
/* USER CODE END DAC1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_DAC1_CLK_ENABLE();
/* USER CODE BEGIN DAC1_MspInit 1 */
/* USER CODE END DAC1_MspInit 1 */
}
else if(hdac->Instance==DAC4)
{
/* USER CODE BEGIN DAC4_MspInit 0 */
/* USER CODE END DAC4_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_DAC4_CLK_ENABLE();
/* USER CODE BEGIN DAC4_MspInit 1 */
/* USER CODE END DAC4_MspInit 1 */
}
}
/**
* @brief DAC MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hdac: DAC handle pointer
* @retval None
*/
void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
{
if(hdac->Instance==DAC1)
{
/* USER CODE BEGIN DAC1_MspDeInit 0 */
/* USER CODE END DAC1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_DAC1_CLK_DISABLE();
/* USER CODE BEGIN DAC1_MspDeInit 1 */
/* USER CODE END DAC1_MspDeInit 1 */
}
else if(hdac->Instance==DAC4)
{
/* USER CODE BEGIN DAC4_MspDeInit 0 */
/* USER CODE END DAC4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_DAC4_CLK_DISABLE();
/* USER CODE BEGIN DAC4_MspDeInit 1 */
/* USER CODE END DAC4_MspDeInit 1 */
}
}
/**
* @brief FMAC MSP Initialization
* This function configures the hardware resources used in this example
* @param hfmac: FMAC handle pointer
* @retval None
*/
void HAL_FMAC_MspInit(FMAC_HandleTypeDef* hfmac)
{
if(hfmac->Instance==FMAC)
{
/* USER CODE BEGIN FMAC_MspInit 0 */
/* USER CODE END FMAC_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_FMAC_CLK_ENABLE();
/* USER CODE BEGIN FMAC_MspInit 1 */
/* USER CODE END FMAC_MspInit 1 */
}
}
/**
* @brief FMAC MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hfmac: FMAC handle pointer
* @retval None
*/
void HAL_FMAC_MspDeInit(FMAC_HandleTypeDef* hfmac)
{
if(hfmac->Instance==FMAC)
{
/* USER CODE BEGIN FMAC_MspDeInit 0 */
/* USER CODE END FMAC_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_FMAC_CLK_DISABLE();
/* USER CODE BEGIN FMAC_MspDeInit 1 */
/* USER CODE END FMAC_MspDeInit 1 */
}
}
/**
* @brief HRTIM MSP Initialization
* This function configures the hardware resources used in this example
* @param hhrtim: HRTIM handle pointer
* @retval None
*/
void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef* hhrtim)
{
if(hhrtim->Instance==HRTIM1)
{
/* USER CODE BEGIN HRTIM1_MspInit 0 */
/* USER CODE END HRTIM1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_HRTIM1_CLK_ENABLE();
/* USER CODE BEGIN HRTIM1_MspInit 1 */
/* USER CODE END HRTIM1_MspInit 1 */
}
}
void HAL_HRTIM_MspPostInit(HRTIM_HandleTypeDef* hhrtim)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hhrtim->Instance==HRTIM1)
{
/* USER CODE BEGIN HRTIM1_MspPostInit 0 */
/* USER CODE END HRTIM1_MspPostInit 0 */
__HAL_RCC_GPIOA_CLK_ENABLE();
/**HRTIM1 GPIO Configuration
PA8 ------> HRTIM1_CHA1
PA9 ------> HRTIM1_CHA2
PA10 ------> HRTIM1_CHB1
PA11 ------> HRTIM1_CHB2
*/
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF13_HRTIM1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN HRTIM1_MspPostInit 1 */
/* USER CODE END HRTIM1_MspPostInit 1 */
}
}
/**
* @brief HRTIM MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param hhrtim: HRTIM handle pointer
* @retval None
*/
void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef* hhrtim)
{
if(hhrtim->Instance==HRTIM1)
{
/* USER CODE BEGIN HRTIM1_MspDeInit 0 */
/* USER CODE END HRTIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_HRTIM1_CLK_DISABLE();
/* USER CODE BEGIN HRTIM1_MspDeInit 1 */
/* USER CODE END HRTIM1_MspDeInit 1 */
}
}
/**
* @brief TIM_Base MSP Initialization
* This function configures the hardware resources used in this example
* @param htim_base: TIM_Base handle pointer
* @retval None
*/
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
{
if(htim_base->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspInit 0 */
/* USER CODE END TIM1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();
/* TIM1 interrupt Init */
HAL_NVIC_SetPriority(TIM1_BRK_TIM15_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM1_BRK_TIM15_IRQn);
HAL_NVIC_SetPriority(TIM1_UP_TIM16_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM1_UP_TIM16_IRQn);
HAL_NVIC_SetPriority(TIM1_TRG_COM_TIM17_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM1_TRG_COM_TIM17_IRQn);
HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM1_CC_IRQn);
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
}
}
/**
* @brief TIM_Base MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param htim_base: TIM_Base handle pointer
* @retval None
*/
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
{
if(htim_base->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspDeInit 0 */
/* USER CODE END TIM1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM1_CLK_DISABLE();
/* TIM1 interrupt DeInit */
HAL_NVIC_DisableIRQ(TIM1_BRK_TIM15_IRQn);
HAL_NVIC_DisableIRQ(TIM1_UP_TIM16_IRQn);
HAL_NVIC_DisableIRQ(TIM1_TRG_COM_TIM17_IRQn);
HAL_NVIC_DisableIRQ(TIM1_CC_IRQn);
/* USER CODE BEGIN TIM1_MspDeInit 1 */
/* USER CODE END TIM1_MspDeInit 1 */
}
}
/**
* @brief UART MSP Initialization
* This function configures the hardware resources used in this example
* @param huart: UART handle pointer
* @retval None
*/
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
/* USER CODE END USART1_MspInit 0 */
/** Initializes the peripherals clocks
*/
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/**USART1 GPIO Configuration
PB6 ------> USART1_TX
PB7 ------> USART1_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
}
}
/**
* @brief UART MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param huart: UART handle pointer
* @retval None
*/
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspDeInit 0 */
/* USER CODE END USART1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART1_CLK_DISABLE();
/**USART1 GPIO Configuration
PB6 ------> USART1_TX
PB7 ------> USART1_RX
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
/* USER CODE BEGIN USART1_MspDeInit 1 */
/* USER CODE END USART1_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
+289
View File
@@ -0,0 +1,289 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32g4xx_it.c
* @brief Interrupt Service Routines.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "stm32g4xx_it.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */
/* USER CODE END TD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
extern DMA_HandleTypeDef hdma_adc3;
extern DMA_HandleTypeDef hdma_adc4;
extern TIM_HandleTypeDef htim1;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
/******************************************************************************/
/* Cortex-M4 Processor Interruption and Exception Handlers */
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
{
}
/* USER CODE END NonMaskableInt_IRQn 1 */
}
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
/* USER CODE END W1_HardFault_IRQn 0 */
}
}
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
/* USER CODE END W1_MemoryManagement_IRQn 0 */
}
}
/**
* @brief This function handles Prefetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
/* USER CODE END W1_BusFault_IRQn 0 */
}
}
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
/* USER CODE END W1_UsageFault_IRQn 0 */
}
}
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
/* USER CODE BEGIN SVCall_IRQn 0 */
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
/* USER CODE BEGIN PendSV_IRQn 0 */
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
/******************************************************************************/
/* STM32G4xx Peripheral Interrupt Handlers */
/* Add here the Interrupt Handlers for the used peripherals. */
/* For the available peripheral interrupt handler names, */
/* please refer to the startup file (startup_stm32g4xx.s). */
/******************************************************************************/
/**
* @brief This function handles DMA1 channel1 global interrupt.
*/
void DMA1_Channel1_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
/* USER CODE END DMA1_Channel1_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc3);
/* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
/* USER CODE END DMA1_Channel1_IRQn 1 */
}
/**
* @brief This function handles DMA1 channel2 global interrupt.
*/
void DMA1_Channel2_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Channel2_IRQn 0 */
/* USER CODE END DMA1_Channel2_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc4);
/* USER CODE BEGIN DMA1_Channel2_IRQn 1 */
/* USER CODE END DMA1_Channel2_IRQn 1 */
}
/**
* @brief This function handles TIM1 break interrupt and TIM15 global interrupt.
*/
void TIM1_BRK_TIM15_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_BRK_TIM15_IRQn 0 */
/* USER CODE END TIM1_BRK_TIM15_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_BRK_TIM15_IRQn 1 */
/* USER CODE END TIM1_BRK_TIM15_IRQn 1 */
}
/**
* @brief This function handles TIM1 update interrupt and TIM16 global interrupt.
*/
void TIM1_UP_TIM16_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_UP_TIM16_IRQn 0 */
/* USER CODE END TIM1_UP_TIM16_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_UP_TIM16_IRQn 1 */
/* USER CODE END TIM1_UP_TIM16_IRQn 1 */
}
/**
* @brief This function handles TIM1 trigger and commutation interrupts and TIM17 global interrupt.
*/
void TIM1_TRG_COM_TIM17_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_TRG_COM_TIM17_IRQn 0 */
/* USER CODE END TIM1_TRG_COM_TIM17_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_TRG_COM_TIM17_IRQn 1 */
/* USER CODE END TIM1_TRG_COM_TIM17_IRQn 1 */
}
/**
* @brief This function handles TIM1 capture compare interrupt.
*/
void TIM1_CC_IRQHandler(void)
{
/* USER CODE BEGIN TIM1_CC_IRQn 0 */
/* USER CODE END TIM1_CC_IRQn 0 */
HAL_TIM_IRQHandler(&htim1);
/* USER CODE BEGIN TIM1_CC_IRQn 1 */
/* USER CODE END TIM1_CC_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
+176
View File
@@ -0,0 +1,176 @@
/**
******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
*
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
******************************************************************************
* @attention
*
* Copyright (c) 2020-2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Includes */
#include <sys/stat.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
#include <signal.h>
#include <time.h>
#include <sys/time.h>
#include <sys/times.h>
/* Variables */
extern int __io_putchar(int ch) __attribute__((weak));
extern int __io_getchar(void) __attribute__((weak));
char *__env[1] = { 0 };
char **environ = __env;
/* Functions */
void initialise_monitor_handles()
{
}
int _getpid(void)
{
return 1;
}
int _kill(int pid, int sig)
{
(void)pid;
(void)sig;
errno = EINVAL;
return -1;
}
void _exit (int status)
{
_kill(status, -1);
while (1) {} /* Make sure we hang here */
}
__attribute__((weak)) int _read(int file, char *ptr, int len)
{
(void)file;
int DataIdx;
for (DataIdx = 0; DataIdx < len; DataIdx++)
{
*ptr++ = __io_getchar();
}
return len;
}
__attribute__((weak)) int _write(int file, char *ptr, int len)
{
(void)file;
int DataIdx;
for (DataIdx = 0; DataIdx < len; DataIdx++)
{
__io_putchar(*ptr++);
}
return len;
}
int _close(int file)
{
(void)file;
return -1;
}
int _fstat(int file, struct stat *st)
{
(void)file;
st->st_mode = S_IFCHR;
return 0;
}
int _isatty(int file)
{
(void)file;
return 1;
}
int _lseek(int file, int ptr, int dir)
{
(void)file;
(void)ptr;
(void)dir;
return 0;
}
int _open(char *path, int flags, ...)
{
(void)path;
(void)flags;
/* Pretend like we always fail */
return -1;
}
int _wait(int *status)
{
(void)status;
errno = ECHILD;
return -1;
}
int _unlink(char *name)
{
(void)name;
errno = ENOENT;
return -1;
}
int _times(struct tms *buf)
{
(void)buf;
return -1;
}
int _stat(char *file, struct stat *st)
{
(void)file;
st->st_mode = S_IFCHR;
return 0;
}
int _link(char *old, char *new)
{
(void)old;
(void)new;
errno = EMLINK;
return -1;
}
int _fork(void)
{
errno = EAGAIN;
return -1;
}
int _execve(char *name, char **argv, char **env)
{
(void)name;
(void)argv;
(void)env;
errno = ENOMEM;
return -1;
}
+79
View File
@@ -0,0 +1,79 @@
/**
******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
*
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Includes */
#include <errno.h>
#include <stdint.h>
/**
* Pointer to the current high watermark of the heap usage
*/
static uint8_t *__sbrk_heap_end = NULL;
/**
* @brief _sbrk() allocates memory to the newlib heap and is used by malloc
* and others from the C library
*
* @verbatim
* ############################################################################
* # .data # .bss # newlib heap # MSP stack #
* # # # # Reserved by _Min_Stack_Size #
* ############################################################################
* ^-- RAM start ^-- _end _estack, RAM end --^
* @endverbatim
*
* This implementation starts allocating at the '_end' linker symbol
* The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
* The implementation considers '_estack' linker symbol to be RAM end
* NOTE: If the MSP stack, at any point during execution, grows larger than the
* reserved size, please increase the '_Min_Stack_Size'.
*
* @param incr Memory size
* @return Pointer to allocated memory
*/
void *_sbrk(ptrdiff_t incr)
{
extern uint8_t _end; /* Symbol defined in the linker script */
extern uint8_t _estack; /* Symbol defined in the linker script */
extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
const uint8_t *max_heap = (uint8_t *)stack_limit;
uint8_t *prev_heap_end;
/* Initialize heap end at first call */
if (NULL == __sbrk_heap_end)
{
__sbrk_heap_end = &_end;
}
/* Protect heap from growing into the reserved MSP stack */
if (__sbrk_heap_end + incr > max_heap)
{
errno = ENOMEM;
return (void *)-1;
}
prev_heap_end = __sbrk_heap_end;
__sbrk_heap_end += incr;
return (void *)prev_heap_end;
}
+285
View File
@@ -0,0 +1,285 @@
/**
******************************************************************************
* @file system_stm32g4xx.c
* @author MCD Application Team
* @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File
*
* This file provides two functions and one global variable to be called from
* user application:
* - SystemInit(): This function is called at startup just after reset and
* before branch to main program. This call is made inside
* the "startup_stm32g4xx.s" file.
*
* - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
* by the user application to setup the SysTick
* timer or configure other parameters.
*
* - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
* be called whenever the core clock is changed
* during program execution.
*
* After each device reset the HSI (16 MHz) is used as system clock source.
* Then SystemInit() function is called, in "startup_stm32g4xx.s" file, to
* configure the system clock before to branch to main program.
*
* This file configures the system clock as follows:
*=============================================================================
*-----------------------------------------------------------------------------
* System Clock source | HSI
*-----------------------------------------------------------------------------
* SYSCLK(Hz) | 16000000
*-----------------------------------------------------------------------------
* HCLK(Hz) | 16000000
*-----------------------------------------------------------------------------
* AHB Prescaler | 1
*-----------------------------------------------------------------------------
* APB1 Prescaler | 1
*-----------------------------------------------------------------------------
* APB2 Prescaler | 1
*-----------------------------------------------------------------------------
* PLL_M | 1
*-----------------------------------------------------------------------------
* PLL_N | 16
*-----------------------------------------------------------------------------
* PLL_P | 7
*-----------------------------------------------------------------------------
* PLL_Q | 2
*-----------------------------------------------------------------------------
* PLL_R | 2
*-----------------------------------------------------------------------------
* Require 48MHz for RNG | Disabled
*-----------------------------------------------------------------------------
*=============================================================================
******************************************************************************
* @attention
*
* Copyright (c) 2019 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/** @addtogroup CMSIS
* @{
*/
/** @addtogroup stm32g4xx_system
* @{
*/
/** @addtogroup STM32G4xx_System_Private_Includes
* @{
*/
#include "stm32g4xx.h"
#if !defined (HSE_VALUE)
#define HSE_VALUE 24000000U /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
#if !defined (HSI_VALUE)
#define HSI_VALUE 16000000U /*!< Value of the Internal oscillator in Hz*/
#endif /* HSI_VALUE */
/**
* @}
*/
/** @addtogroup STM32G4xx_System_Private_TypesDefinitions
* @{
*/
/**
* @}
*/
/** @addtogroup STM32G4xx_System_Private_Defines
* @{
*/
/************************* Miscellaneous Configuration ************************/
/* Note: Following vector table addresses must be defined in line with linker
configuration. */
/*!< Uncomment the following line if you need to relocate the vector table
anywhere in Flash or Sram, else the vector table is kept at the automatic
remap of boot address selected */
/* #define USER_VECT_TAB_ADDRESS */
#if defined(USER_VECT_TAB_ADDRESS)
/*!< Uncomment the following line if you need to relocate your vector Table
in Sram else user remap will be done in Flash. */
/* #define VECT_TAB_SRAM */
#if defined(VECT_TAB_SRAM)
#define VECT_TAB_BASE_ADDRESS SRAM_BASE /*!< Vector Table base address field.
This value must be a multiple of 0x200. */
#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
This value must be a multiple of 0x200. */
#else
#define VECT_TAB_BASE_ADDRESS FLASH_BASE /*!< Vector Table base address field.
This value must be a multiple of 0x200. */
#define VECT_TAB_OFFSET 0x00000000U /*!< Vector Table base offset field.
This value must be a multiple of 0x200. */
#endif /* VECT_TAB_SRAM */
#endif /* USER_VECT_TAB_ADDRESS */
/******************************************************************************/
/**
* @}
*/
/** @addtogroup STM32G4xx_System_Private_Macros
* @{
*/
/**
* @}
*/
/** @addtogroup STM32G4xx_System_Private_Variables
* @{
*/
/* The SystemCoreClock variable is updated in three ways:
1) by calling CMSIS function SystemCoreClockUpdate()
2) by calling HAL API function HAL_RCC_GetHCLKFreq()
3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
Note: If you use this function to configure the system clock; then there
is no need to call the 2 first functions listed above, since SystemCoreClock
variable is updated automatically.
*/
uint32_t SystemCoreClock = HSI_VALUE;
const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
/**
* @}
*/
/** @addtogroup STM32G4xx_System_Private_FunctionPrototypes
* @{
*/
/**
* @}
*/
/** @addtogroup STM32G4xx_System_Private_Functions
* @{
*/
/**
* @brief Setup the microcontroller system.
* @param None
* @retval None
*/
void SystemInit(void)
{
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << (10*2))|(3UL << (11*2))); /* set CP10 and CP11 Full Access */
#endif
/* Configure the Vector Table location add offset address ------------------*/
#if defined(USER_VECT_TAB_ADDRESS)
SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#endif /* USER_VECT_TAB_ADDRESS */
}
/**
* @brief Update SystemCoreClock variable according to Clock Register Values.
* The SystemCoreClock variable contains the core clock (HCLK), it can
* be used by the user application to setup the SysTick timer or configure
* other parameters.
*
* @note Each time the core clock (HCLK) changes, this function must be called
* to update SystemCoreClock variable value. Otherwise, any configuration
* based on this variable will be incorrect.
*
* @note - The system frequency computed by this function is not the real
* frequency in the chip. It is calculated based on the predefined
* constant and the selected clock source:
*
* - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(**)
*
* - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(***)
*
* - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(***)
* or HSI_VALUE(*) multiplied/divided by the PLL factors.
*
* (**) HSI_VALUE is a constant defined in stm32g4xx_hal.h file (default value
* 16 MHz) but the real value may vary depending on the variations
* in voltage and temperature.
*
* (***) HSE_VALUE is a constant defined in stm32g4xx_hal.h file (default value
* 24 MHz), user has to ensure that HSE_VALUE is same as the real
* frequency of the crystal used. Otherwise, this function may
* have wrong result.
*
* - The result of this function could be not correct when using fractional
* value for HSE crystal.
*
* @param None
* @retval None
*/
void SystemCoreClockUpdate(void)
{
uint32_t tmp, pllvco, pllr, pllsource, pllm;
/* Get SYSCLK source -------------------------------------------------------*/
switch (RCC->CFGR & RCC_CFGR_SWS)
{
case 0x04: /* HSI used as system clock source */
SystemCoreClock = HSI_VALUE;
break;
case 0x08: /* HSE used as system clock source */
SystemCoreClock = HSE_VALUE;
break;
case 0x0C: /* PLL used as system clock source */
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN
SYSCLK = PLL_VCO / PLLR
*/
pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4) + 1U ;
if (pllsource == 0x02UL) /* HSI used as PLL clock source */
{
pllvco = (HSI_VALUE / pllm);
}
else /* HSE used as PLL clock source */
{
pllvco = (HSE_VALUE / pllm);
}
pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8);
pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25) + 1U) * 2U;
SystemCoreClock = pllvco/pllr;
break;
default:
break;
}
/* Compute HCLK clock frequency --------------------------------------------*/
/* Get HCLK prescaler */
tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
/* HCLK clock frequency */
SystemCoreClock >>= tmp;
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
+592
View File
@@ -0,0 +1,592 @@
/**
******************************************************************************
* @file startup_stm32g474xx.s
* @author MCD Application Team
* @brief STM32G474xx devices vector table GCC toolchain.
* This module performs:
* - Set the initial SP
* - Set the initial PC == Reset_Handler,
* - Set the vector table entries with the exceptions ISR address,
* - Configure the clock system
* - Branches to main in the C library (which eventually
* calls main()).
* After Reset the Cortex-M4 processor is in Thread mode,
* priority is Privileged, and the Stack is set to Main.
******************************************************************************
* @attention
*
* Copyright (c) 2019 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
.syntax unified
.cpu cortex-m4
.fpu softvfp
.thumb
.global g_pfnVectors
.global Default_Handler
/* start address for the initialization values of the .data section.
defined in linker script */
.word _sidata
/* start address for the .data section. defined in linker script */
.word _sdata
/* end address for the .data section. defined in linker script */
.word _edata
/* start address for the .bss section. defined in linker script */
.word _sbss
/* end address for the .bss section. defined in linker script */
.word _ebss
.equ BootRAM, 0xF1E0F85F
/**
* @brief This is the code that gets called when the processor first
* starts execution following a reset event. Only the absolutely
* necessary set is performed, after which the application
* supplied main() routine is called.
* @param None
* @retval : None
*/
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
ldr r0, =_sdata
ldr r1, =_edata
ldr r2, =_sidata
movs r3, #0
b LoopCopyDataInit
CopyDataInit:
ldr r4, [r2, r3]
str r4, [r0, r3]
adds r3, r3, #4
LoopCopyDataInit:
adds r4, r0, r3
cmp r4, r1
bcc CopyDataInit
/* Zero fill the bss segment. */
ldr r2, =_sbss
ldr r4, =_ebss
movs r3, #0
b LoopFillZerobss
FillZerobss:
str r3, [r2]
adds r2, r2, #4
LoopFillZerobss:
cmp r2, r4
bcc FillZerobss
/* Call static constructors */
bl __libc_init_array
/* Call the application's entry point.*/
bl main
LoopForever:
b LoopForever
.size Reset_Handler, .-Reset_Handler
/**
* @brief This is the code that gets called when the processor receives an
* unexpected interrupt. This simply enters an infinite loop, preserving
* the system state for examination by a debugger.
*
* @param None
* @retval : None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
.size Default_Handler, .-Default_Handler
/******************************************************************************
*
* The minimal vector table for a Cortex-M4. Note that the proper constructs
* must be placed on this to ensure that it ends up at physical address
* 0x0000.0000.
*
******************************************************************************/
.section .isr_vector,"a",%progbits
.type g_pfnVectors, %object
g_pfnVectors:
.word _estack
.word Reset_Handler
.word NMI_Handler
.word HardFault_Handler
.word MemManage_Handler
.word BusFault_Handler
.word UsageFault_Handler
.word 0
.word 0
.word 0
.word 0
.word SVC_Handler
.word DebugMon_Handler
.word 0
.word PendSV_Handler
.word SysTick_Handler
.word WWDG_IRQHandler
.word PVD_PVM_IRQHandler
.word RTC_TAMP_LSECSS_IRQHandler
.word RTC_WKUP_IRQHandler
.word FLASH_IRQHandler
.word RCC_IRQHandler
.word EXTI0_IRQHandler
.word EXTI1_IRQHandler
.word EXTI2_IRQHandler
.word EXTI3_IRQHandler
.word EXTI4_IRQHandler
.word DMA1_Channel1_IRQHandler
.word DMA1_Channel2_IRQHandler
.word DMA1_Channel3_IRQHandler
.word DMA1_Channel4_IRQHandler
.word DMA1_Channel5_IRQHandler
.word DMA1_Channel6_IRQHandler
.word DMA1_Channel7_IRQHandler
.word ADC1_2_IRQHandler
.word USB_HP_IRQHandler
.word USB_LP_IRQHandler
.word FDCAN1_IT0_IRQHandler
.word FDCAN1_IT1_IRQHandler
.word EXTI9_5_IRQHandler
.word TIM1_BRK_TIM15_IRQHandler
.word TIM1_UP_TIM16_IRQHandler
.word TIM1_TRG_COM_TIM17_IRQHandler
.word TIM1_CC_IRQHandler
.word TIM2_IRQHandler
.word TIM3_IRQHandler
.word TIM4_IRQHandler
.word I2C1_EV_IRQHandler
.word I2C1_ER_IRQHandler
.word I2C2_EV_IRQHandler
.word I2C2_ER_IRQHandler
.word SPI1_IRQHandler
.word SPI2_IRQHandler
.word USART1_IRQHandler
.word USART2_IRQHandler
.word USART3_IRQHandler
.word EXTI15_10_IRQHandler
.word RTC_Alarm_IRQHandler
.word USBWakeUp_IRQHandler
.word TIM8_BRK_IRQHandler
.word TIM8_UP_IRQHandler
.word TIM8_TRG_COM_IRQHandler
.word TIM8_CC_IRQHandler
.word ADC3_IRQHandler
.word FMC_IRQHandler
.word LPTIM1_IRQHandler
.word TIM5_IRQHandler
.word SPI3_IRQHandler
.word UART4_IRQHandler
.word UART5_IRQHandler
.word TIM6_DAC_IRQHandler
.word TIM7_DAC_IRQHandler
.word DMA2_Channel1_IRQHandler
.word DMA2_Channel2_IRQHandler
.word DMA2_Channel3_IRQHandler
.word DMA2_Channel4_IRQHandler
.word DMA2_Channel5_IRQHandler
.word ADC4_IRQHandler
.word ADC5_IRQHandler
.word UCPD1_IRQHandler
.word COMP1_2_3_IRQHandler
.word COMP4_5_6_IRQHandler
.word COMP7_IRQHandler
.word HRTIM1_Master_IRQHandler
.word HRTIM1_TIMA_IRQHandler
.word HRTIM1_TIMB_IRQHandler
.word HRTIM1_TIMC_IRQHandler
.word HRTIM1_TIMD_IRQHandler
.word HRTIM1_TIME_IRQHandler
.word HRTIM1_FLT_IRQHandler
.word HRTIM1_TIMF_IRQHandler
.word CRS_IRQHandler
.word SAI1_IRQHandler
.word TIM20_BRK_IRQHandler
.word TIM20_UP_IRQHandler
.word TIM20_TRG_COM_IRQHandler
.word TIM20_CC_IRQHandler
.word FPU_IRQHandler
.word I2C4_EV_IRQHandler
.word I2C4_ER_IRQHandler
.word SPI4_IRQHandler
.word 0
.word FDCAN2_IT0_IRQHandler
.word FDCAN2_IT1_IRQHandler
.word FDCAN3_IT0_IRQHandler
.word FDCAN3_IT1_IRQHandler
.word RNG_IRQHandler
.word LPUART1_IRQHandler
.word I2C3_EV_IRQHandler
.word I2C3_ER_IRQHandler
.word DMAMUX_OVR_IRQHandler
.word QUADSPI_IRQHandler
.word DMA1_Channel8_IRQHandler
.word DMA2_Channel6_IRQHandler
.word DMA2_Channel7_IRQHandler
.word DMA2_Channel8_IRQHandler
.word CORDIC_IRQHandler
.word FMAC_IRQHandler
.size g_pfnVectors, .-g_pfnVectors
/*******************************************************************************
*
* Provide weak aliases for each Exception handler to the Default_Handler.
* As they are weak aliases, any function with the same name will override
* this definition.
*
*******************************************************************************/
.weak NMI_Handler
.thumb_set NMI_Handler,Default_Handler
.weak HardFault_Handler
.thumb_set HardFault_Handler,Default_Handler
.weak MemManage_Handler
.thumb_set MemManage_Handler,Default_Handler
.weak BusFault_Handler
.thumb_set BusFault_Handler,Default_Handler
.weak UsageFault_Handler
.thumb_set UsageFault_Handler,Default_Handler
.weak SVC_Handler
.thumb_set SVC_Handler,Default_Handler
.weak DebugMon_Handler
.thumb_set DebugMon_Handler,Default_Handler
.weak PendSV_Handler
.thumb_set PendSV_Handler,Default_Handler
.weak SysTick_Handler
.thumb_set SysTick_Handler,Default_Handler
.weak WWDG_IRQHandler
.thumb_set WWDG_IRQHandler,Default_Handler
.weak PVD_PVM_IRQHandler
.thumb_set PVD_PVM_IRQHandler,Default_Handler
.weak RTC_TAMP_LSECSS_IRQHandler
.thumb_set RTC_TAMP_LSECSS_IRQHandler,Default_Handler
.weak RTC_WKUP_IRQHandler
.thumb_set RTC_WKUP_IRQHandler,Default_Handler
.weak FLASH_IRQHandler
.thumb_set FLASH_IRQHandler,Default_Handler
.weak RCC_IRQHandler
.thumb_set RCC_IRQHandler,Default_Handler
.weak EXTI0_IRQHandler
.thumb_set EXTI0_IRQHandler,Default_Handler
.weak EXTI1_IRQHandler
.thumb_set EXTI1_IRQHandler,Default_Handler
.weak EXTI2_IRQHandler
.thumb_set EXTI2_IRQHandler,Default_Handler
.weak EXTI3_IRQHandler
.thumb_set EXTI3_IRQHandler,Default_Handler
.weak EXTI4_IRQHandler
.thumb_set EXTI4_IRQHandler,Default_Handler
.weak DMA1_Channel1_IRQHandler
.thumb_set DMA1_Channel1_IRQHandler,Default_Handler
.weak DMA1_Channel2_IRQHandler
.thumb_set DMA1_Channel2_IRQHandler,Default_Handler
.weak DMA1_Channel3_IRQHandler
.thumb_set DMA1_Channel3_IRQHandler,Default_Handler
.weak DMA1_Channel4_IRQHandler
.thumb_set DMA1_Channel4_IRQHandler,Default_Handler
.weak DMA1_Channel5_IRQHandler
.thumb_set DMA1_Channel5_IRQHandler,Default_Handler
.weak DMA1_Channel6_IRQHandler
.thumb_set DMA1_Channel6_IRQHandler,Default_Handler
.weak DMA1_Channel7_IRQHandler
.thumb_set DMA1_Channel7_IRQHandler,Default_Handler
.weak ADC1_2_IRQHandler
.thumb_set ADC1_2_IRQHandler,Default_Handler
.weak USB_HP_IRQHandler
.thumb_set USB_HP_IRQHandler,Default_Handler
.weak USB_LP_IRQHandler
.thumb_set USB_LP_IRQHandler,Default_Handler
.weak FDCAN1_IT0_IRQHandler
.thumb_set FDCAN1_IT0_IRQHandler,Default_Handler
.weak FDCAN1_IT1_IRQHandler
.thumb_set FDCAN1_IT1_IRQHandler,Default_Handler
.weak EXTI9_5_IRQHandler
.thumb_set EXTI9_5_IRQHandler,Default_Handler
.weak TIM1_BRK_TIM15_IRQHandler
.thumb_set TIM1_BRK_TIM15_IRQHandler,Default_Handler
.weak TIM1_UP_TIM16_IRQHandler
.thumb_set TIM1_UP_TIM16_IRQHandler,Default_Handler
.weak TIM1_TRG_COM_TIM17_IRQHandler
.thumb_set TIM1_TRG_COM_TIM17_IRQHandler,Default_Handler
.weak TIM1_CC_IRQHandler
.thumb_set TIM1_CC_IRQHandler,Default_Handler
.weak TIM2_IRQHandler
.thumb_set TIM2_IRQHandler,Default_Handler
.weak TIM3_IRQHandler
.thumb_set TIM3_IRQHandler,Default_Handler
.weak TIM4_IRQHandler
.thumb_set TIM4_IRQHandler,Default_Handler
.weak I2C1_EV_IRQHandler
.thumb_set I2C1_EV_IRQHandler,Default_Handler
.weak I2C1_ER_IRQHandler
.thumb_set I2C1_ER_IRQHandler,Default_Handler
.weak I2C2_EV_IRQHandler
.thumb_set I2C2_EV_IRQHandler,Default_Handler
.weak I2C2_ER_IRQHandler
.thumb_set I2C2_ER_IRQHandler,Default_Handler
.weak SPI1_IRQHandler
.thumb_set SPI1_IRQHandler,Default_Handler
.weak SPI2_IRQHandler
.thumb_set SPI2_IRQHandler,Default_Handler
.weak USART1_IRQHandler
.thumb_set USART1_IRQHandler,Default_Handler
.weak USART2_IRQHandler
.thumb_set USART2_IRQHandler,Default_Handler
.weak USART3_IRQHandler
.thumb_set USART3_IRQHandler,Default_Handler
.weak EXTI15_10_IRQHandler
.thumb_set EXTI15_10_IRQHandler,Default_Handler
.weak RTC_Alarm_IRQHandler
.thumb_set RTC_Alarm_IRQHandler,Default_Handler
.weak USBWakeUp_IRQHandler
.thumb_set USBWakeUp_IRQHandler,Default_Handler
.weak TIM8_BRK_IRQHandler
.thumb_set TIM8_BRK_IRQHandler,Default_Handler
.weak TIM8_UP_IRQHandler
.thumb_set TIM8_UP_IRQHandler,Default_Handler
.weak TIM8_TRG_COM_IRQHandler
.thumb_set TIM8_TRG_COM_IRQHandler,Default_Handler
.weak TIM8_CC_IRQHandler
.thumb_set TIM8_CC_IRQHandler,Default_Handler
.weak ADC3_IRQHandler
.thumb_set ADC3_IRQHandler,Default_Handler
.weak FMC_IRQHandler
.thumb_set FMC_IRQHandler,Default_Handler
.weak LPTIM1_IRQHandler
.thumb_set LPTIM1_IRQHandler,Default_Handler
.weak TIM5_IRQHandler
.thumb_set TIM5_IRQHandler,Default_Handler
.weak SPI3_IRQHandler
.thumb_set SPI3_IRQHandler,Default_Handler
.weak UART4_IRQHandler
.thumb_set UART4_IRQHandler,Default_Handler
.weak UART5_IRQHandler
.thumb_set UART5_IRQHandler,Default_Handler
.weak TIM6_DAC_IRQHandler
.thumb_set TIM6_DAC_IRQHandler,Default_Handler
.weak TIM7_DAC_IRQHandler
.thumb_set TIM7_DAC_IRQHandler,Default_Handler
.weak DMA2_Channel1_IRQHandler
.thumb_set DMA2_Channel1_IRQHandler,Default_Handler
.weak DMA2_Channel2_IRQHandler
.thumb_set DMA2_Channel2_IRQHandler,Default_Handler
.weak DMA2_Channel3_IRQHandler
.thumb_set DMA2_Channel3_IRQHandler,Default_Handler
.weak DMA2_Channel4_IRQHandler
.thumb_set DMA2_Channel4_IRQHandler,Default_Handler
.weak DMA2_Channel5_IRQHandler
.thumb_set DMA2_Channel5_IRQHandler,Default_Handler
.weak ADC4_IRQHandler
.thumb_set ADC4_IRQHandler,Default_Handler
.weak ADC5_IRQHandler
.thumb_set ADC5_IRQHandler,Default_Handler
.weak UCPD1_IRQHandler
.thumb_set UCPD1_IRQHandler,Default_Handler
.weak COMP1_2_3_IRQHandler
.thumb_set COMP1_2_3_IRQHandler,Default_Handler
.weak COMP4_5_6_IRQHandler
.thumb_set COMP4_5_6_IRQHandler,Default_Handler
.weak COMP7_IRQHandler
.thumb_set COMP7_IRQHandler,Default_Handler
.weak HRTIM1_Master_IRQHandler
.thumb_set HRTIM1_Master_IRQHandler,Default_Handler
.weak HRTIM1_TIMA_IRQHandler
.thumb_set HRTIM1_TIMA_IRQHandler,Default_Handler
.weak HRTIM1_TIMB_IRQHandler
.thumb_set HRTIM1_TIMB_IRQHandler,Default_Handler
.weak HRTIM1_TIMC_IRQHandler
.thumb_set HRTIM1_TIMC_IRQHandler,Default_Handler
.weak HRTIM1_TIMD_IRQHandler
.thumb_set HRTIM1_TIMD_IRQHandler,Default_Handler
.weak HRTIM1_TIME_IRQHandler
.thumb_set HRTIM1_TIME_IRQHandler,Default_Handler
.weak HRTIM1_FLT_IRQHandler
.thumb_set HRTIM1_FLT_IRQHandler,Default_Handler
.weak HRTIM1_TIMF_IRQHandler
.thumb_set HRTIM1_TIMF_IRQHandler,Default_Handler
.weak CRS_IRQHandler
.thumb_set CRS_IRQHandler,Default_Handler
.weak SAI1_IRQHandler
.thumb_set SAI1_IRQHandler,Default_Handler
.weak TIM20_BRK_IRQHandler
.thumb_set TIM20_BRK_IRQHandler,Default_Handler
.weak TIM20_UP_IRQHandler
.thumb_set TIM20_UP_IRQHandler,Default_Handler
.weak TIM20_TRG_COM_IRQHandler
.thumb_set TIM20_TRG_COM_IRQHandler,Default_Handler
.weak TIM20_CC_IRQHandler
.thumb_set TIM20_CC_IRQHandler,Default_Handler
.weak FPU_IRQHandler
.thumb_set FPU_IRQHandler,Default_Handler
.weak I2C4_EV_IRQHandler
.thumb_set I2C4_EV_IRQHandler,Default_Handler
.weak I2C4_ER_IRQHandler
.thumb_set I2C4_ER_IRQHandler,Default_Handler
.weak SPI4_IRQHandler
.thumb_set SPI4_IRQHandler,Default_Handler
.weak FDCAN2_IT0_IRQHandler
.thumb_set FDCAN2_IT0_IRQHandler,Default_Handler
.weak FDCAN2_IT1_IRQHandler
.thumb_set FDCAN2_IT1_IRQHandler,Default_Handler
.weak FDCAN3_IT0_IRQHandler
.thumb_set FDCAN3_IT0_IRQHandler,Default_Handler
.weak FDCAN3_IT1_IRQHandler
.thumb_set FDCAN3_IT1_IRQHandler,Default_Handler
.weak RNG_IRQHandler
.thumb_set RNG_IRQHandler,Default_Handler
.weak LPUART1_IRQHandler
.thumb_set LPUART1_IRQHandler,Default_Handler
.weak I2C3_EV_IRQHandler
.thumb_set I2C3_EV_IRQHandler,Default_Handler
.weak I2C3_ER_IRQHandler
.thumb_set I2C3_ER_IRQHandler,Default_Handler
.weak DMAMUX_OVR_IRQHandler
.thumb_set DMAMUX_OVR_IRQHandler,Default_Handler
.weak QUADSPI_IRQHandler
.thumb_set QUADSPI_IRQHandler,Default_Handler
.weak DMA1_Channel8_IRQHandler
.thumb_set DMA1_Channel8_IRQHandler,Default_Handler
.weak DMA2_Channel6_IRQHandler
.thumb_set DMA2_Channel6_IRQHandler,Default_Handler
.weak DMA2_Channel7_IRQHandler
.thumb_set DMA2_Channel7_IRQHandler,Default_Handler
.weak DMA2_Channel8_IRQHandler
.thumb_set DMA2_Channel8_IRQHandler,Default_Handler
.weak CORDIC_IRQHandler
.thumb_set CORDIC_IRQHandler,Default_Handler
.weak FMAC_IRQHandler
.thumb_set FMAC_IRQHandler,Default_Handler
Binary file not shown.
+20071
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
../Core/Src/main.c:149:5:main 1
../Core/Src/main.c:210:6:SystemClock_Config 3
../Core/Src/main.c:256:13:MX_ADC3_Init 4
../Core/Src/main.c:324:13:MX_ADC4_Init 3
../Core/Src/main.c:383:13:MX_COMP5_Init 2
../Core/Src/main.c:415:13:MX_COMP7_Init 2
../Core/Src/main.c:447:13:MX_CORDIC_Init 2
../Core/Src/main.c:473:13:MX_DAC1_Init 3
../Core/Src/main.c:520:13:MX_DAC4_Init 3
../Core/Src/main.c:567:13:MX_FMAC_Init 2
../Core/Src/main.c:593:13:MX_HRTIM1_Init 20
../Core/Src/main.c:749:13:MX_TIM1_Init 4
../Core/Src/main.c:796:13:MX_USART1_UART_Init 5
../Core/Src/main.c:844:13:MX_GPIO_Init 1
../Core/Src/main.c:873:6:HAL_TIM_PeriodElapsedCallback 6
../Core/Src/main.c:914:6:Error_Handler 1
+80
View File
@@ -0,0 +1,80 @@
Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h \
../Core/Inc/stm32g4xx_hal_conf.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h \
../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h \
../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g474xx.h \
../Drivers/CMSIS/Include/core_cm4.h \
../Drivers/CMSIS/Include/cmsis_version.h \
../Drivers/CMSIS/Include/cmsis_compiler.h \
../Drivers/CMSIS/Include/cmsis_gcc.h \
../Drivers/CMSIS/Include/mpu_armv7.h \
../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_comp.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cordic.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dac.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dac_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_fmac.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_hrtim.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h \
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h
../Core/Inc/main.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h:
../Core/Inc/stm32g4xx_hal_conf.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h:
../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g4xx.h:
../Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g474xx.h:
../Drivers/CMSIS/Include/core_cm4.h:
../Drivers/CMSIS/Include/cmsis_version.h:
../Drivers/CMSIS/Include/cmsis_compiler.h:
../Drivers/CMSIS/Include/cmsis_gcc.h:
../Drivers/CMSIS/Include/mpu_armv7.h:
../Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_rcc_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cortex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_adc.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_adc_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_comp.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_ll_exti.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cordic.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dac.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dac_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_exti.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash_ramfunc.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_fmac.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_hrtim.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_pwr_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_tim_ex.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h:
../Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart_ex.h:
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More