Willkommen in unserer Community

Werde Teil unserer Community und registriere dich jetzt kostenlos ...

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Lösungsvorschläge, bzw. Bauteilvorschläge

Dieses Thema im Forum "Schaltungen und Layout" wurde erstellt von Hemi, 1. August 2017.

  1. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    Moin zusammen,

    ich habe da mal wieder was :) Was Spezielles... :)

    Erstmal ein Bildchen:

    power.PNG

    Erklärung - hochfahren:
    Ein Receiver (heißt FOR auf dem Bild) ist von einem Spannungsregler versorgt (ist nicht auf dem Bild) und ist quasi im "immer an" Modus (bzw. wird vom Powermanagement des Fahrzeuges "geweckt"). Nun erkennt FOR ein Licht auf der Leitung (MOST Network) und signalisiert das am Pin /STATUS. (Pin geht auf low, wenn Licht erkannt wurde). Dieser (/STATUS) wiederrum fährt den zweiten Regler (der abgebildete) hoch, von dem das Steuergerät versorgt wird.

    Erklärung - runterfahren:
    FOR signalisiert dem zweiten Regler, dass kein Licht mehr auf der Leitung ist und /STATUS geht auf high. Das kriegt auch der Prozessor mit und fährt entsprechend den OS8104 runter, hält dabei über die /HOLD Leitung den zweiten Regler im eingeschalteten Zustand. Ist der OS8104 und CPU runtergefahren, wird /HOLD losgelassen und das Steuergerät ist off-line.

    An und für sich ist das Ganze einleuchtend und auch klar.

    Nur, wie kann ich das mit der /HOLD-Leitung realisieren? Im Regler ist ein NOR-Glied mit negierten Eingägen, kennt jemand so ein Baustein? Ich kenne nur Regler mit einem /EN-Eingang, aber mit zwei?

    Ich habe es mir so vorgestellt:
    -> ein "kleiner" Regler (FOP zieht im "full power mode" 22mA), von dem nur der FOP versorgt wird
    -> ein großer Regler (3A, step down), hier hängt der ODROID dran und OS8104 und der Rest
    -> der FOP steuert den großen Regler und informiert auch dem ODROID über den Zustand vom Bus (/STATUS Pin).

    Ideen?

    Danke Euch.
     
  2. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Ich meine zwar auch schonmal Regler mit mehreren EN-/SD-Pins gesehen zu haben, aber bevor Du jetzt ewig suchst...
    Was spricht dagegen, "links" noch'n externes Logikgatter dazuzuklemmen (wenn der Regler kein internes bietet) - soviel brauchen die auch nicht.
    Alternativ proggst Du Dir 'n Tiny4/5/9/10 selbst zum entsprechenden Logik-IC. Bei Bedarf kannste da dann auch Verzögerungen etc... einbauen. (da ist der Tiny zwar schwer beleidigt, aber...)

    Ansonsten hat Alabel vielleicht was für Dich?
     
  3. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    Ich habe schon ewig gesucht und nichts gefunden, immer nur ein /EN-Eingang.

    So eine Logic-IC wäre doch so ein CD4001B das Richtige oder?
     
  4. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Jain...
    Du hast oben kein NOR-Gatter, sondern ein OR-Gatter mit invertierenden Eingängen.
    Die Logik-Tabelle wäre demnach:
    Code:
    E E A
    0 0 1
    0 1 1
    1 0 1
    1 1 0
    Der 4001 ist meinem Buch nach ein Quad-NOR, also vier OR-Gatter mit invertierendem Ausgang.
    Die Logik-Tabelle eines einzelnen Gatters wäre:
    Code:
    E E A
    0 0 1
    0 1 0
    1 0 0
    1 1 0
    Du kannst natürlich die anderen drei Gatter als NOT-Gatter verschalten (wird auch gern mit NANDs gemacht...)

    oder eben stattdessen einen Tiny zweckentfremden. SOIC14 vs SOT23-6...

    Edit @Dirk : früher gabs mal Tabellen-Tags - ist da noch irgendwas machbar??
     
    #4 LotadaC, 1. August 2017
    Zuletzt bearbeitet: 1. August 2017
  5. Dirk

    Dirk Administrator Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    3.963
    Zustimmungen:
    98
    Ort:
    Mittelhessen, Giessen
    Sprachen:
    C#, Assembler, Pascal, C++, PHP, Java
    Map
    Theoretisch schon. Es gibt hierfür schon Lösungen, allerdings ist das mit Tabellen über bbcode allgemein recht kompliziert anzuwenden. Und früher hat das fast niemand genutzt, du mal, ich mal ... Ich kann mich ja da bei Gelegenheit mal beschäftigen, wie groß der Aufwand ist dieses Feature einzubauen.
     
  6. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    @LotadaC: Du hast Recht. Aber so ein Attiny ist schon putzig... 6 Pins, süß. Ich habe nur kein ISP für Megas und Tinys :(
     
  7. maik

    maik Moderator Mitarbeiter

    Registriert seit:
    12. Juni 2007
    Beiträge:
    147
    Zustimmungen:
    0
    Ort:
    der MakerConnect Zentrale :-)
    Map
  8. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Für SPI-ISP gibt's ja viele Programmiergeräte (STK500, AVRisp, simpler Parallelport,...). Bei vielen Megas und Tinies reicht das - der Tiny10 hingegen nutzt das Tiny Programming Interface (TPI), und dafür brauchst Du einen AVRisp mkII, vermutlich kann das auch das STK600, oder eben der von Maik vorgeschlagene ICE usw.
    Die neuen XTinies kann selbst der AVRisp mkII nicht mehr (oder noch nicht - und da der bereits obsolet ist, halte ich ein entsprechendes Firmwareupdate für sehr unwahrscheinlich).
    Bei Logikgattern nutzte halt Deine Finger und den Lötkolben als Programmer...
    Wenn Du willst, kann ich Dir auch'n entsprechend programmierten Tiny zuschicken. Falls man sich mal in Bückeburg trifft...;)
     
    #8 LotadaC, 1. August 2017
    Zuletzt bearbeitet: 1. August 2017
  9. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    @maik: Dank efür den Vorschlag. :) Ich bin aber beim NXP CM3 und habe da schon einen Debugger.

    @LotadaC: Das wäre cool, so ein Tiny :) Wenn Du es mir programmieren könntest :) Mit der Wertetabelle wie auf dem Bildchen da oben
     
  10. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Der Tiny10 hat sechs Beine. Zweimal Power, ein Reset - bleiben genau Deine Drei übrig. Du hast die Wahl, welcher der Ausgang sein soll.
    Der Ausgang wäre während des Powerup tristate (bis ich einen entsprechenden Pegel drauflegen kann) - da wäre sicher ein externer Pulldown sinnvoll.
    An den Eingängen brauch ich keine (bzw kann vor dem Auswerten selbst die internen Pullups aktivieren).
    Ein 100nF-Kerko zwischen den Stromversorgungspins - fertich...

    Was mir gerade aufgefallen ist, ist der Pulldown an /Hold in Deinem Bild oben. Wenn der Controller /Hold losläßt, geht der Eingang low - das Gatter würde durchschalten...

    Ansonsten wäre die Regel: Ausgang ist low genau dann wenn beide Eingänge high sind.

    Muß es besonders stromsparend sein, oder kann ich den einfach in einer Endlosschleife auf die Eingänge schauen lassen (ohne Sleep und PinchangeIRQ)?
    Ich würde den Controller mit seinem nativen internem 1MHz takten lassen, ich schätze den Schleifendurchlauf auf ca. 10 Takte. Wäre die Reaktionszeit fix genug?

    Ich such den Krempel dann nachher schon mal zusammen...
     
  11. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    Hört sich sehr gut an.

    Jetzt muss ich mal kurz überlegen.
    -> EN-Pin vom LM2596 muss auf low gezogen werden, damit er Regler angeht.
    -> Der Status-Pin vom POF wird auf low gezogen, wenn das Licht erkannt wurde.
    => einfach 1:1 durchreichen

    -> Pin HOLD kann ich definieren, wie ich will. Ich würde ich dann nach der Logik "active low" machen, ist der Odroid aus, liegt der Pin auf +5v (pull up). Ist er hochgefahren auf low.

    Daraus ergibt sich:

    werte.PNG

    Richtig?

    Nee, muss es nicht, eine Endlosschleife ist ok. Die einpaar mA wird die Batterie verkraften und nach 16 Minuten ist eh absolute Ruhe.

    Vielen Dank.
     
  12. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Beide Eingänge liefern bei low den Aktivierungszustand, der auch low wäre. Ein Eingang reicht aus. Der Ausgang soll high sein, gdw beide Eingänge high sind. Wäre ein stinknormales AND-Gatter (Deine Tabelle in #11 stimmt).

    Kann ich natürlich auch in den Tiny brutzeln.
    (Ich könnte sogar drei unterschiedliche Gatefunktionen implementieren, und den Reset-Pin zur Konfiguration/Auswahl beim Powerup verwenden (Hi, Lo, Open) - aber das AND wird Dir wohl reichen.)
     
  13. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    Was wäre der passende AND-Gatter?
     
  14. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Hmm... aus der 4000er Serie der 4081 zB, oder von den klassischen 74ern der 74xx08 oder 09...
    Das sind aber alles Quad-Gate-ICs, also mit je vier Gates -> 4*3 Pins + 2*Stromversorgung = 14 Beine.
    Ebenso kannst Du auch zwei Gates eines NAND-ICs verwenden (NAND ist ein AND mit Invertierung am Ausgang, wenn man diesen auf beide Eingänge eines zweiten NAND-Gatters legt, invertiert dieses das erste (quasi ein NNAND - die beiden N's heben sich auf)).
    Eben gerade den 74x2G00 gesehen - scheint ein Double Gate NAND zu sein -> VSSOP-8
    In der Praxis werden solche Ersetzungen häufig eingesetzt, da man dann nur wenige ICs braucht, statt mehrerer für unterschiedliche Gatter.

    Wenn Du bereits irgendwelche Logic-ICs dahast, kannst Du schauen, wie Du damit Dein AND realisierst (oder uns schauen lassen)...

    Wenn Du den Tiny willst, mußt Du mir sagen, welcher Pin (B0, B1 oder B2) der Ausgang sein soll


    CodeBox Assembler
       ┌─┐
    PB0┤ ├PB3 (/Reset)
    Gnd┤ ├Vcc
    PB1┤ ├PB2
       └─┘
    

    An den Eingängen würde ich die internen Pullups aktivieren, bevor ich mit dem auslesen beginne, der Pullup am Ausgang sollte bereits während des Powerups aktiv sein, also extern. Zusätzlich wäre ein Kerko zwischen Vcc und Gnd zu empfehlen.
     
  15. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Habs noch nicht getestet, kompiliert aber schonmal fehlerfrei:

    CodeBox Assembler
    /*
     * TinyGates.asm
     *
     *  Created: 04.08.2017 15:36:05
     *   Author: LotadaC
     *
     * AND Gate
     *  E1 und E2 als Eingänge festlegen, interne Pullups
     *  A als Ausgang festlegen, schaltet zwischen Gnd und Tristate
     */
    
     .equ E1=PB0 //Ein-/Ausgänge festlegen (Compilerkonstanten)
     .equ E2=PB1
     .equ A=PB2
    
     SBI PUEB, E1 //Pullups an den EIngängen aktivieren
     SBI PUEB, E2
     
     AusgangTristate:
     CBI DDRB, A    //Ausgang tristate
     AusgangLow:
     IN r16, PINB    //Pinregister laden
     ANDI r16, (1<<E1)|(1<<E2) //Eingänge maskieren
     SUBI r16, (1<<E1)|(1<<E2) //Eingänge subtrahieren (liefert 0 gdw beide Eingänge hi waren -> "Z")
     BREQ AusgangTristate  //dann springe
     SBI DDRB, A    //Ausgang auf Low, Output
     RJMP AusgangLow   //springe...
    

    18 Bytes Flash
    Der Schleifendurchlauf braucht (bei 1MHz) sechs bzw sieben µs.

    @Dirk: die ASM-Codebox kennt die Kommentare nicht, außerdem hat sie die Tabs/Leerzeichen verschludert...
    Und wenn ich direkt aus dem AtmelStudio C&P-en will, sind überall Leerzeilen dazwischen...
    (falls Dir langweilig ist, und die ToDo-Liste zu kurz...:p)

    Nachtrag @Hemi : auf meinem STK500 läufts - wenn Du den so getesteten Tiny haben willst -> Adresse via PN...
     
    #15 LotadaC, 4. August 2017
    Zuletzt bearbeitet: 4. August 2017
  16. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    SN74LVC1G08
    Single 2-Input Positive-AND Gate
    bei digikey 0,36 €

    gibt's auch von anderen Logik-Familien
     
    Hemi gefällt das.
  17. Dirk

    Dirk Administrator Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    3.963
    Zustimmungen:
    98
    Ort:
    Mittelhessen, Giessen
    Sprachen:
    C#, Assembler, Pascal, C++, PHP, Java
    Map
    Offtopic
    @LotadaC : ja, schaue ich mir demnächst mal an, die Highlighting-Regeln sollte ich hier auch noch anpassen.
     
  18. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.553
    Zustimmungen:
    42
    Ort:
    127.0.0.1 ;)
    Sprachen:
    C#, Assembler, LunaAVR, VB.Net, Python
    #18 TommyB, 5. August 2017
    Zuletzt bearbeitet: 5. August 2017
  19. Dirk

    Dirk Administrator Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    3.963
    Zustimmungen:
    98
    Ort:
    Mittelhessen, Giessen
    Sprachen:
    C#, Assembler, Pascal, C++, PHP, Java
    Map
    Offtopic
    @TommyB : ich hatte zwar dein .js verwendet, auch in der Version. Allerdings hat diese nicht mit deiner aktuellen überein gestimmt, es haben einige regex Einträge gefehlt. Nun werden auch wieder Kommentare erkannt.
    Das mit dem C&P Problem aus dem Atmel Studio ist wahrscheinlich aber eine andere Baustelle.
     
  20. Hemi

    Hemi Premium Benutzer

    Registriert seit:
    30. November 2008
    Beiträge:
    951
    Zustimmungen:
    4
    Ort:
    Korntal-Münchingen, Germany
    Sprachen:
    C#, C++, PHP, Java
    Map
    @LotadaC: Super Sache!!! :) Wo welche Eingänge sind, ist mir eigentlich egal, ich route es dann einfach passend und gut ist. Ein Eingang hat nur eine "höhere Prio".

    Gib mir noch Bescheid, was Du kriegst :)
     

Diese Seite empfehlen

  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)