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.
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.
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.
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
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
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
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.
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.
@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.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang