Refactor: padroniza schema de conexões e atualiza UI do diagrama + melhorias na página de série

- Padroniza JSON de conexões (vários chips): normaliza "numero", unifica categorias, substitui "restricoes" por "avisos" (array), adiciona "alimentacao" e revisa campos de tipo/funcões/avisos.
- Atualiza large conjunto de arquivos em public/conexoes (ESP32, ESP32-S2/S3/C3/C5/C6/H2/P4) para o novo formato e dados mais completos.
- Adapta ConnectionsDiagram.jsx ao novo schema:
  - atualiza FILTER_CATEGORIES e type_colors;
  - usa cores por tipo (type_colors) para background/bordas/indicadores;
  - renomeia/exibe avisos, altera labels (ex: "Conexão" → "Pino"), melhora renderização de badges e contadores;
  - refina modal (overlay, classes, exibição de categorias, seção de alimentação e lista de avisos).
- Altera page de série (app/series/[key]/page.jsx):
  - adiciona bloco "Sobre a Matriz de Conexões Flexível";
  - adiciona links rápidos: Datasheet, Guia de Programação e (condicional) Manual Técnico;
  - ajusta estilos de botões/grades e espaçamento (md:mx-8);
  - simplifica previous/next (retorna null em vez de placeholders vazios).
- Atualiza public/series.json com links de manual/guia, correções de specs (GPIO, temperaturas, descrições) e outras metadatas.

Resultados: dados de conexões padronizados, componente de diagrama consistente com o novo schema, melhor UX na página de série e acesso direto a documentação.
This commit is contained in:
Lucas Rayan committed 2025-10-27 10:56:03 -03:00
1 parent 941dd266a0
commit e169e29d0d
11 files changed
+5139 -3433

No files matched your search

