Forum: Mikrocontroller und Digitale Elektronik Pin-Belegungauslastung von µCs


von ich (Gast)


Lesenswert?

Hallo zusammen.
Ich bin gerade dabei ein neues Projekt umzusetzen. Den ersten Entwurf 
habe ich bereits zusammengebaut und zum Laufen gebracht. Der zur Zeit 
verwendete PIC24F32KA304-PT (TQFP44) läuft auch soweit.
Jetzt liegen aber nachträgliche Änderungen an. Es entfallen ein paar 
Signale und es kommen noch welche hinzu. Die beiden Hauptgründe, weshalb 
es auch ein neuer µC werden soll sind: USB und 
Hardware-Encryption/Decryption. Dort habe ich mir nun den 
PIC24FJ128GB204 (ebenfalls TQFP44) rausgesucht. Sollte der Code auch in 
den PIC mit 64kByte ROM passen, nehme ich natürlich den, denn ich will 
mehrere Platinen davon bauen. Laut Datenblatt hat er aber nur 35IOs, der 
bisherige hatte 38. Nun habe ich nachgezählt und ich komme genau auf 35 
Signale, die ich an den µC führen muss.

Jetzt stellt sich mir die Frage: Soll ich diesen PIC nehmen und 
riskieren, dass ich bei einem ggf. kommenden 3. Entwurf wieder einen 
anderen µC nehmen muss? Die momentane Software ist glücklicherweise nur 
mit einigen Testfunktionen und der Initialisierung ausgestattet, sodass 
eine Portierung auf den neuen µC eher unkritisch laufen sollte. Aber 
wenn ich dann eher auf die SW-Entwicklung gehe (denn der Hauptteil der 
Hardware bleibt gleich, da muss ich also nicht mehr so viel Zeit in 
Tests reinstecken), wächst das Programm und ein Wechsel würde ggf. einen 
langen Rattenschwanz hinter sich her ziehen.
Ich könnte aber auch gleich auf den PIC24FJ128GB406 gehen, der fast 
identisch ist und in einem TQFP64 Gehäuse kommt. Ich bestücke die 
Platine von Hand und da ist ein TQFP44 mit 0.8mm pitch leichter zu 
löten, als ein TQFP64 mit 0.5mm pitch.
Dieser ist zudem auch teurer. Und das alles, wo ich zumindest momentan 
keinen Nutzen von habe.

Wie würdet ihr das machen? Einen 100%ig belegten µC nehmen oder für 
evtl. kommende Änderungen reserven einplanen?

Ich weiß, es ist eher eine Glaubensfrage, aber mich würde das mal 
interessieren, und vielleicht habe ich ja auch irgendein Argument nicht 
in betracht gezogen.

von A. S. (Gast)


Lesenswert?

Was hat denn die Software mit dem µC-Derivat zu tun? Bis auf ein paar im 
HAL gekapselte Register und Funktionen sollte ein Wechsel kein Problem 
sein, oder schreibst Du in Assembler?

Wenn HW-Änderungen kein Problem sind, sollte die SW auch keines sein.

von Karl M. (Gast)


Lesenswert?

Hallo,

was noch unklar ist, ist die Art der Signale: I/O, Analog etc.
Dann kann man auch zur Entpflechtung der Platine digitale und analoge 
Untereinheiten bilden.
Zur Datenübertragung eignet sich dabei SPI oder I2C.
Es gibt fertige Bausteine mit I2C als I/O Expander oder man nutzt einen 
weiteren µC als Slave Controller für Unteraufgaben.

Teile und Hersche.

von Erich (Gast)


Lesenswert?

Unbedingt den grösseren verwenden!
Alle "überflüssigen" Pins auf Lötaugen  Testpunkte  Reservestecker 
führen.
>auch teurer
Baust du ein Gerät 100.00 mal, kostenoptimiert, durch BWLer genehmigt?
Gruss

von Georg (Gast)


Lesenswert?

ich schrieb:
> Ich bestücke die
> Platine von Hand und da ist ein TQFP44 mit 0.8mm pitch leichter zu
> löten, als ein TQFP64 mit 0.5mm pitch.

Dann durchforste erstmal deine bisherigen I/Os, ob da nicht was 
einzusparen wäre. Eine Hardware(Layout)-Änderung wird bei zusätzlicher 
Peripherie sowieso notwendig, aber von 44 auf 64polig ist schon eine 
grössere Aktion.

Erich schrieb:
> Alle "überflüssigen" Pins auf Lötaugen  Testpunkte  Reservestecker
> führen

Ja, aber: eine zusätzliche Platine, die darüber angeschlossen wird, 
verursacht auch Kosten. Die übliche Abwägung, Änderungskosten oder 
zusätzliche Platine, muss man halt rechnen. Dazu sind die BWLer ja da.

Georg

von ich (Gast)


Lesenswert?

