Adição do ESP32-H4
This commit is contained in:
1 parent
b1e76757ab
commit
e7d6b5cf87
18 files changed
+15022
-1176
No files matched your search
+21
-10
@@ -21,7 +21,8 @@ import {
|
||||
Sliders,
|
||||
Activity,
|
||||
HelpCircle,
|
||||
Thermometer
|
||||
Thermometer,
|
||||
ShieldCheck
|
||||
} from "lucide-react";
|
||||
|
||||
// Category to Icon mapping
|
||||
@@ -32,6 +33,7 @@ const categoryIcons = {
|
||||
"Memória": <Database className="w-4 h-4 text-pink-500" />,
|
||||
"Periféricos Digitais": <Sliders className="w-4 h-4 text-sky-500" />,
|
||||
"Periféricos Analógicos": <Activity className="w-4 h-4 text-emerald-500" />,
|
||||
"Segurança": <ShieldCheck className="w-4 h-4 text-teal-500" />,
|
||||
"Interfaces Especiais": <Activity className="w-4 h-4 text-cyan-500" />,
|
||||
"Especificações Ambientais": <Thermometer className="w-4 h-4 text-red-500" />,
|
||||
};
|
||||
@@ -108,6 +110,9 @@ export default function Comparacao() {
|
||||
{ key: "sensor_hall", label: "Sensor Hall" },
|
||||
{ key: "sensor_temperatura", label: "Sensor de Temperatura" },
|
||||
]},
|
||||
{ category: "Segurança", fields: [
|
||||
{ key: "aceleradores_cripto", label: "Aceleradores Criptográficos" },
|
||||
]},
|
||||
{ category: "Interfaces Especiais", fields: [
|
||||
{ key: "lcd", label: "LCD" },
|
||||
{ key: "camera", label: "Câmera" },
|
||||
@@ -339,15 +344,21 @@ export default function Comparacao() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a
|
||||
href={seriesItem.datasheet}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="inline-flex items-center justify-center gap-1.5 w-full text-center py-2 bg-slate-100 dark:bg-slate-950 hover:bg-purple-500/10 dark:hover:bg-purple-400/10 border border-slate-200 dark:border-slate-800 rounded-xl text-xs font-bold text-slate-650 dark:text-slate-350 hover:text-purple-600 dark:hover:text-purple-400 transition-colors"
|
||||
>
|
||||
<span>Datasheet Oficial</span>
|
||||
<ExternalLink className="w-3.5 h-3.5" />
|
||||
</a>
|
||||
{seriesItem.datasheet ? (
|
||||
<a
|
||||
href={seriesItem.datasheet}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="inline-flex items-center justify-center gap-1.5 w-full text-center py-2 bg-slate-100 dark:bg-slate-950 hover:bg-purple-500/10 dark:hover:bg-purple-400/10 border border-slate-200 dark:border-slate-800 rounded-xl text-xs font-bold text-slate-650 dark:text-slate-350 hover:text-purple-600 dark:hover:text-purple-400 transition-colors"
|
||||
>
|
||||
<span>Datasheet Oficial</span>
|
||||
<ExternalLink className="w-3.5 h-3.5" />
|
||||
</a>
|
||||
) : (
|
||||
<span className="inline-flex items-center justify-center gap-1.5 w-full text-center py-2 bg-slate-100 dark:bg-slate-950 border border-slate-200 dark:border-slate-800 rounded-xl text-xs font-bold text-slate-400 dark:text-slate-500 select-none">
|
||||
<span>Datasheet ainda não publicado</span>
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
|
||||
@@ -39,6 +39,11 @@ export default function Glossario() {
|
||||
definicao: "Hardware dedicado para acelerar operações de inteligência artificial e redes neurais.",
|
||||
exemplo: "ESP32-P4 possui Vector Extension para processamento de IA.",
|
||||
},
|
||||
{
|
||||
termo: "Aceleradores Criptográficos",
|
||||
definicao: "Blocos de hardware dedicados que executam algoritmos de criptografia (AES, SHA, RSA, ECC/ECDSA, HMAC) muito mais rápido e com menor consumo do que a CPU, além de sustentarem recursos como Secure Boot, criptografia de flash e assinatura digital.",
|
||||
exemplo: "ESP32-C5 e ESP32-P4 incluem AES, SHA, RSA, ECC/ECDSA e Key Manager para provisionamento seguro de chaves.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
+39
-2
@@ -32,7 +32,8 @@ import {
|
||||
ShoppingBag,
|
||||
BookOpen,
|
||||
Compass,
|
||||
Smartphone
|
||||
Smartphone,
|
||||
ShieldCheck
|
||||
} from "lucide-react";
|
||||
|
||||
// Dynamic icon mapper to convert choices to sleek Lucide vectors
|
||||
@@ -67,6 +68,10 @@ const iconMap = {
|
||||
// IA
|
||||
"ai_ai-ml": <Bot className="w-6 h-6 text-pink-500" />,
|
||||
"ai_standard": <Ban className="w-6 h-6 text-slate-450 dark:text-slate-550" />,
|
||||
|
||||
// Segurança
|
||||
"security_critical": <ShieldCheck className="w-6 h-6 text-teal-500" />,
|
||||
"security_standard": <HelpCircle className="w-6 h-6 text-slate-450 dark:text-slate-550" />,
|
||||
};
|
||||
|
||||
const getOptionIcon = (questionId, value) => {
|
||||
@@ -83,6 +88,7 @@ export default function Seletor() {
|
||||
power: null,
|
||||
hardware: null,
|
||||
ai: null,
|
||||
security: null,
|
||||
});
|
||||
const [showResults, setShowResults] = useState(false);
|
||||
const [showSummary, setShowSummary] = useState(false);
|
||||
@@ -138,6 +144,15 @@ export default function Seletor() {
|
||||
{ value: "ai-ml", label: "Sim, preciso rodar modelos de IA localmente", icon: "ai_ai-ml" },
|
||||
{ value: "standard", label: "Não, processamento lógico comum é suficiente", icon: "ai_standard" },
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "security",
|
||||
question: "Qual o nível de segurança criptográfica exigido pelo produto?",
|
||||
description: "Aceleradores criptográficos no silício executam AES, SHA, RSA e curvas elípticas em hardware, viabilizando Secure Boot, criptografia de flash e provisionamento seguro de chaves sem penalizar a CPU.",
|
||||
options: [
|
||||
{ value: "critical", label: "Crítico (Matter, pagamentos, provisionamento seguro de chaves)", icon: "security_critical" },
|
||||
{ value: "standard", label: "Padrão (TLS comum e projetos sem requisitos regulatórios)", icon: "security_standard" },
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@@ -168,6 +183,7 @@ export default function Seletor() {
|
||||
power: null,
|
||||
hardware: null,
|
||||
ai: null,
|
||||
security: null,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -354,6 +370,27 @@ export default function Seletor() {
|
||||
} else if (answers.ai === "standard") {
|
||||
scores[key] += 5;
|
||||
}
|
||||
|
||||
// 6. SEGURANÇA CRIPTOGRÁFICA (security)
|
||||
if (answers.security === "critical") {
|
||||
const cripto = serie.aceleradores_cripto || "";
|
||||
|
||||
if (cripto.includes("Key Manager")) {
|
||||
scores[key] += 30;
|
||||
reasons[key].push("Suíte criptográfica completa em hardware com Key Manager (provisionamento e uso de chaves sem exposição ao firmware)");
|
||||
} else if (cripto.includes("ECDSA")) {
|
||||
scores[key] += 20;
|
||||
reasons[key].push("Aceleradores criptográficos com ECC/ECDSA dedicados (assinatura digital e Secure Boot eficientes)");
|
||||
} else if (cripto) {
|
||||
scores[key] += 10;
|
||||
reasons[key].push("Aceleradores criptográficos básicos em hardware (AES, SHA, Secure Boot e criptografia de flash)");
|
||||
} else {
|
||||
scores[key] -= 20;
|
||||
reasons[key].push("Sem aceleração criptográfica dedicada: operações de segurança ficam a cargo da CPU");
|
||||
}
|
||||
} else if (answers.security === "standard") {
|
||||
scores[key] += 5;
|
||||
}
|
||||
});
|
||||
|
||||
return { scores, reasons };
|
||||
@@ -397,7 +434,7 @@ export default function Seletor() {
|
||||
</h1>
|
||||
|
||||
<p className="text-sm md:text-base text-slate-500 dark:text-slate-400 leading-relaxed max-w-2xl mx-auto">
|
||||
Responda a **5 perguntas simples** sobre o propósito, conexões de hardware e fonte de alimentação do seu projeto e encontre instantaneamente o silício Espressif perfeito para sua bancada.
|
||||
Responda a **6 perguntas simples** sobre o propósito, conexões de hardware, alimentação e segurança do seu projeto e encontre instantaneamente o silício Espressif perfeito para sua bancada.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
+37
-10
@@ -39,7 +39,9 @@ import {
|
||||
Folder,
|
||||
Thermometer,
|
||||
ChevronRight,
|
||||
Lightbulb
|
||||
Lightbulb,
|
||||
ShieldCheck,
|
||||
KeyRound
|
||||
} from "lucide-react";
|
||||
|
||||
export default async function SerieDetail({ params }) {
|
||||
@@ -70,6 +72,11 @@ export default async function SerieDetail({ params }) {
|
||||
{ label: "Aceleradores IA", value: serie.aceleradores_ia || "Não", icon: <Sparkles className="w-5 h-5 text-purple-500" /> },
|
||||
];
|
||||
|
||||
const segurancaSpecs = [
|
||||
{ label: "Aceleradores Criptográficos", value: serie.aceleradores_cripto || "Não", icon: <ShieldCheck className="w-5 h-5 text-teal-500" /> },
|
||||
{ label: "Gerador de Números Aleatórios", value: serie.aceleradores_cripto ? "Sim (RNG por hardware)" : "Não", icon: <KeyRound className="w-5 h-5 text-teal-500" /> },
|
||||
];
|
||||
|
||||
const conectividadeSpecs = [
|
||||
{ label: "Wi-Fi", value: serie.wifi || "Não", icon: <Wifi className="w-5 h-5 text-indigo-500" /> },
|
||||
{ label: "Bluetooth", value: serie.bluetooth || "Não", icon: <Bluetooth className="w-5 h-5 text-indigo-500" /> },
|
||||
@@ -249,15 +256,22 @@ export default async function SerieDetail({ params }) {
|
||||
|
||||
{/* Links Block */}
|
||||
<div className="grid sm:grid-cols-2 lg:grid-cols-1 gap-3 w-full lg:w-auto">
|
||||
<a
|
||||
href={serie.datasheet}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="inline-flex items-center justify-center gap-2 bg-slate-900 dark:bg-slate-100 text-white dark:text-slate-950 px-5 py-3 rounded-xl font-bold text-xs uppercase tracking-wider hover:opacity-90 transition-opacity shadow-lg"
|
||||
>
|
||||
<FileText className="w-4 h-4" />
|
||||
<span>Datasheet Oficial</span>
|
||||
</a>
|
||||
{serie.datasheet ? (
|
||||
<a
|
||||
href={serie.datasheet}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="inline-flex items-center justify-center gap-2 bg-slate-900 dark:bg-slate-100 text-white dark:text-slate-950 px-5 py-3 rounded-xl font-bold text-xs uppercase tracking-wider hover:opacity-90 transition-opacity shadow-lg"
|
||||
>
|
||||
<FileText className="w-4 h-4" />
|
||||
<span>Datasheet Oficial</span>
|
||||
</a>
|
||||
) : (
|
||||
<span className="inline-flex items-center justify-center gap-2 bg-slate-200/60 dark:bg-slate-800/60 text-slate-500 dark:text-slate-400 border border-slate-300/60 dark:border-slate-700/60 px-5 py-3 rounded-xl font-bold text-xs uppercase tracking-wider select-none cursor-not-allowed">
|
||||
<FileText className="w-4 h-4" />
|
||||
<span>Datasheet ainda não publicado</span>
|
||||
</span>
|
||||
)}
|
||||
|
||||
<a
|
||||
href={serie.guia_de_programacao}
|
||||
@@ -286,6 +300,18 @@ export default async function SerieDetail({ params }) {
|
||||
<p className="text-sm text-slate-500 dark:text-slate-400 mt-6 leading-relaxed max-w-4xl">
|
||||
{serie.descricao}
|
||||
</p>
|
||||
|
||||
{serie.status_documentacao && (
|
||||
<div className="mt-6 max-w-4xl bg-amber-500/10 text-amber-700 dark:text-amber-400 border border-amber-500/20 p-5 rounded-2xl">
|
||||
<div className="flex items-start gap-3">
|
||||
<AlertTriangle className="w-5 h-5 shrink-0 mt-0.5" />
|
||||
<div>
|
||||
<p className="text-xs font-bold uppercase tracking-wider mb-1">Documentação preliminar</p>
|
||||
<p className="text-xs leading-relaxed">{serie.status_documentacao}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -326,6 +352,7 @@ export default async function SerieDetail({ params }) {
|
||||
<div className="space-y-6 mt-12">
|
||||
<SpecSection title="Processador" specs={processadorSpecs} cor={serie.cor} icon={<Cpu className="w-5 h-5" style={{ color: serie.cor }} />} />
|
||||
<SpecSection title="Conectividade RF" specs={conectividadeSpecs} cor={serie.cor} icon={<Wifi className="w-5 h-5" style={{ color: serie.cor }} />} />
|
||||
<SpecSection title="Segurança e Criptografia" specs={segurancaSpecs} cor={serie.cor} icon={<ShieldCheck className="w-5 h-5" style={{ color: serie.cor }} />} />
|
||||
<SpecSection title="Estrutura de Memória" specs={memoriaSpecs} cor={serie.cor} icon={<Database className="w-5 h-5" style={{ color: serie.cor }} />} />
|
||||
|
||||
{/* Power Consumption section */}
|
||||
|
||||
+18
-2
@@ -15,7 +15,9 @@ import {
|
||||
Home,
|
||||
ArrowRight,
|
||||
Scale,
|
||||
Compass
|
||||
Compass,
|
||||
ShieldCheck,
|
||||
AlertTriangle
|
||||
} from "lucide-react";
|
||||
|
||||
export default function Series() {
|
||||
@@ -158,7 +160,7 @@ export default function Series() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* IA / Matter Badges & Action Footer */}
|
||||
{/* IA / Cripto / Matter Badges & Action Footer */}
|
||||
<div className="mt-8">
|
||||
<div className="flex flex-wrap gap-2 mb-6">
|
||||
{serie.aceleradores_ia && (
|
||||
@@ -168,6 +170,20 @@ export default function Series() {
|
||||
</span>
|
||||
)}
|
||||
|
||||
{serie.status_documentacao && (
|
||||
<span className="inline-flex items-center gap-1 px-2.5 py-1 bg-amber-500/10 text-amber-600 dark:text-amber-400 text-[10px] font-bold uppercase rounded-lg border border-amber-500/20 shadow-xs select-none">
|
||||
<AlertTriangle className="w-3 h-3" />
|
||||
<span>Doc. Preliminar</span>
|
||||
</span>
|
||||
)}
|
||||
|
||||
{serie.aceleradores_cripto && (
|
||||
<span className="inline-flex items-center gap-1 px-2.5 py-1 bg-teal-500/10 text-teal-600 dark:text-teal-400 text-[10px] font-bold uppercase rounded-lg border border-teal-500/20 shadow-xs select-none">
|
||||
<ShieldCheck className="w-3 h-3" />
|
||||
<span>Cripto por Hardware</span>
|
||||
</span>
|
||||
)}
|
||||
|
||||
{serie.matter === "Sim" && (
|
||||
<span className="inline-flex items-center gap-1 px-2.5 py-1 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 text-[10px] font-bold uppercase rounded-lg border border-emerald-500/20 shadow-xs select-none">
|
||||
<Home className="w-3 h-3" />
|
||||
|
||||
Reference in new issue
Block a user