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
Ich würde es davon abhängig machen, wie wahrscheinlich Hardwareänderungen sind. Und wie wahrscheinlich diese weitere Pins brauchen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.