Achim S. schrieb:
> Was hat denn die Software mit dem µC-Derivat zu tun? Bis auf ein paar im
> HAL gekapselte Register und Funktionen sollte ein Wechsel kein Problem
> sein, oder schreibst Du in Assembler?
>
> Wenn HW-Änderungen kein Problem sind, sollte die SW auch keines sein.

Ich greife auf die Register zu, die beim anderen Derivat u.U. anders 
lauten oder durch andere/mehr Funktionalität auch andere Inhalte 
brauchen. Somit müsste ich zur kontrolle jede Beschreibung eines 
Registers kontrollieren, ob die gewünschten Daten auch im anderen µC das 
selbe bewirken. Beispielsweise das Peripheral Pin Mapping könnte anders 
sein, da durch ein anderes Package bzw mehr Pins die RPx Bezeichner 
anderen GPIOs zugewiesen sind oder die Beschreibung durch mehr 
Peripherie (z.B. mehr SPIs) anders ausfällt.

Natürlich will ich so viel es geht kapseln, sodass das, was wirklich von 
der Hardware bzw. dem µC abhängig ist, irgendwo gesammelt ist. Aber auf 
die Arbeit das alles durchzugehen kann ich auch gerne verzichten, ist 
aber natürlich auch kein Ding der Unmöglichkeit.


Karl M. schrieb:
> was noch unklar ist, ist die Art der Signale: I/O, Analog etc.
> Dann kann man auch zur Entpflechtung der Platine digitale und analoge
> Untereinheiten bilden.

Analog ist nur ein Eingang zum Messen/Überprüfen der Eingangsspannung. 
Sonst sind es 2x UART, 2 Chips parallel (mit Chip-Select) an SPI, 3x 
PWM, USB und der Rest sind GPIOs.


Erich schrieb:
> Alle "überflüssigen" Pins auf Lötaugen  Testpunkte  Reservestecker
> führen.

Für einen/meherere Stecker ist kein Platz mehr. Es wird eine recht 
volle, möglichst Flache 50x80mm Platine. Diese ist bisher nur einseitig 
bestückt. Davon muss ich mich wohl auch verabschieden und u.U. auf 4 
Layer gehen. Pads könnte ich ggf noch unterbringen, doch wird mir das 
nichts nützen, höchstens zum evaluieren oder zum testen zusätzlicher 
Hardware die eventuell, hoffentlich aber nicht mehr kommt.


Georg schrieb:
> Dann durchforste erstmal deine bisherigen I/Os, ob da nicht was
> einzusparen wäre.

Das habe ich getan und tatsächlich ist mir jetzt aufgefallen, dass die 
ICSP-Daten und Clock-Leitungen zum Programmieren jeweils einen Pin 
belegen. Diese kann ich natürlich auch noch für was anderes benutzen, 
sollte es soweit kommen.


Georg schrieb:
> Ja, aber: eine zusätzliche Platine, die darüber angeschlossen wird,
> verursacht auch Kosten.

Eine zusätzliche Platine fällt aus Platzgründen raus. Wie gesagt, 
höchstens zu Testzwecken.



Ich werde also erstmal mit dem kleineren weitermachen, mit der Option, 
die ICSP-Leitungen noch als Reserve zu haben.

Danke

von Baendiger (Gast)


Lesenswert?

Ich würde es davon abhängig machen, wie wahrscheinlich 
Hardwareänderungen sind. Und wie wahrscheinlich diese weitere Pins 
brauchen.

von Dampf T. (ouuneii)


Lesenswert?

Fuer nur die entwicklung, den groesseren im 64er Gehaeuse, wenn er auch 
zukuenftige Erweiterungen abdeckt. Der Mehrpreis des Prozessor macht 
vielleicht 1.5Euro aus. Bei 100 Stueck waeren das 150 euro, also in der 
Zukunft 2 stunden gespart, hat sich das gerechnet.
Falls man auf der alten Schiene bleibt und fuer die Erweiterung einen 
neuen Prototypen braucht, sind die Layoutaenderungen bei 10 Stunden, 
macht 1000 Euro. Das wuerd auch fuer den Groesseren schon jetzt 
sprechen.
Ich wuerd auch fuer 1000 Stueck noch den Groesseren rechtfertigen, wenn 
sich Aenderungen ergeben koennen.

von Poster (Gast)


Lesenswert?

Bei den Pics in den Gehäusen lötet man die Pins ja eh nicht einzeln 
sondern macht mit den Lötkolben ja eher eine Art Lötwelle, da macht der 
Rasterunterschied nichts aus.

von Amateur (Gast)


Lesenswert?

@jemand
Kann es sein, dass Du etwas am Thema vorbei denkst?
Bei einem Steckbrett kann man, so noch nicht alle Anschlüsse belegt 
sind, fast jederzeit einen nachrüsten.
Bei einer "normalen" Schaltung (PCB) ist das fast nie möglich.

Solltest Du also etwas vergessen haben, musst Du den ganzen 
Kladderadatsch sowieso nochmal machen. Dann den "neuen, richtigen" 
Prozessor nehmen, macht den Bock auch nicht fett.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.