Included SSOP target package and updated the Insight window to use the DIP widget for SOIC, SSOP and DIP packages.
Also updated the Insight window to use the QFP widget for QFN packages.
This commit is contained in:
@@ -220,15 +220,18 @@ void InsightWindow::deactivate() {
|
||||
}
|
||||
|
||||
bool InsightWindow::isVariantSupported(const TargetVariant& variant) {
|
||||
if (variant.package == TargetPackage::DIP) {
|
||||
// All DIP variants must have a pin count that is a multiple of two
|
||||
if (variant.package == TargetPackage::DIP
|
||||
|| variant.package == TargetPackage::SOIC
|
||||
|| variant.package == TargetPackage::SSOP
|
||||
) {
|
||||
// All DIP, SOIC and SSOP variants must have a pin count that is a multiple of two
|
||||
if (variant.pinDescriptorsByNumber.size() % 2 == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (variant.package == TargetPackage::QFP) {
|
||||
// All QFP variants must have a pin count that is a multiple of four
|
||||
if (variant.package == TargetPackage::QFP || variant.package == TargetPackage::QFN) {
|
||||
// All QFP and QFN variants must have a pin count that is a multiple of four
|
||||
if (variant.pinDescriptorsByNumber.size() % 4 == 0) {
|
||||
return true;
|
||||
}
|
||||
@@ -256,14 +259,17 @@ void InsightWindow::selectVariant(const TargetVariant* variant) {
|
||||
this->selectedVariant = variant;
|
||||
this->variantMenu->setTitle(QString::fromStdString(variant->name + " (" + variant->packageName + ")"));
|
||||
|
||||
if (variant->package == TargetPackage::DIP) {
|
||||
if (variant->package == TargetPackage::DIP
|
||||
|| variant->package == TargetPackage::SOIC
|
||||
|| variant->package == TargetPackage::SSOP
|
||||
) {
|
||||
this->targetPackageWidget = new InsightTargetWidgets::Dip::DualInlinePackageWidget(
|
||||
*variant,
|
||||
this,
|
||||
this->ioContainerWidget
|
||||
);
|
||||
|
||||
} else if (variant->package == TargetPackage::QFP) {
|
||||
} else if (variant->package == TargetPackage::QFP || variant->package == TargetPackage::QFN) {
|
||||
this->targetPackageWidget = new InsightTargetWidgets::Qfp::QuadFlatPackageWidget(
|
||||
*variant,
|
||||
this,
|
||||
|
||||
@@ -245,6 +245,9 @@ void Avr8::loadTargetVariants() {
|
||||
|
||||
} else if (tdVariant.package.find("SOIC") == 0) {
|
||||
targetVariant.package = TargetPackage::SOIC;
|
||||
|
||||
} else if (tdVariant.package.find("SSOP") == 0) {
|
||||
targetVariant.package = TargetPackage::SSOP;
|
||||
}
|
||||
|
||||
if (!tdPinoutsByName.contains(tdVariant.pinoutName)) {
|
||||
|
||||
@@ -23,15 +23,25 @@ namespace Bloom::Targets
|
||||
DIP,
|
||||
|
||||
/**
|
||||
* Small outline integrated circuit (SOIC) package.
|
||||
* "Small outline integrated circuit" package (SOIC).
|
||||
*
|
||||
* Because of the similarities between SOIC and DIP, Insight treats SOIC packages as DIP packages. That is,
|
||||
* it uses the same package widget.
|
||||
*/
|
||||
SOIC,
|
||||
|
||||
/**
|
||||
* "Shrink small outline" package (SSOP)
|
||||
*
|
||||
* Because of the similarities between this and DIP, Insight treats SSOP packages as DIP packages. That is,
|
||||
* it uses the same package widget.
|
||||
*/
|
||||
SSOP,
|
||||
|
||||
/**
|
||||
* Quad flat no-lead (QFN) package
|
||||
*
|
||||
* Because of the similarities between this and QFP, Insight treats QFN packages as QFP.
|
||||
*/
|
||||
QFN,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user