Hallo Zusammen, ich habe zwei Fragen an die jenigen die nur SW Entwickeln und die HW von jemand anderen bekommt. Und zwar habe ich eine HW entwickelt an dem jemand anderes die SW für einen Microcontroller schreibt. Es gibt eine Anforderung, dass das System von 6,0 - 12,0 V funktionieren muss. Ein Mikrocontroller überwacht diese Spannung. Bereitgestellt wird die zu überwachende Spannung für den ADC über einen Spannungsteiler. Jetzt kommt die Frage von dem SW Entwickler, wie die ADC Werte aus den Spannungswerten berechnet werden. 1. Frage Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI anwenden? Oder muss ich, aus HW Sicht, ihm das in einer Anforderung mitteilen wie das berechnet wird? 2. Frage Wenn ich davon ausgehe, dass ich ihm das mitteilen muss, wie gehe ich dann mit Bauteiltoleranzen um, die ihm das Messergebnis im AD Wandler verfälschen? Ist es eine Worst/Case Betrachtung der ADC Werte? Ich weiß es ist Freitag, aber dennoch ein ernst gemeinte Frage.
:
Verschoben durch User
Eigentlich sollte das alles schon im Pflichtenheft stehen. Ein Block Diagram mit allen Stufen und Verstärkungsfaktoren wäre auch nicht so verkehrt. Auch alle Spezifikationen sollten jetzt schon festgelegt sein. Ich mache meist die HW und erste HW Test Software und habe dafür ein spezelles, von mir geschriebenes Test Programm das auf allen von mir benutzen uC läuft und leicht für ein neues Design angepasst werden kann. Mt diesem Programm kann ich dann über die serielle Schnittstelle auf die Gesamt-HW zugreifen. (Interne Peripherien wie Timer, Eeprom, Adcs und etz.) und auch alles was extern an der Schaltung hängt(24-bit ADCS, etz.). Damit verifiziere ich dann das ganze HW Design. Später dann, wo es geht bekommt mein Kollege die ganzen Unterlagen und Ergebnisse und kann dann die Anwendung so entwickeln wie es vorgegeben ist. Wenn dieser Abschnitt keine großen Fehler aufgezeigt hat, dann steht der Weg zur nächsten Phase bei. HW und SW Planung in Einklang mit dem Pflichtenheft erfolgt meist in parallel. Es ist auch sehr nützlich wenn der HW Designer auch im Rahmen der zukünftigen SW mitdenken kann. Auf dese Weise kann der HW Designer auch die SW Entwicklung streamlinen und unnötige Umständlchkeiten in der SW vermeiden. Das kann oft auch die Pin Belegung günstig beeinflussen. Im Layout kommt es manchmal vor, daß für besseres Layout Pin-swapping bei einfache DIO Port pins nützlich wäre. Gute Kommunikation und Zusammenarbeit zwischen HW und SW Kollegen ist hier sehr empfehlenswert. Einfacher ist es wenn das Projekt klein genug ist um alles selber planen und ausführen zu können. Dann ist man aber für alles verantwortlich - Auch die Fehler:-)
Hi, Softwareentwickler ist nicht gleich Softwareentwickler. Ein Hardwarenaher Softworker kann das, ein Windowscoder nicht. Frag einfach den Entwickler. Ansonsten sollte es ja kein Problem sein einen Skalierungsfaktor mit anzugeben... Die Bauteiltoleranzen kannst Du im Code nicht berücksichtigen, die gehen ja in beide Richtungen. Bei der Auslegung der Hardware ist natürlich der WorstCase zu betrachten. LG Johann
Also, ganz streng genommen, sollte ein Embedded - Softwareentwickler so etwas können. Naja. Sollte, hätte, wollte. Was mich irritiert, ist das er nach der Berechnung der ADC-Wert aus der Spannung fragt. Ist das wirklich so gefragt worden? Es ergibt sich ja aus Deiner Anforderung nach einer Spannung , ab der reagiert werden soll, dass er, wenn überhaupt, gerade das Gegenteil fragen sollte. Nun. Ich kenne die Umstände nicht und die Person und Eure Beziehung nicht und was er Dir gesagt hat, was er kann. Das sollte man berücksichtigen.
ThePower schrieb: > 1. Frage > Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI > anwenden? > Oder muss ich, aus HW Sicht, ihm das in einer Anforderung mitteilen wie > das berechnet wird? Das sollte als Anforderung immer dokumentiert sein. Bei Dir ist es jetzt vielleicht einfach. Aber stelle Dir mal vor, es soll die Temperatur mit einem NTC gemessen werden, wo die Kennlinie nichtlinear ist. Da braucht der Softwerker dann natürlich die Kennlinie - als Formel, Wertetabelle, oder was auch immer. > 2. Frage > Wenn ich davon ausgehe, dass ich ihm das mitteilen muss, wie gehe ich > dann mit Bauteiltoleranzen um, die ihm das Messergebnis im AD Wandler > verfälschen? Ist es eine Worst/Case Betrachtung der ADC Werte? Ja. Das muss natürlich berücksichtigt werden. Es macht keinen Sinn, 4 Nachkommastellen mitzuschleppen und auszugeben, wenn die Genauigkeit der Messung nur eine Nachkommastelle hergibt. Auch das ist eine Info, die der Softwerker braucht. fchk
Zu 1.: Wozu braucht der SW-Entwickler das ohmsche Gesetz? Daß ein ADC eine Spannung mit einer Referenz vergleicht sollte jemand, der eine Hardware programmiert, meines Erachtens wissen, der Rest ist Interpolation. (Ausgenommen natürlich diejenigen, die durch Betriebsystem, virtueller Maschine und zig Treiberschichten von der Hardware so absolut gar nichts mehr sehen, aber um die geht es hier ja anscheinend nicht). Ich finde aber, das so eine Beschreibung definitiv in einer Dokumentation genau beschrieben gehört. Aus einem-möglicherweise noch unmöglich gezeichneten-Schaltplan solche elementaren Informationen selber rauspulen zu müssen würde ich durchaus als Frechheit bezeichnen. Ein simpler Spannungsteiler ist zwar sehr einfach, das tägliche Brot eines reinen Softwareentwicklers ist es dennoch nicht. Und schon gar nicht, die richtigen zwei Widerstände in einem werweißwiegroßen Schaltplan zu entdecken. Außerdem besteht immer noch die Möglichkeit, das-je nach Anforderungen, Kostendruck und Kundenwunsch-der Hardware-Entwicler doch etwas mehr Hirnschmalz in die Aufgabe gesteckt hat und statt eines billigen Spannungsteilers z.B. einen billigen Differenzverstärker gebaut hat. Sowas gehört meines Erachtens definitiv dokumentiert. Besonders, wenn andere damit weiterarbeiten sollen. Zu 2.: Nun, du kennst die Betriebstemperatur und die Temperaturdrift aller von dir bestimmten Bauteile, die Meß- und Linearitätstoleranzen des AD-Wandlers. Daraus solltest du zuverlässig berechnen können, in welchem Toleranzbereich sich das Meßergebnis später bewegt.
Das ist das Problem, wie bei uns, wenn HW und Basis SW nicht aus einer hand kommen. Dann muss eigentlich der SW den Schaltplan verantworten. Nicht die spgsversorgung oder emv-schutz, aber alles, was an den uC geht. Mit der ersten Frage sagst Du quasi: Ist so einfach, mach selber! Und mit der zweiten: kann ich auch nicht. Nach welchen Vorgaben hast Du denn gebaut? Gib die doch einfach weiter...
Vielen Dank, das war schon sehr wertiger Input! Wir sind 4 HW + 3 SW Entwickler und sind ca. 50 km von einander Entfernt. Die Beziehung ist gut, nur die "Kommunikation" ist Problematisch und die Erwartungen immer eine andere (siehe Frage 1). Die Frage war wirklich "so" gestellt, sollte ich aber noch hinterfragen. Die Idee mit der Test Software ist super, es war nur keine Zeit und der Wunsch das bei uns zumachen wurde mit "dazu ist die SW Entwicklung da"... abgewunken. Vielen Dank!
Solch kleine Teams geografisch zu spalten ist eine richtig dumme Idee...
Sowas gehört eigentlich schon in einer kleinen Beschreibung für die Softwareentwickler dokumentiert. Da gehören dann noch so Dinge dazu wie an welchem Pin das angeschlossen ist, ob eine externe Spannungsreferenz angeschlossen ist oder die µC-intere verwendet werden soll etc. Mindestens an den Schnittstellen zu anderen Teams oder Entwicklern ist eine Schnittstellendokumentation sinnvoll.
Braucht der Softie dann auch noch eine Liste mit den Eingangssignalen oder kann er das wenigstens aus dem SLP extrahieren? Und wie will er die ganzen Init bzw. Config Werte für die Peripherie-Steuer-Register zusammenkriegen?
ThePower schrieb: > Die Idee mit der Test Software ist super, es war nur keine Zeit und der > Wunsch das bei uns zumachen wurde mit "dazu ist die SW Entwicklung > da"... abgewunken. Dann stelle Dich auf die Hinterbeine und fragst mal nett nach wie Du eigentlich Deine entwickelte Hardware verifizieren und debuggen sollst wenn keine Testsoftware existiert und man nicht auf die Schaltung zugreifen kann. Wenn Du Deine Peripherien nicht steuern kannst usw. Z.b. Wie sollst Du wissen ob und wie gut der externe MAX11200 24-bit ADC am SPI Bus funktioniert. Ob das Rauschen und Stabilität den Vorgaben entspricht. Solche Peripherien benötigen interne Parametrisierung um überhaupt wie gewünscht funktionieren zu können. Und stellt sich drei Monate bei Eurem System raus, daß der Analogteil noch nicht so gut funktioniert wie gewünscht. Wertvolle Zeit geht so verloren. Speziell wenn ein neues LP Design vonnöten ist. Aks HW Designer solltet ihr das Recht und Unterstützung von der Firma haben erste Testsoftware selber stricken zu können um die HW voll verifizieren und debuggen zu können. Irgendwie finde ich die erzwungene Trennung zwischen HW und SW hahnebüchen und wird letztlich die Kosten unnötig hochtreiben. Im ebedded Bereich sollte gleichzeitige HW und Test SW Entwicklung selbstverständlich sein. Zumindest solltest Du gleich bei Anbeginn der HW Entwicklung bestehen, dass Deine SW Kollegen nach Festlegung der HW schon mit dem Schreiben der Test Software nach Deinen Wünschen anfangen. Ganz abgesehen davon macht man das nur einmal weil sich solche SW auch bei zukünftigen Designs wiederverwenden läßt und jeweils nur mäßige Anpassungen benötigt. Meine Test SW läuft auf allen uC mit denen ich bis jetzt zu tun hatte. Von STM32 bis zu Arduino. Ich hätte da definitiv Probleme in so einer Firma zu arbeiten die die Wichtigkeit solcher Zusammenarbeit nicht in dem Grad würdigt die sie verdient. Gruß, Kopfschüttel
:
Bearbeitet durch User
Der SW-Entwickler wird halt schon ein paarmal mitgedacht haben. Aber wenn es dann ein Problem gibt, das vorher niemand bedacht hat (Toleranzen etc.), dann hat er ganz schnell den schwarzen Peter. Dann ist plötzlich jeder gescheit. Daraus wird er gelernt haben und will jetzt halt klare Aussagen haben. Wenn es so einfach wäre, dann sollte das ja kein Problem sein. Ist es aber halt oft doch nicht, wenn man dann selbst dafür gerade stehen muss.
ThePower schrieb: > Es gibt eine Anforderung, dass das System von 6,0 - 12,0 V > funktionieren muss. Ein Mikrocontroller überwacht diese Spannung. > Bereitgestellt wird die zu überwachende Spannung für den ADC über einen > Spannungsteiler. Ohne Schaltung wäre für mich die ganze Anforderung schon so recht sinnfrei. Wenn der der Controller irgendwelche Schutzmassnahmen sind der eigenen Versorgung (z.B. durch entsprechende Pufferung z.B. Goldcap, Akku, Batterie) geschützt ist, würden ja keine sinnvollen Messungen möglich sein. Somit wäre eine Überwachung nicht mehr möglich. Das Verhältnis des Spannungsteilers, damit der ADC Input auf für den Controller sinnvolle Werte reduziert wird sollte die Hardware-Fraktion dem Softwerker schon mitteilen bzw. man sollte sich auf ein passendes Teilerverhältnis einigen.
ThePower schrieb: > Jetzt kommt die Frage von dem SW Entwickler, wie die ADC Werte aus den > Spannungswerten berechnet werden. > > 1. Frage > Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI anwenden? Du bist nicht teamfähig und im falschen Tätigkeitsbereich. Bei einem solch trivialen "Problem" telefoniert man ein paar Minuten miteinander und fertig ist, es gibt keinen Grund, sich im Forum auszuheulen.
Ich empfinde die Beteiligten als ausserordentlich schwach. Entweder koennen sie miteinander kommunizieren, oder sie werden ersetzt, durch jemanden, der beides kann.
Naja, man muss aber auch sagen dass Kommunikation auch strukturiert sein will. Das kommt von einem Vorgesetzten oder auch nur respektiertem Teamleiter. In einem Scrum Team (das aber geografisch gespalten sowieso nicht geht), ist ein Scrum Master für die Optimierung der Kommunikation verantwortlich. Einfach die Mitarbeiter das selbst regeln lassen kann funktionieren, muss aber nicht und sehr selten läuft es langfristig optimal. Spätestens wenn eine Verantwortlichkeitsfrage geklärt werden muss, krachts...
> 1. Frage > Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI > anwenden? > Oder muss ich, aus HW Sicht, ihm das in einer Anforderung mitteilen wie > das berechnet wird? Vielleicht solltest du erstmal an die eigene Nase packen und das ohmsche Gesetz richtig anwenden können!!
Da wir nicht frei von Fehlern sind, gestehe ich mir meine auch ein. Die Frage zielte vor allem darauf ab: Wie macht ihr es? Wie macht man es richtig? Und dabei habt ihr geholfen.
Da wir nicht frei von Fehlern sind, gestehe ich mir meine auch ein. Die Frage zielte vor allem darauf ab: Wie macht ihr es? Wie macht man es richtig? Und dabei habt ihr geholfen. Teddy schrieb: > 1. Frage > Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI > anwenden? > Oder muss ich, aus HW Sicht, ihm das in einer Anforderung mitteilen wie > das berechnet wird? > > Vielleicht solltest du erstmal an die eigene Nase packen und das ohmsche > Gesetz richtig anwenden können!! Endlich hat es jemand gesehen!
Alex G. schrieb: > Naja, man muss aber auch sagen dass Kommunikation auch strukturiert sein will. > Das kommt von einem Vorgesetzten oder auch nur respektiertem > Teamleiter. In einem solchen Umfeld will man nicht arbeiten. Opfer der dabei entstehenden Produkte mag man auch nicht sein müssen. > Einfach die Mitarbeiter das selbst regeln lassen kann funktionieren, > muss aber nicht und sehr selten läuft es langfristig optimal. Quatsch. > Spätestens wenn eine Verantwortlichkeitsfrage geklärt werden muss, krachts... Richtig: Der Verantwortliche lehnt die Lösung ab, aus Prinzip, weil sie nicht auf seinem Mist gewachsen ist. Spricht man die auf Kollegenebene ab und setzt sie einfach um, merkt der Oberarsch das entweder garnicht oder erst sehr spät und es kommt dem Endprodukt zugute.
ThePower schrieb: > 1. Frage > Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI > anwenden? Nein. > Oder muss ich, aus HW Sicht, ihm das in einer Anforderung mitteilen wie > das berechnet wird? Ja, welcher A/D Wandlerwert zu welcher Spannung gehört. Veermutlich willst du auch vorgeben, daß die Spannung bezogen auf die interne Refeenz gemessen wird (die +/-10% schwanken kann, aber zeitlich stabil ist) oder auf VCC. > 2. Frage > Wenn ich davon ausgehe, dass ich ihm das mitteilen muss, wie gehe ich > dann mit Bauteiltoleranzen um, die ihm das Messergebnis im AD Wandler > verfälschen? Ist es eine Worst/Case Betrachtung der ADC Werte? Sicher musst du VOLLSTÄNDIG beschreiben, also auch Toleranzen. 12.0V -> Wandlerwert je nach Exemplar 901 bis 999 (oder so).
ThePower schrieb: > Wir sind 4 HW + 3 SW Entwickler und sind ca. 50 km von einander > Entfernt. Bei so kleinen Teams muss man aber auch auf die Qualität der Entwickler achten. Ein Informatiker darf nach der Funktion eines ADCs schon mal fragen, ein TI'ler (Technische Informatik, nicht Texas Instruments ;-) eigentlich nicht - letzterer hat nämlich auch Elektrotechnik gehört. Bei einem "einfachen" Spannungsteiler könnte das aber eine ernstgemeinte Frage sein, denn der ADC belastet den Teiler (bei AVRs mit 15kOhm z.T. signifikant). Reale Schaltungen sehe ich daher eher mit OpAmp oder Instrumentenverstärker. Idealerweise bekommt der SW Entwickler den Schaltplan früh zu sehen und kann noch Korrekturen anmelden: "Ich hätte das Signal für die LED lieber an Pin X statt Y, bitte." ThePower schrieb: > wie gehe ich > dann mit Bauteiltoleranzen um, die ihm das Messergebnis im AD Wandler > verfälschen? Entweder mit Worst Case oder man sieht gleich eine Kalibrierung vor. Letzters macht das Produkt aber teurer in der Herstellung.
Das Problem ist sehr häufig, eine goldene Lösung gibt es nicht. Wenn der Programmierer hardwarenah programmieren soll, dann muß er auch Schaltpläne lesen können und sowas wie OPV-Grundschaltungen und Spannungsteiler verstehen. Und auch die Datenblätter der ADCs, DACs und anderer zu programmierenden ICs mit Digitalinterface. Ideal ist es, wenn der HW-Entwickler auch die HW-nahe Programmierung übernehmen kann. Ich mache das gerne so. Die Spannungsteilerwiderstände stehen als Define im h-File und werden zur Compilezeit ausgerechnet. Damit lassen sich Bereichsänderungen ohne Rechenfehler leicht vornehmen. Z.B. ein Modul für 100V ist so problemlos auf 10kV umdimensioniert. Der Programmierer der Bediensoftware kriegt dann nur das fertige CAN-Interface zu sehen, wo er die Betriebsarten setzen kann, Statusmeldungen empfängt, sowie die analogen Steuergrößen in SI-Einheiten setzt und monitort.
Als HW-Entwickler weiß man auch am besten, welche Funktionen man zur Inbetriebnahme und zur Fehlersuche braucht. Z.B. kann ich auch alle Analogwerte roh setzen und auslesen oder Regelkreise auftrennen und Fehlerabschaltungen disablen. Ich mache das immer so, daß eine Fehlerwartezeit von 0ms = abgeschaltet bedeutet. D.h. der Fehlerstatus kann ausgelesen werden, aber der DAC wird nicht auf 0 gesetzt. Wenn man für jede Diagnosefunktion erstmal ein riesen Paper schreiben müßte und den Softwerker beknien, bis er es endlich implementiert, da würd ich ja wahnsinnig werden. Alle Diagnosefunktionen kann ich direkt über Ethernet und CAN bis in das jeweilige Modul tunneln.
ThePower schrieb: > 1. Frage > Kann der Entwickler nicht selbst in den Schaltplan gucken und R=UI > anwenden? Abgesehen davon, dass die Formel falsch ist: Ja, das kann er tun und wenn er was kann, wird er es auch beim ersten Mal tun (und vermutlich fluchen, weil die Datenblätter schon wieder unvollständig sind). Aber es ist für ihn Zeitverschwendung, die gesamte Entwicklung der Hardware zu verfolgen. Es ist Aufgabe der HW-Abteilung, alle relevanten Informationen an die SW-Abteilung weiterzugeben. Die gesamte Software sollte allein anhand der Beschreibung erstellbar sein. > Oder muss ich, aus HW Sicht, ihm das in einer Anforderung mitteilen wie > das berechnet wird? Selbstverständlich. Wenn du in der nächsten Revision einen anderen Spannungsteiler einbaust, dann muss sich in deiner Anforderungsliste ein Wert ändern. Du kannst nicht vom SW-Entwickler erwarten, dass er jedesmal den gesamten Schaltplan neu verfolgt. Das macht er einmal und danach nur, wenn es beim Test knallt. ThePower schrieb: > 2. Frage > Wenn ich davon ausgehe, dass ich ihm das mitteilen muss, wie gehe ich > dann mit Bauteiltoleranzen um, die ihm das Messergebnis im AD Wandler > verfälschen? Das ist deine Entscheidung. Wenn du angibst, dass ein ADC-Bereich von 674 bis 1503 einen ordnungsgemäßen Betriebszustand beschreibt, dann musst du dich nicht wundern, wenn ein Wert von 673 grundsätzlich zu einer Notabschaltung führt. > Ist es eine Worst/Case Betrachtung der ADC Werte? Das hängt von der Anwendung ab. In jedem Fall solltest du das Verhalten angeben, wenn die Toleranzen relevant sind. Weder Hardware- noch Softwareentwickler können Gedanken lesen. Hat man nicht genug Informationen, um seine Arbeit erledigen zu können, muss man sich die Informationen entweder beschaffen oder durch mehr oder weniger fundierte Annahmen ersetzen. In beiden Fällen entstehen implizite Bedingungen in der Software, die langfristig ein Problem werden können.
Was soll ich sagen. Schon die Hardware benoetigt die Zusammenarbeit von Hardware und Software Spezialisten. Denn sonst passt die Software nicht auf die Hardware und umgekehrt. Soll man einen ADC/DAC/Flash mit I2C, mit SPI, oder Parallel Anschluss einbauen ? Wieviele Stoerungen sind zu erwarten, wieviel sind tolerierbar.
:
Bearbeitet durch User
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.