+49 -16
View File
@@ -82,6 +82,23 @@ export default async function SerieDetail({ params }) {
content: (
<div className="bg-white rounded-3xl shadow-xl p-8 border-2 border-gray-100">
<ConnectionsDiagram connections={conexoes} color={serie.cor} />
<div className="bg-white rounded-2xl shadow-lg p-6 border-2 border-gray-100">
<h3 className="text-lg font-bold text-gray-800 mb-3 flex items-center gap-2">
<svg className="w-5 h-5 text-blue-600" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clipRule="evenodd" />
</svg>
Sobre a Matriz de Conexões Flexível
</h3>
<p className="text-gray-700 leading-relaxed">
O ESP32 possui uma matriz de conexões flexível que permite mapear diversas funções para múltiplos pinos.
Isso significa que muitas conexões podem ser configuradas para desempenhar diferentes papéis, dependendo das necessidades do seu projeto.
Consulte a documentação oficial para entender como aproveitar ao máximo as GPIOs&nbsp;
<a href={`https://docs.espressif.com/projects/esp-idf/en/latest/${String(key).toLowerCase().replace("-", "")}/api-reference/peripherals/gpio.html`} target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:underline">
nesse link.
</a>
</p>
</div>
</div>
)
},
@@ -166,14 +183,34 @@ export default async function SerieDetail({ params }) {
</div>
</div>
<a
href={serie.datasheet}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 bg-linear-to-r from-blue-600 to-purple-600 text-white px-6 py-3 rounded-xl font-semibold shadow-lg hover:shadow-xl transform hover:-translate-y-1 transition-all duration-300"
>
📄 Datasheet Oficial
</a>
<div className="grid gap-3 mx-auto md:mx-0">
<a
href={serie.datasheet}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 bg-blue-600 text-white px-6 py-3 rounded-xl font-semibold shadow-lg hover:shadow-xl transform hover:-translate-y-1 transition-all duration-300"
>
📄 Datasheet Oficial
</a>
<a
href={serie.guia_de_programacao}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 bg-green-600 text-white px-6 py-3 rounded-xl font-semibold shadow-lg hover:shadow-xl transform hover:-translate-y-1 transition-all duration-300"
>
💻 Guia de Programação
</a>
{serie.manual_tecnico && <a
href={serie.manual_tecnico}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 bg-purple-600 text-white px-6 py-3 rounded-xl font-semibold shadow-lg hover:shadow-xl transform hover:-translate-y-1 transition-all duration-300"
>
📖 Manual Técnico
</a>}
</div>
</div>
<p className="text-lg text-gray-700 mt-6 leading-relaxed">
@@ -204,7 +241,7 @@ export default async function SerieDetail({ params }) {
<SeriesTabMenu tabs={tabs} color={serie.cor} />
<div className="grid sm:flex sm:justify-between items-center gap-4 mt-12">
<div className="grid sm:flex sm:justify-between items-center gap-4 mt-12 md:mx-8">
{previousKey ? (
<Link
href={`/series/${previousKey}`}
@@ -216,10 +253,8 @@ export default async function SerieDetail({ params }) {
<p className="font-semibold text-gray-800">{previousKey}</p>
</div>
</Link>
) : (
<div />
)}
) : null}
<Link
href="/comparacao"
className="bg-linear-to-r from-blue-600 to-purple-600 text-white px-6 py-3 rounded-xl font-semibold shadow-lg hover:shadow-xl transform hover:-translate-y-1 transition-all duration-300"
@@ -238,9 +273,7 @@ export default async function SerieDetail({ params }) {
</div>
<span>→</span>
</Link>
) : (
<div />
)}
) : null}
</div>
</main>
+79 -51
View File
@@ -3,30 +3,43 @@
import { useState, useEffect, useMemo } from "react";
const FILTER_CATEGORIES = [
{ id: "All", name: "Todos", color: "#64748b" },
{ id: "Ground", name: "Terra (GND)", color: "#64748b" },
{ id: "All", name: "Todos", color: "#374151" },
{ id: "GND", name: "Terra (GND)", color: "#64748b" },
{ id: "Power", name: "Alimentação", color: "#ef4444" },
{ id: "RTC", name: "RTC", color: "#f59e0b" },
{ id: "GPIO", name: "GPIO", color: "#22c55e" },
{ id: "Low Power", name: "GPIO LP", color: "#f59e0b" },
{ id: "ADC", name: "ADC", color: "#ec4899" },
{ id: "DAC", name: "DAC", color: "#a855f7" },
{ id: "Touch", name: "Touch", color: "#06b6d4" },
{ id: "UART", name: "UART", color: "#3b82f6" },
{ id: "SPI", name: "SPI", color: "#ef4444" },
{ id: "I2C", name: "I2C", color: "#10b981" },
{ id: "PWM", name: "PWM", color: "#f97316" },
{ id: "USB", name: "USB", color: "#8b5cf6" },
{ id: "Clock", name: "Clock", color: "#eab308" },
{ id: "JTAG", name: "JTAG", color: "#8b5cf6" },
{ id: "Strapping", name: "Inicialização", color: "#dc2626" },
{ id: "DSI", name: "Display (DSI)", color: "#f97316" },
{ id: "CSI", name: "Câmera (CSI)", color: "#14b8a6" },
{ id: "Ethernet", name: "Ethernet", color: "#3b82f6" },
{ id: "SD", name: "Cartão SD", color: "#10b981" },
{ id: "I2C", name: "I2C", color: "#f59e0b" },
{ id: "Antena", name: "Antena", color: "#22d3ee" },
];
const type_colors = {
power: "#ef4444",
ground: "#64748b",
io: "#22c55e",
analog: "#ec4899",
dedicated: "#3b82f6",
nc: "#9ca3af",
};
export default function ConnectionsDiagram({ connections, color }) {
const [activeFilter, setActiveFilter] = useState("All");
const [selectedConnection, setSelectedConnection] = useState(null);
const [hoveredConnection, setHoveredConnection] = useState(null);
const [searchQuery, setSearchQuery] = useState("");
const [viewMode, setViewMode] = useState("grid"); // 'grid' or 'list'
const [viewMode, setViewMode] = useState("grid");
const [showTooltip, setShowTooltip] = useState(null);
const isConnectionVisible = (connection) => {
@@ -326,17 +339,17 @@ export default function ConnectionsDiagram({ connections, color }) {
onBlur={() => setHoveredConnection(null)}
aria-label={`Connection ${connection.nome}, number ${connection.numero}`}
aria-describedby={showTooltip === index ? `tooltip-${index}` : undefined}
className="relative w-full flex flex-col items-center justify-center p-3 rounded-2xl border-2 transition-all duration-300 opacity-100 hover:scale-110 hover:shadow-2xl hover:z-10 cursor-pointer active:scale-95 focus:outline-none focus:ring-4 focus:ring-offset-2"
className="relative w-full flex flex-col items-center justify-center p-3 rounded-2xl border-2 transition-all duration-300 opacity-100 hover:scale-110 hover:shadow-2xl hover:z-10 cursor-pointer active:scale-95 focus:outline-none focus:border-4"
style={{
backgroundColor: connection.cor + "15",
borderColor: isHovered ? connection.cor : connection.cor + "60",
backgroundColor: type_colors[connection.tipo] + (isHovered ? "20" : "10"),
borderColor: isHovered ? type_colors[connection.tipo] : type_colors[connection.tipo] + "60",
transform: isHovered ? "translateY(-2px)" : undefined,
focusRingColor: connection.cor,
focusRingColor: type_colors[connection.tipo],
}}
>
<div
className="w-14 h-14 rounded-full flex items-center justify-center text-white font-bold text-sm mb-3 shadow-lg ring-2 ring-white"
style={{ backgroundColor: connection.cor }}
className="w-14 h-14 rounded-full flex items-center justify-center text-white font-bold text-sm mb-3 shadow-lg"
style={{ backgroundColor: type_colors[connection.tipo] }}
>
{typeof connection.numero === "number"
? connection.numero
@@ -347,23 +360,23 @@ export default function ConnectionsDiagram({ connections, color }) {
{connection.nome}
</div>
<div className="flex flex-wrap gap-1 justify-center">
<div className="flex flex-wrap gap-1 justify-center leading-2">
{connection.categorias.slice(0, 5).map((cat) => (
<span
key={cat}
className="w-1.5 h-1.5 rounded-full"
className="w-1.5 h-1.5 my-auto rounded-full"
style={{ backgroundColor: getCategoryColor(cat) }}
title={cat}
/>
))}
{connection.categorias.length > 5 && (
<span className="text-[10px] text-gray-500 font-medium">
<span className="text-[10px] text-gray-500 font-medium leading-2">
+{connection.categorias.length - 5}
</span>
)}
</div>
{connection.restricoes && (
{connection.avisos && (
<div
className="absolute -top-2 -right-2 bg-red-500 rounded-full p-1.5 shadow-lg ring-2 ring-white"
aria-label="Has restrictions"
@@ -391,7 +404,7 @@ export default function ConnectionsDiagram({ connections, color }) {
style={{ minWidth: "200px" }}
>
<div className="font-bold mb-1">{connection.nome}</div>
<div className="text-gray-300 mb-2">{connection.numero}</div>
<div className="text-gray-300 mb-2">Pino {connection.numero}</div>
<div className="flex flex-wrap gap-1 mb-2">
{connection.categorias.map((cat) => (
<span
@@ -425,7 +438,7 @@ export default function ConnectionsDiagram({ connections, color }) {
<th className="px-6 py-4 text-left text-xs font-bold text-gray-700 uppercase tracking-wider">Nome</th>
<th className="px-6 py-4 text-left text-xs font-bold text-gray-700 uppercase tracking-wider">Categorias</th>
<th className="px-6 py-4 text-left text-xs font-bold text-gray-700 uppercase tracking-wider">Funções</th>
<th className="px-6 py-4 text-center text-xs font-bold text-gray-700 uppercase tracking-wider">Status</th>
<th className="px-6 py-4 text-center text-xs font-bold text-gray-700 uppercase tracking-wider">Avisos</th>
</tr>
</thead>
<tbody className="divide-y divide-gray-200">
@@ -438,7 +451,7 @@ export default function ConnectionsDiagram({ connections, color }) {
<td className="px-6 py-4 whitespace-nowrap">
<div
className="w-10 h-10 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-md"
style={{ backgroundColor: connection.cor }}
style={{ backgroundColor: type_colors[connection.tipo] }}
>
{typeof connection.numero === "number"
? connection.numero
@@ -469,19 +482,19 @@ export default function ConnectionsDiagram({ connections, color }) {
</div>
</td>
<td className="px-6 py-4 text-center">
{connection.restricoes ? (
{connection.avisos ? (
<span className="inline-flex items-center gap-1 px-2 py-1 rounded-full bg-red-100 text-red-700 text-xs font-medium">
<svg className="w-3.5 h-3.5" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clipRule="evenodd" />
</svg>
Atenção
Sim
</span>
) : (
<span className="inline-flex items-center gap-1 px-2 py-1 rounded-full bg-green-100 text-green-700 text-xs font-medium">
<svg className="w-3.5 h-3.5" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clipRule="evenodd" />
</svg>
OK
Não
</span>
)}
</td>
@@ -493,7 +506,7 @@ export default function ConnectionsDiagram({ connections, color }) {
</div>
)}
{connections.some(c => c.restricoes) && (
{connections.some(c => c.avisos) && (
<div className="bg-linear-to-r from-amber-50 to-yellow-50 border-2 border-amber-200 rounded-2xl p-6 shadow-sm">
<div className="flex gap-4">
<div className="shrink-0">
@@ -537,7 +550,7 @@ export default function ConnectionsDiagram({ connections, color }) {
{selectedConnection && (
<div
className="fixed inset-0 bg-black bg-opacity-80 backdrop-blur-sm flex items-center justify-center p-4 z-50 animate-fadeIn"
className="fixed inset-0 bg-opacity-80 backdrop-blur-xs flex items-center justify-center p-4 z-50 animate-fadeIn"
onClick={() => setSelectedConnection(null)}
role="dialog"
aria-modal="true"
@@ -552,7 +565,7 @@ export default function ConnectionsDiagram({ connections, color }) {
<div className="flex items-center gap-5 flex-1">
<div
className="w-16 h-16 rounded-2xl flex items-center justify-center text-white font-bold text-xl shadow-xl ring-4 ring-white shrink-0"
style={{ backgroundColor: selectedConnection.cor }}
style={{ backgroundColor: type_colors[selectedConnection.tipo] }}
>
{typeof selectedConnection.numero === "number"
? selectedConnection.numero
@@ -563,7 +576,7 @@ export default function ConnectionsDiagram({ connections, color }) {
{selectedConnection.nome}
</h3>
<p className="text-base text-gray-600">
Conexão {selectedConnection.numero}
Pino {selectedConnection.numero}
</p>
</div>
</div>
@@ -589,7 +602,7 @@ export default function ConnectionsDiagram({ connections, color }) {
</div>
<div className="flex-1 overflow-y-auto p-8 space-y-8">
<div>
{selectedConnection.categorias.length > 0 && (<div>
<h4 className="text-lg font-bold text-gray-900 mb-4 flex items-center gap-2">
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path d="M7 3a1 1 0 000 2h6a1 1 0 100-2H7zM4 7a1 1 0 011-1h10a1 1 0 110 2H5a1 1 0 01-1-1zM2 11a2 2 0 012-2h12a2 2 0 012 2v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4z" />
@@ -601,19 +614,43 @@ export default function ConnectionsDiagram({ connections, color }) {
{selectedConnection.categorias.map((cat) => (
<span
key={cat}
className="px-4 py-2 rounded-xl text-sm font-bold text-white shadow-md ring-2 ring-white"
className="px-4 py-2 rounded-xl text-sm font-bold text-white shadow-md"
style={{ backgroundColor: getCategoryColor(cat) }}
>
{cat === "Strapping" ? "Inicialização" : cat}
</span>
))}
</div>
</div>
</div>)}
{selectedConnection.alimentacao && (
<div>
<h4 className="text-lg font-bold text-gray-900 mb-4 flex items-center gap-2">
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M11.3 1.046A1 1 0 0112 2v5h4a1 1 0 01.82 1.573l-7 10A1 1 0 018 18v-5H4a1 1 0 01-.82-1.573l7-10a1 1 0 011.12-.38z" clipRule="evenodd" />
</svg>
Alimentado por:
</h4>
<div className="bg-linear-to-br from-blue-50 to-indigo-50 rounded-2xl p-6 border border-blue-200">
<ul className="space-y-3">
{selectedConnection.alimentacao.map((source, index) => (
<li key={index} className="flex items-start gap-4 text-sm group">
<span
className="mt-1.5 shrink-0 w-2 h-2 rounded-full"
style={{ backgroundColor: type_colors["power"] }}
/>
<span className="text-gray-800 font-medium leading-relaxed">{source}</span>
</li>
))}
</ul>
</div>
</div>
)}
<div>
<h4 className="text-lg font-bold text-gray-900 mb-4 flex items-center gap-2">
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M11.3 1.046A1 1 0 0112 2v5h4a1 1 0 01.82 1.573l-7 10A1 1 0 018 18v-5H4a1 1 0 01-.82-1.573l7-10a1 1 0 011.12-.38z" clipRule="evenodd" />
<path d="M13 7H7v6h6V7zM5 3a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2V5a2 2 0 00-2-2H5z" />
</svg>
Funções da Conexão
</h4>
@@ -623,8 +660,8 @@ export default function ConnectionsDiagram({ connections, color }) {
{selectedConnection.funcoes.map((func, index) => (
<li key={index} className="flex items-start gap-4 text-sm group">
<span
className="mt-1 shrink-0 w-2 h-2 rounded-full group-hover:scale-125 transition-transform"
style={{ backgroundColor: color }}
className="mt-1.5 shrink-0 w-2 h-2 rounded-full"
style={{ backgroundColor: type_colors[selectedConnection.tipo] }}
/>
<span className="text-gray-800 font-medium leading-relaxed">{func}</span>
</li>
@@ -633,7 +670,7 @@ export default function ConnectionsDiagram({ connections, color }) {
</div>
</div>
{selectedConnection.restricoes && (
{selectedConnection.avisos && (
<div className="bg-linear-to-br from-red-50 to-rose-50 border-2 border-red-200 rounded-2xl p-6 shadow-sm">
<div className="flex gap-4">
<div className="shrink-0">
@@ -653,11 +690,16 @@ export default function ConnectionsDiagram({ connections, color }) {
</div>
<div className="flex-1">
<p className="text-lg font-bold text-red-900 mb-3">
Alertas Importantes
</p>
<p className="text-sm text-red-800 leading-relaxed">
{selectedConnection.restricoes}
Avisos Importantes
</p>
{selectedConnection.avisos.map((aviso, index) => (
<div key={index} className="flex items-start gap-3 mb-2">
<span className="text-red-600 font-bold">•</span>
<span className="text-sm text-red-800 leading-relaxed">
{aviso}
</span>
</div>
))}
</div>
</div>
</div>
@@ -678,20 +720,6 @@ export default function ConnectionsDiagram({ connections, color }) {
</div>
)}
<div className="bg-white rounded-2xl shadow-lg p-6 border-2 border-gray-100">
<h3 className="text-lg font-bold text-gray-800 mb-3 flex items-center gap-2">
<svg className="w-5 h-5 text-blue-600" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clipRule="evenodd" />
</svg>
Sobre a Matriz de Conexões Flexível
</h3>
<p className="text-gray-700 leading-relaxed">
O ESP32 possui uma matriz de conexões flexível que permite mapear diversas funções para múltiplos pinos.
Isso significa que muitas conexões podem ser configuradas para desempenhar diferentes papéis, dependendo das necessidades do seu projeto.
Consulte a documentação oficial para entender como aproveitar ao máximo essa flexibilidade.
</p>
</div>
<style jsx>{`
@keyframes fadeIn {
from {
+303 -260
View File
@@ -1,104 +1,43 @@
[
{
"numero": "GND",
"nome": "GND",
"tipo": "ground",
"funcoes": [
"Referência elétrica do sistema",
"Conexão externa de terra"
],
"categorias": [
"Ground"
],
"cor": "#64748b",
"restricoes": ""
"numero": "1",
"nome": "LNA_IN",
"tipo": "analog",
"funcoes": ["Entrada e saída dos sinais de RF (Wi-Fi e Bluetooth) para a antena"],
"categorias": ["Antena"],
"avisos": ["Consulte o item 2.4 do datasheet para mais detalhes sobre pinos analógicos"]
},
{
"numero": "VDD3P3",
"numero": "2",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": [
"Alimentação do domínio analógico"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "VDDA",
"nome": "VDDA",
"numero": "3",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": [
"Alimentação do domínio analógico"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "VDD3P3_RTC",
"nome": "VDD3P3_RTC",
"tipo": "power",
"funcoes": [
"Alimentação para o domínio RTC e parte do domínio digital"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
},
{
"numero": "VDD3P3_CPU",
"nome": "VDD3P3_CPU",
"tipo": "power",
"funcoes": [
"Alimentação para o domínio digital e CPU"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V); não exceder 3.3 V para gravação de eFuse"
},
{
"numero": "VDDSPI",
"nome": "VDDSPI",
"tipo": "power",
"funcoes": [
"Alimentação dos barramentos Flash e PSRAM",
"Pode funcionar como entrada ou saída",
"Backup de alimentação para flash integrado"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Pode ser 3.3 V ou configurável como GPIO; padrão para alimentação de flash"
},
{
"numero": "CHIP_PU",
"nome": "CHIP_PU (EN)",
"tipo": "power",
"funcoes": [
"Habilitar chip (nível alto)",
"Reseta o chip (nível baixo)"
],
"categorias": [
"Power",
"Reset"
],
"cor": "#f97316",
"restricoes": "Deve estar em nível alto para operação normal; não deixar flutuante"
},
{
"numero": 0,
"nome": "GPIO0",
"tipo": "gpio",
"numero": "4",
"nome": "XTAL_32K_P",
"tipo": "io",
"alimentacao": ["VDD3P3_RTC"],
"funcoes": [
"GPIO0",
"XTAL_32K_P",
@@ -106,17 +45,15 @@
],
"categorias": [
"GPIO",
"RTC",
"ADC",
"Clock"
],
"cor": "#3b82f6",
"restricoes": "Pode ser usado para cristal RTC de 32.768 kHz"
"Clock",
"ADC"
]
},
{
"numero": 1,
"nome": "GPIO1",
"tipo": "gpio",
"numero": "5",
"nome": "XTAL_32K_N",
"tipo": "io",
"alimentacao": ["VDD3P3_RTC"],
"funcoes": [
"GPIO1",
"XTAL_32K_N",
@@ -124,17 +61,15 @@
],
"categorias": [
"GPIO",
"RTC",
"ADC",
"Clock"
],
"cor": "#3b82f6",
"restricoes": "Pode ser usado para cristal RTC de 32.768 kHz"
"Clock",
"ADC"
]
},
{
"numero": 2,
"numero": "6",
"nome": "GPIO2",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDD3P3_RTC"],
"funcoes": [
"GPIO2",
"ADC1_CH2",
@@ -143,135 +78,179 @@
"categorias": [
"GPIO",
"ADC",
"RTC",
"SPI",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Strapping pin; recomendado pull-up devido a glitches"
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada",
"Na verdade, esse pino não determina o modo de boot, mas é recomendado conectar ele com um pull-up para evitar glitches (consulte o item 3.1 do datasheet para mais detalhes)"
]
},
{
"numero": 3,
"numero": "7",
"nome": "CHIP_EN",
"tipo": "analog",
"funcoes": ["Habilitar o chip"],
"categorias": ["Power"],
"avisos": [
"Colocar este pino em nível alto habilitará o funcionamento do chip",
"Colocar este pino em nível baixo desabilitará o funcionamento do chip",
"Não deixe este pino flutuando, utilize um resistor de pull-up externo"
]
},
{
"numero": "8",
"nome": "GPIO3",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDD3P3_RTC"],
"funcoes": [
"GPIO3",
"ADC1_CH3"
],
"categorias": [
"GPIO",
"ADC",
"RTC"
"ADC"
],
"cor": "#3b82f6",
"restricoes": ""
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada"
]
},
{
"numero": 4,
"nome": "GPIO4",
"tipo": "gpio",
"numero": "9",
"nome": "MTMS",
"tipo": "io",
"alimentacao": ["VDD3P3_RTC"],
"funcoes": [
"GPIO4",
"ADC1_CH4",
"MTMS",
"FSPIHD"
"FSPIHD",
"MTMS"
],
"categorias": [
"GPIO",
"ADC",
"RTC",
"JTAG",
"SPI"
"SPI",
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Mode Select"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 5,
"nome": "GPIO5",
"tipo": "gpio",
"numero": "10",
"nome": "MTDI",
"tipo": "io",
"alimentacao": ["VDD3P3_RTC"],
"funcoes": [
"GPIO5",
"ADC2_CH0",
"MTDI",
"FSPIWP"
"FSPIWP",
"MTDI"
],
"categorias": [
"GPIO",
"ADC",
"RTC",
"JTAG",
"SPI"
"SPI",
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Data In"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 6,
"nome": "GPIO6",
"tipo": "gpio",
"numero": "11",
"nome": "VDD3P3_RTC",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio de baixo consumo e parte do domínio digital"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "12",
"nome": "MTCK",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO6",
"MTCK",
"FSPICLK"
"FSPICLK",
"MTCK"
],
"categorias": [
"GPIO",
"JTAG",
"SPI"
"SPI",
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Clock"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 7,
"nome": "GPIO7",
"tipo": "gpio",
"numero": "13",
"nome": "MTDO",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO7",
"MTDO",
"FSPID"
"FSPID",
"MTDO"
],
"categorias": [
"GPIO",
"JTAG",
"SPI"
"SPI",
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Data Out"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 8,
"numero": "14",
"nome": "GPIO8",
"tipo": "gpio",
"funcoes": [
"GPIO8"
],
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": ["GPIO8"],
"categorias": [
"GPIO",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Strapping pin para controle de modo de boot e impressão ROM"
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada",
"Utilizado para controlar o modo de boot do chip (consulte o item 3.1 do datasheet para mais detalhes)"
]
},
{
"numero": 9,
"numero": "15",
"nome": "GPIO9",
"tipo": "gpio",
"funcoes": [
"GPIO9"
],
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": ["GPIO9"],
"categorias": [
"GPIO",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Pull-up interno; strapping pin para modo boot (alto=SPI boot)"
"avisos": [
"Durante o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado para controlar o modo de boot do chip (consulte o item 3.1 do datasheet para mais detalhes)"
]
},
{
"numero": 10,
"numero": "16",
"nome": "GPIO10",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO10",
"FSPICS0"
@@ -280,26 +259,47 @@
"GPIO",
"SPI"
],
"cor": "#3b82f6",
"restricoes": ""
"avisos": ["Após o reset, este pino estará configurado como entrada"]
},
{
"numero": 11,
"nome": "GPIO11",
"tipo": "gpio",
"numero": "17",
"nome": "VDD3P3_CPU",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio digital"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "18",
"nome": "VDD_SPI",
"tipo": "power",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"Entrada/saída da alimentação da flash interna/externa",
"GPIO11"
],
"categorias": [
"Power",
"GPIO"
],
"cor": "#3b82f6",
"restricoes": "Pin VDDSPI pode ser configurado como GPIO se flash for alimentado externamente"
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip",
"Só pode ser utilizado como GPIO se a memória flash estiver sendo alimentada por uma fonte externa"
]
},
{
"numero": 12,
"nome": "GPIO12",
"tipo": "gpio",
"numero": "19",
"nome": "SPIHD",
"tipo": "io",
"alimentacao": ["VDD_SPI", "VDD3P3_CPU"],
"funcoes": [
"GPIO12",
"SPIHD"
@@ -308,13 +308,18 @@
"GPIO",
"SPI"
],
"cor": "#f97316",
"restricoes": "Compartilhado com flash; pull-up interno; não usar como GPIO normal"
"avisos": [
"Durante o reset, este pino estará com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado pela memória flash SPI",
"Não é recomendado utilizar este pino como GPIO"
]
},
{
"numero": 13,
"nome": "GPIO13",
"tipo": "gpio",
"numero": "20",
"nome": "SPIWP",
"tipo": "io",
"alimentacao": ["VDD_SPI", "VDD3P3_CPU"],
"funcoes": [
"GPIO13",
"SPIWP"
@@ -323,13 +328,18 @@
"GPIO",
"SPI"
],
"cor": "#f97316",
"restricoes": "Compartilhado com flash; pull-up interno; não usar como GPIO normal"
"avisos": [
"Durante o reset, este pino estará com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado pela memória flash SPI",
"Não é recomendado utilizar este pino como GPIO"
]
},
{
"numero": 14,
"nome": "GPIO14",
"tipo": "gpio",
"numero": "21",
"nome": "SPICS0",
"tipo": "io",
"alimentacao": ["VDD_SPI", "VDD3P3_CPU"],
"funcoes": [
"GPIO14",
"SPICS0"
@@ -338,13 +348,18 @@
"GPIO",
"SPI"
],
"cor": "#f97316",
"restricoes": "Compartilhado com flash; pull-up interno; não usar como GPIO normal"
"avisos": [
"Durante o reset, este pino estará com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado pela memória flash SPI",
"Não é recomendado utilizar este pino como GPIO"
]
},
{
"numero": 15,
"nome": "GPIO15",
"tipo": "gpio",
"numero": "22",
"nome": "SPICLK",
"tipo": "io",
"alimentacao": ["VDD_SPI", "VDD3P3_CPU"],
"funcoes": [
"GPIO15",
"SPICLK"
@@ -353,13 +368,18 @@
"GPIO",
"SPI"
],
"cor": "#f97316",
"restricoes": "Compartilhado com flash; pull-up interno; não usar como GPIO normal"
"avisos": [
"Durante o reset, este pino estará com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado pela memória flash SPI",
"Não é recomendado utilizar este pino como GPIO"
]
},
{
"numero": 16,
"nome": "GPIO16",
"tipo": "gpio",
"numero": "23",
"nome": "SPID",
"tipo": "io",
"alimentacao": ["VDD_SPI", "VDD3P3_CPU"],
"funcoes": [
"GPIO16",
"SPID"
@@ -368,13 +388,18 @@
"GPIO",
"SPI"
],
"cor": "#f97316",
"restricoes": "Compartilhado com flash; pull-up interno; não usar como GPIO normal"
"avisos": [
"Durante o reset, este pino estará com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado pela memória flash SPI",
"Não é recomendado utilizar este pino como GPIO"
]
},
{
"numero": 17,
"nome": "GPIO17",
"tipo": "gpio",
"numero": "24",
"nome": "SPIQ",
"tipo": "io",
"alimentacao": ["VDD_SPI", "VDD3P3_CPU"],
"funcoes": [
"GPIO17",
"SPIQ"
@@ -383,13 +408,18 @@
"GPIO",
"SPI"
],
"cor": "#f97316",
"restricoes": "Compartilhado com flash; pull-up interno; não usar como GPIO normal"
"avisos": [
"Durante o reset, este pino estará com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado pela memória flash SPI",
"Não é recomendado utilizar este pino como GPIO"
]
},
{
"numero": 18,
"numero": "25",
"nome": "GPIO18",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO18",
"USB_D-"
@@ -398,13 +428,13 @@
"GPIO",
"USB"
],
"cor": "#3b82f6",
"restricoes": "USB D- para USB OTG e USB Serial/JTAG"
"avisos": ["Por padrão, este pino é utilizado para USB Serial/JTAG"]
},
{
"numero": 19,
"numero": "26",
"nome": "GPIO19",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO19",
"USB_D+"
@@ -413,78 +443,91 @@
"GPIO",
"USB"
],
"cor": "#3b82f6",
"restricoes": "USB D+ para USB OTG e USB Serial/JTAG"
"avisos": ["Por padrão, este pino é utilizado para USB Serial/JTAG"]
},
{
"numero": 20,
"nome": "GPIO20",
"tipo": "gpio",
"numero": "27",
"nome": "U0RXD",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO20",
"UART0_RXD"
"U0RXD"
],
"categorias": [
"GPIO",
"UART"
],
"cor": "#3b82f6",
"restricoes": "Pull-up interno; UART0 RX para download de firmware"
"avisos": [
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Pino utilizado para debugging"
]
},
{
"numero": 21,
"nome": "GPIO21",
"tipo": "gpio",
"numero": "28",
"nome": "U0TXD",
"tipo": "io",
"alimentacao": ["VDD3P3_CPU"],
"funcoes": [
"GPIO21",
"UART0_TXD"
"U0TXD"
],
"categorias": [
"GPIO",
"UART"
],
"cor": "#3b82f6",
"restricoes": "Pull-up interno; UART0 TX para download de firmware"
"avisos": [
"Após o reset, este pino estará com o pull-up interno ativado",
"Pino utilizado para debugging"
]
},
{
"numero": "XTAL_N",
"numero": "29",
"nome": "XTAL_N",
"tipo": "analógico",
"funcoes": [
"Entrada/saída de clock externo",
"Conexão ao cristal ou oscilador do chip"
],
"categorias": [
"Clock"
],
"cor": "#a855f7",
"restricoes": "Clock diferencial negativo"
"tipo": "analog",
"funcoes": ["Entrada/Saída negativa de clock"],
"categorias": ["Clock"],
"avisos": ["Consulte o item 2.3.2 do datasheet para mais detalhes sobre pinos analógicos"]
},
{
"numero": "XTAL_P",
"numero": "30",
"nome": "XTAL_P",
"tipo": "analógico",
"funcoes": [
"Entrada/saída de clock externo",
"Conexão ao cristal ou oscilador do chip"
],
"categorias": [
"Clock"
],
"cor": "#a855f7",
"restricoes": "Clock diferencial positivo"
"tipo": "analog",
"funcoes": ["Entrada/Saída positiva de clock"],
"categorias": ["Clock"],
"avisos": ["Consulte o item 2.3.2 do datasheet para mais detalhes sobre pinos analógicos"]
},
{
"numero": "LNA",
"nome": "LNA_IN",
"tipo": "analógico",
"funcoes": [
"Entrada/saída do amplificador de baixo ruído RF"
],
"categorias": [
"RF"
],
"cor": "#a855f7",
"restricoes": "Sinais de entrada/saída do LNA RF para comunicação 2.4 GHz Wi-Fi/BLE"
"numero": "31",
"nome": "VDDA",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "32",
"nome": "VDDA",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "33",
"nome": "GND",
"tipo": "ground",
"funcoes": ["Referência elétrica do circuito (terra)"],
"categorias": ["GND"]
}
]
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+314 -280
View File
@@ -1,105 +1,35 @@
[
{
"numero": "GND",
"nome": "GND",
"tipo": "ground",
"funcoes": [
"Referência elétrica do sistema",
"Conexão externa de terra"
],
"categorias": [
"Ground"
],
"cor": "#64748b",
"restricoes": ""
},
{
"numero": "VDD3P3",
"numero": "1",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": [
"Alimentação do domínio analógico",
"Tensão de alimentação principal"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "VDDAPMU",
"nome": "VDDAPMU",
"numero": "2",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": [
"Alimentação do domínio analógico",
"Alimentação para pinos GPIO12, XTAL32KP, XTAL32KN"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "VBAT",
"nome": "VBAT",
"tipo": "power",
"funcoes": [
"Alimentação do domínio analógico ou bateria",
"Alimentação para pinos GPIO12, XTAL32KP, XTAL32KN"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
},
{
"numero": "VDDPST1",
"nome": "VDDPST1",
"tipo": "power",
"funcoes": [
"Alimentação do domínio de IO digital e LP IO"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
},
{
"numero": "VDDPST2",
"nome": "VDDPST2",
"tipo": "power",
"funcoes": [
"Alimentação do domínio de IO digital"
],
"categorias": [
"Power"
],
"cor": "#ef4444",
"restricoes": "Opera entre 3.0 V e 3.6 V (típico 3.3 V)"
},
{
"numero": "CHIP_PU",
"nome": "CHIP_PU (EN)",
"tipo": "power",
"funcoes": [
"Habilitar chip (nível alto)",
"Reseta o chip (nível baixo)"
],
"categorias": [
"Power",
"Reset"
],
"cor": "#f97316",
"restricoes": "Deve estar em nível alto para operação normal; não deixar flutuante"
},
{
"numero": 0,
"numero": "3",
"nome": "GPIO0",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO0",
"FSPIQ"
@@ -107,225 +37,286 @@
"categorias": [
"GPIO",
"SPI"
],
"cor": "#3b82f6",
"restricoes": ""
]
},
{
"numero": 1,
"numero": "4",
"nome": "GPIO1",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO1",
"ADC1_CH0",
"FSPICS0"
"FSPICS0",
"ADC1_CH0"
],
"categorias": [
"GPIO",
"ADC",
"SPI"
],
"cor": "#3b82f6",
"restricoes": ""
},
{
"numero": 2,
"nome": "GPIO2 (MTMS)",
"tipo": "gpio",
"funcoes": [
"GPIO2",
"MTMS",
"ADC1_CH1",
"FSPIWP"
],
"categorias": [
"GPIO",
"JTAG",
"ADC",
"SPI",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Strapping pin; JTAG Test Mode Select"
"ADC"
]
},
{
"numero": 3,
"nome": "GPIO3 (MTDO)",
"tipo": "gpio",
"numero": "5",
"nome": "MTMS",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO1",
"FSPIWP",
"ADC1_CH1",
"MTMS"
],
"categorias": [
"GPIO",
"SPI",
"ADC",
"JTAG"
],
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": "6",
"nome": "MTDO",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO3",
"MTDO",
"FSPIHD",
"ADC1_CH2",
"FSPIHD"
"MTDO"
],
"categorias": [
"GPIO",
"JTAG",
"SPI",
"ADC",
"SPI"
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Data Out"
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 4,
"nome": "GPIO4 (MTCK)",
"tipo": "gpio",
"numero": "7",
"nome": "MTCK",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO4",
"MTCK",
"FSPICLK",
"ADC1_CH3",
"FSPICLK"
"MTCK"
],
"categorias": [
"GPIO",
"JTAG",
"SPI",
"ADC",
"SPI"
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Clock"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 5,
"nome": "GPIO5 (MTDI)",
"tipo": "gpio",
"numero": "8",
"nome": "MTDI",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO5",
"MTDI",
"FSPID",
"ADC1_CH4",
"FSPID"
"MTDI"
],
"categorias": [
"GPIO",
"JTAG",
"SPI",
"ADC",
"SPI"
"JTAG"
],
"cor": "#3b82f6",
"restricoes": "JTAG Test Data In"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Pino utilizado para debugging"
]
},
{
"numero": 8,
"numero": "9",
"nome": "VDDPST1",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio das IOs"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "10",
"nome": "GPIO8",
"tipo": "gpio",
"funcoes": [
"GPIO8"
],
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": ["GPIO8"],
"categorias": [
"GPIO",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Strapping pin para controle de modo de boot e impressão ROM"
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada",
"Utilizado para controlar o modo de boot do chip (consulte o item 3.1 do datasheet para mais detalhes)",
"Utilizado para controlar a exibição de mensagens ROM na UART0 (consulte o item 3.3 do datasheet para mais detalhes)"
]
},
{
"numero": 9,
"numero": "11",
"nome": "GPIO9",
"tipo": "gpio",
"funcoes": [
"GPIO9"
],
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": ["GPIO9"],
"categorias": [
"GPIO",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Pull-up interno; strapping pin para modo boot (alto=SPI boot)"
"avisos": [
"Durante o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Utilizado para controlar o modo de boot do chip (consulte o item 3.1 do datasheet para mais detalhes)"
]
},
{
"numero": 10,
"numero": "12",
"nome": "GPIO10",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO10",
"Voltage Comparator ZCD0"
"ZCD0"
],
"categorias": [
"GPIO"
],
"cor": "#3b82f6",
"restricoes": ""
"categorias": ["GPIO"]
},
{
"numero": 11,
"numero": "13",
"nome": "GPIO11",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST1"],
"funcoes": [
"GPIO11",
"Voltage Comparator ZCD1"
"ZCD1"
],
"categorias": [
"GPIO"
],
"cor": "#3b82f6",
"restricoes": ""
"categorias": ["GPIO"]
},
{
"numero": 12,
"numero": "14",
"nome": "GPIO12",
"tipo": "gpio",
"funcoes": [
"GPIO12"
],
"categorias": [
"GPIO"
],
"cor": "#3b82f6",
"restricoes": "Alimentado por VDDAPMU/VBAT"
"tipo": "io",
"alimentacao": ["VDDA_PMU", "VBAT"],
"funcoes": ["GPIO12"],
"categorias": ["GPIO"]
},
{
"numero": 13,
"nome": "GPIO13 (XTAL_32K_P)",
"tipo": "gpio",
"numero": "15",
"nome": "XTAL_32K_P",
"tipo": "io",
"alimentacao": ["VDDA_PMU", "VBAT"],
"funcoes": [
"GPIO13",
"XTAL_32K_P"
],
"categorias": [
"GPIO",
"RTC",
"Clock"
],
"cor": "#3b82f6",
"restricoes": "Pode ser usado para cristal RTC de 32.768 kHz; alimentado por VDDAPMU/VBAT"
]
},
{
"numero": 14,
"nome": "GPIO14 (XTAL_32K_N)",
"tipo": "gpio",
"numero": "16",
"nome": "XTAL_32K_N",
"tipo": "io",
"alimentacao": ["VDDA_PMU", "VBAT"],
"funcoes": [
"GPIO14",
"XTAL_32K_N"
],
"categorias": [
"GPIO",
"RTC",
"Clock"
],
"cor": "#3b82f6",
"restricoes": "Pode ser usado para cristal RTC de 32.768 kHz; alimentado por VDDAPMU/VBAT"
]
},
{
"numero": 22,
"numero": "17",
"nome": "CHIP_EN",
"tipo": "analog",
"alimentacao": ["VBAT"],
"funcoes": ["Habilitar o chip"],
"categorias": ["Power"],
"avisos": [
"Colocar este pino em nível alto habilitará o funcionamento do chip",
"Colocar este pino em nível baixo desabilitará o funcionamento do chip",
"Não deixe este pino flutuando, utilize um resistor de pull-up externo"
]
},
{
"numero": "18",
"nome": "VBAT",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico ou da bateria"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "19",
"nome": "VDDA_PMU",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "20",
"nome": "VDDPST1",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio das IOs"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "21",
"nome": "GPIO22",
"tipo": "gpio",
"funcoes": [
"GPIO22"
],
"categorias": [
"GPIO"
],
"cor": "#3b82f6",
"restricoes": ""
"tipo": "io",
"alimentacao": ["VDDPST2"],
"funcoes": ["GPIO22"],
"categorias": ["GPIO"]
},
{
"numero": 23,
"nome": "GPIO23 (U0RXD)",
"tipo": "gpio",
"numero": "22",
"nome": "U0RXD",
"tipo": "io",
"alimentacao": ["VDDPST2"],
"funcoes": [
"GPIO23",
"UART0_RXD",
"U0RXD",
"FSPICS1"
],
"categorias": [
@@ -333,16 +324,19 @@
"UART",
"SPI"
],
"cor": "#3b82f6",
"restricoes": "Pull-up interno; UART0 RX para download de firmware"
"avisos": [
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Pino utilizado para debugging"
]
},
{
"numero": 24,
"nome": "GPIO24 (U0TXD)",
"tipo": "gpio",
"numero": "23",
"nome": "U0TXD",
"tipo": "io",
"alimentacao": ["VDDPST2"],
"funcoes": [
"GPIO24",
"UART0_TXD",
"U0TXD",
"FSPICS2"
],
"categorias": [
@@ -350,15 +344,18 @@
"UART",
"SPI"
],
"cor": "#3b82f6",
"restricoes": "Pull-up interno; UART0 TX para download de firmware"
"avisos": [
"Após o reset, este pino estará configurado como entrada com o pull-up interno ativado",
"Pino utilizado para debugging"
]
},
{
"numero": 25,
"numero": "24",
"nome": "GPIO25",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST2"],
"funcoes": [
"GPIO25",
"GPIO24",
"FSPICS3"
],
"categorias": [
@@ -366,83 +363,120 @@
"SPI",
"Strapping"
],
"cor": "#3b82f6",
"restricoes": "Strapping pin para controle de fonte de sinal JTAG"
"avisos": [
"Durante o reset, este pino estará configurado como entrada",
"Após o reset, este pino estará configurado como entrada",
"Utilizado para controlar a fonte de sinais JTAG (consulte o item 3.3 do datasheet para mais detalhes)"
]
},
{
"numero": 26,
"numero": "25",
"nome": "GPIO26",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST2"],
"funcoes": [
"GPIO26",
"USB_D-",
"FSPICS4"
"FSPICS4",
"USB_D-"
],
"categorias": [
"GPIO",
"USB",
"SPI"
"SPI",
"USB"
],
"cor": "#3b82f6",
"restricoes": "USB D- para USB OTG e USB Serial/JTAG; drive strength padrão 40mA"
"avisos": [
"Após o reset, este pino estará configurado como entrada",
"Por padrão, este pino é utilizado para USB Serial/JTAG"
]
},
{
"numero": 27,
"numero": "26",
"nome": "GPIO27",
"tipo": "gpio",
"tipo": "io",
"alimentacao": ["VDDPST2"],
"funcoes": [
"GPIO27",
"USB_D+",
"FSPICS5"
"FSPICS5",
"USB_D+"
],
"categorias": [
"GPIO",
"USB",
"SPI"
"SPI",
"USB"
],
"cor": "#3b82f6",
"restricoes": "USB D+ para USB OTG e USB Serial/JTAG; drive strength padrão 40mA"
"avisos": [
"Após o reset, este pino estará configurado como entrada com o pull-up interno para USB ativado",
"Por padrão, este pino é utilizado para USB Serial/JTAG"
]
},
{
"numero": "XTAL_N",
"numero": "27",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "28",
"nome": "XTAL_N",
"tipo": "analógico",
"funcoes": [
"Entrada/saída de clock externo",
"Conexão ao cristal ou oscilador do chip"
],
"categorias": [
"Clock"
],
"cor": "#a855f7",
"restricoes": "Clock diferencial negativo de 32 MHz"
"tipo": "analog",
"funcoes": ["Entrada/Saída negativa de clock"],
"categorias": ["Clock"],
"avisos": ["Consulte o item 2.3.2 do datasheet para mais detalhes sobre pinos analógicos"]
},
{
"numero": "XTAL_P",
"numero": "29",
"nome": "XTAL_P",
"tipo": "analógico",
"funcoes": [
"Entrada/saída de clock externo",
"Conexão ao cristal ou oscilador do chip"
],
"categorias": [
"Clock"
],
"cor": "#a855f7",
"restricoes": "Clock diferencial positivo de 32 MHz"
"tipo": "analog",
"funcoes": ["Entrada/Saída positiva de clock"],
"categorias": ["Clock"],
"avisos": ["Consulte o item 2.3.2 do datasheet para mais detalhes sobre pinos analógicos"]
},
{
"numero": "ANT",
"numero": "30",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "31",
"nome": "VDD3P3",
"tipo": "power",
"funcoes": ["Entrada de alimentação do domínio analógico"],
"categorias": ["Power"],
"avisos": [
"Tensão Recomendada: 3.3V",
"Tensão Mínima Recomendada: 3.0V",
"Tensão Máxima Recomendada: 3.6V",
"Consulte o item 2.5 do datasheet para mais detalhes sobre a alimentação do chip"
]
},
{
"numero": "32",
"nome": "ANT",
"tipo": "analógico",
"funcoes": [
"Entrada/saída RF para comunicação sem fio",
"Amplificador de baixo ruído RF"
],
"categorias": [
"RF"
],
"cor": "#a855f7",
"restricoes": "Sinais de entrada/saída do LNA RF para comunicação 2.4 GHz Bluetooth LE e 802.15.4"
"tipo": "analog",
"funcoes": ["Conexão da antena RF"],
"categorias": ["Antena"],
"avisos": ["Consulte o item 2.4 do datasheet para mais detalhes sobre pinos analógicos"]
},
{
"numero": "33",
"nome": "GND",
"tipo": "ground",
"funcoes": ["Referência elétrica do circuito (terra)"],
"categorias": ["GND"]
}
]
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
+943 -341
View File
File diff suppressed because it is too large. Load diff
+31 -15
View File
@@ -14,7 +14,7 @@
"memoria_rom": "448 KB (para boot e funções core)",
"flash_externa": "Até 16 MB via QSPI",
"psram_externa": "Até 8 MB via QSPI (em módulos específicos como WROVER)",
"gpio": "34 (alguns pinos têm restrições)",
"gpio": "34",
"adc": "2x SAR ADC de 12 bits, até 18 canais",
"dac": "2x DAC de 8 bits",
"touch": "10 canais capacitivos",
@@ -31,6 +31,8 @@
"temperatura_operacao": "-40°C a 125°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html",
"placa": "/placas/esp32.png",
"cor": "#007bff"
},
@@ -62,9 +64,11 @@
"lcd": "Interface LCD de 8/16 bits",
"camera": "Interface DVP de 8/16 bits",
"sensor_temperatura": "1 (interno)",
"temperatura_operacao": "-40°C a 85°C",
"temperatura_operacao": "-40°C a 105°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-s2_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-s2_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html",
"placa": "/placas/esp32-s2.png",
"cor": "#28a745"
},
@@ -98,16 +102,18 @@
"camera": "Interface DVP de 8/16 bits",
"sdio": "1 (SD/SDIO/MMC Host)",
"sensor_temperatura": "1 (interno)",
"temperatura_operacao": "-40°C a 85°C",
"temperatura_operacao": "-40°C a 65/85/105°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-s3_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-s3_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/index.html",
"placa": "/placas/esp32-s3.png",
"cor": "#fd7e14"
},
"ESP32-C3": {
"nome_completo": "ESP32-C3",
"icone": "💎",
"descricao": "Processador RISC-V de baixo custo, substituto do ESP8266",
"descricao": "Processador RISC-V de ultra baixo consumo",
"arquitetura": "RISC-V single-core de 32 bits",
"nucleos": "1 (Single-core)",
"frequencia": "Até 160 MHz",
@@ -129,9 +135,11 @@
"pwm": "LED PWM (até 6 canais)",
"usb": "1 (USB Serial/JTAG)",
"sensor_temperatura": "1 (interno)",
"temperatura_operacao": "-40°C a 105°C",
"temperatura_operacao": "-40°C a 125°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-c3_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-c3_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/get-started/index.html",
"placa": "/placas/esp32-c3.png",
"cor": "#20c997"
},
@@ -150,7 +158,7 @@
"memoria_rom": "320 KB",
"flash_externa": "Até 16 MB via QSPI",
"psram_externa": "Não",
"gpio": "28",
"gpio": "29",
"adc": "1x SAR ADC de 12 bits, até 7 canais",
"dac": "Não",
"touch": "Não",
@@ -161,9 +169,11 @@
"pwm": "LED PWM (até 6 canais), Motor PWM",
"usb": "1 (USB Serial/JTAG)",
"sensor_temperatura": "1 (interno)",
"temperatura_operacao": "-40°C a 85°C",
"temperatura_operacao": "-40°C a 105°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-c5_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-c5_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c5/get-started/index.html",
"placa": "/placas/esp32-c5.png",
"cor": "#6f42c1"
},
@@ -183,7 +193,7 @@
"memoria_rom": "320 KB",
"flash_externa": "Até 16 MB via QSPI",
"psram_externa": "Não",
"gpio": "30",
"gpio": "30 ou 22",
"adc": "1x SAR ADC de 12 bits, até 7 canais",
"dac": "Não",
"touch": "Não",
@@ -198,6 +208,8 @@
"temperatura_operacao": "-40°C a 105°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-c6_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-c6_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/get-started/index.html",
"placa": "/placas/esp32-c6.png",
"cor": "#17a2b8"
},
@@ -205,18 +217,18 @@
"nome_completo": "ESP32-P4",
"icone": "⚡",
"descricao": "Alto desempenho com processador RISC-V dual-core a 400MHz e aceleradores de IA",
"arquitetura": "RISC-V dual-core de 32 bits",
"nucleos": "2 (Dual-core)",
"arquitetura": "RISC-V de 32 bits dual-core de alto desempenho + single-core de baixo consumo",
"nucleos": "2 (Dual-core HP) + 1 (Single-core LP)",
"frequencia": "Até 400 MHz",
"aceleradores_ia": "Sim (Vector Instructions, aceleradores de IA)",
"wifi": "Não (sem conectividade wireless integrada)",
"wifi": "Não",
"bluetooth": "Não",
"ethernet": "Sim (Ethernet MAC integrado)",
"memoria_sram": "768 KB",
"memoria_rom": "768 KB",
"flash_externa": "Até 128 MB via QSPI/Octal SPI",
"psram_externa": "Até 32 MB via QSPI/Octal SPI",
"gpio": "54",
"gpio": "55",
"adc": "1x SAR ADC de 12 bits, até 8 canais",
"dac": "Não",
"touch": "Não",
@@ -234,7 +246,9 @@
"sensor_temperatura": "1 (interno)",
"temperatura_operacao": "-40°C a 85°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-p4_datasheet_en.pdf",
"datasheet": "https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-p4-chip-revision-v1.3_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/get-started/index.html",
"placa": "/placas/esp32-p4.png",
"cor": "#ffc107"
},
@@ -254,7 +268,7 @@
"memoria_rom": "128 KB",
"flash_externa": "Até 16 MB via QSPI",
"psram_externa": "Não",
"gpio": "27",
"gpio": "19",
"adc": "1x SAR ADC de 12 bits, até 5 canais",
"dac": "Não",
"touch": "Não",
@@ -265,9 +279,11 @@
"pwm": "LED PWM (até 6 canais)",
"usb": "1 (USB Serial/JTAG)",
"sensor_temperatura": "1 (interno)",
"temperatura_operacao": "-40°C a 85°C",
"temperatura_operacao": "-40°C a 105°C",
"temperatura_armazenamento": "-40°C a 150°C",
"datasheet": "https://documentation.espressif.com/esp32-h2_datasheet_en.pdf",
"manual_tecnico": "https://documentation.espressif.com/esp32-h2_technical_reference_manual_en.pdf",
"guia_de_programacao": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32h2/get-started/index.html",
"placa": "/placas/esp32-h2.png",
"cor": "#6c757d"
}