Port-Ausgabe temporär abschalten?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Schließ mal AVcc an Vcc an, der portc wird sonst nicht richtig versorgt.
      Und die 100nF an dem pin nicht vergessen.

      AVCC AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6. It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter. Note that PC6...4 use digital supply voltage, VCC.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------

      The post was edited 1 time, last by tschoeatsch ().

    • Wie geht's C4? Schon geplatzt, oder noch dicht? (Polung!)

      Deine beiden intx haben auch einen gnd bei der Verbindung?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------

      The post was edited 1 time, last by tschoeatsch ().

    • Hallo,

      die fehlende Verbinsung zwischen Vcc und AVcc habe ich inzwischen hergestellt, leider hat das auch keinen Erfolg gebracht.
      C$ geht's übrigens gut; der ist zwar falsch herum gezeichnet, aber auf der Platine habe ich ihn richtig herum eingelötet (Man darf ja auch mal Glück haben :) ).

      @tschoeatch: Was meinst du mit dem Kondensator an Pin? Vom Signal auf Masse? Bei der Experimentierplatine gibt es an der Stelle keine Kondensatoren. Weil das Programm auf der ja läuft, habe ich die bei meiner Platine auch nciht realisiert. Sollen die die Störsicherheit verbessern?
      Das Datenblatt vom BCR402/421 habe ich so interpretiert, dass der 420 über seinen Eingang an/aus geschaltet wird, während der 421 über den auch gedimmt werden kann.
      Beste Grüße
      Jürgen
    • JuWi wrote:

      Was meinst du mit dem Kondensator an Pin? Vom Signal auf Masse?
      Zu der Grundschaltung eines AVRs gehört es, dass alle Versorgungspins mit einem 100nF gegen Gnd abzublocken sind. Wenn die pysikalische Verbindung von Vcc und AVcc recht kurz ist, dann würde ich nur einen 100nF möglichst nah an Vcc und Gnd hängen.

      Ich lese das Datenblatt vom BCR420/421 anders. Aber ok, hast du die auch auf deinem Versuchsaufbau verwendet? Ich habe das jetzt so verstanden, der Versuchsaufbau geht, nur der finale Aufbau geht nicht. Was ist mit den Intx-Anschlüssen? Bekommen die ein sauberes Signal, ist eine gute, direkte Gnd-Verbindung zwischen Signallieferant (Fernsteuerempfänger) und dem AVR vorhanden? An dem Stecker ist zumindest kein Gnd mitgeführt. Wenn das über den Minus vom Akku geschieht, sind da vielleicht Störungen drauf.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch wrote:

      Zu der Grundschaltung eines AVRs gehört es, dass alle Versorgungspins mit einem 100nF gegen Gnd abzublocken sind.
      O.k. ist jetzt klar. Provisorisch habe ich Vcc und AVcc mit einem Draht von 2cm gebrückt. In der nächsten Version der Platine gibt es eine Leiterbahn direkt zwischen Pin6 und Pin18 (unter dem µC). Zwischen Vcc und Gnd sitzt direkt am µC ein 100 nF-Kondensator.
      Beim Versuchsaufbau habe ich die LEDs auf der Experimentierplatine verwendet, also nicht die BCRxx. Ich habe die Platine jetzt zweimal aufgebaut, einmal komplett und einmal nur den µC. In beiden Fällen sollten nach meinem Verständnis am geschalteten Ausgang des µC 5V zu finden sein; da ist aber außer einer minimal von 0V abweichenden Spannung nichts.
      Gnd läuft über die Minus-Leitung vom Akku. Wenn es da zu Störungen kommen sollte (das kann ich aber wirklich erst später im Fahrbetrieb sagen, dann vermute ich, dass sich das in fehlerhaftem Ein/Ausschalten einzelner LEDs äußern wird, aber nicht in dem aktuellen Totalausfall. Ohne den Antriebsmotor (der steckt im Chassis, die ganze Schalterei in der Karosse) und auf dem Tisch würde ich jetzt keinen großen Störlevel erwarten.
      Beste Grüße
      Jürgen
    • Stromversorgung ist ok? Flasht du den AVR auf dem board? Geht das auch 2x hintereinander? (Fangfrage, wenn was mit den fuses nicht passt, dann geht das nur 1x).
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch wrote:

      Stromversorgung ist ok? Flasht du den AVR auf dem board? Geht das auch 2x hintereinander? (Fangfrage, wenn was mit den fuses nicht passt, dann geht das nur 1x).
      Stromversorgung ist o.k.; die kommt aktuell aus dem Labornetzteil. Der Avr wird auf der selbst gebastelten Platine programmiert. Und ja, das geht mehrmals hintereinander, aktuell steht der Zähler in Bascom bei ca. 40. Die Fusebits kann ich auslesen, die stimmen mit den Einstellungen im Programm überein.

      djmsc wrote:

      Häng doch mal ein Oszilloskop dran. Ich denke der Pin wird nicht ordentlich geschaltet.
      Habe ich schon gemacht. Auf der Eingangsseite liegt ein sauberes Rechtecksignal vom Empfänger. Wenn das Eingangssignal ein Problem hätte, sollte das Programm gar icht aus der Kalibrierroutine herauskommen. Das ist aber nicht der Fall, es braucht nur, wie schon gesagt, mehr als einen Anlauf bis die Kalibrierung durch ist.
      Beste Grüße
      Jürgen
    • Hier

      BASCOM Source Code

      1. bRegister0 = R0 'read MCU status register
      2. if bRegister0.3 = 1 then 'MCUSR WDRF
      3. WatchdogFlag = 1 'store watchdog flag
      4. bFeedbackCount = 2 : gosub OkSignal '1 LED signal = watchdog active
      5. else
      6. 'WatchdogFlag = 0
      7. end if
      8. waitms 300 'delay to recognize signal before next starts
      9. if bRegister0.2 = 1 then 'MCUSR BORF
      10. BrownoutFlag = 1 'store brown-out flag
      11. bFeedbackCount = 4 : gosub OkSignal '2 LED signals = brown out active
      12. else
      13. BrownoutFlag = 0
      14. R0.2 = 0 'reset MCUSR BORF
      15. end if
      Display All
      blinkt ja was, das tut's auch so, wie gedacht?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Muss nochmal nachfragen, du hast 2 Programme angehängt, beide laufen auf dem Pollinboard, auch das lightcontrolV0_4 auf dem Pollinboard?
      Bei dem V0_4 hast du den watchdog drin und configuriert mit 256. Wo finde ich den reset dazu?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch wrote:

      Muss nochmal nachfragen, du hast 2 Programme angehängt, beide laufen auf dem Pollinboard, auch das lightcontrolV0_4 auf dem Pollinboard?
      Bei dem V0_4 hast du den watchdog drin und configuriert mit 256. Wo finde ich den reset dazu?
      Da war ich wohl nicht präzis genug: Des Programm mit der Endung _test ist die Version für das Pollinboard, die Version ohne _test ist für die selbst gebastelte Platine und den Mega8 (anstelle Mega 16 auf dem Pollinboard).
      Die Watchdog-Routine stqmmt aus einer anderen Steuerung und hat sich da bewährt, weil ab und an das BEC abschaltet (aber das ist eine andere Geschichte). Ich habe die hier übernommen, aber den Watchdog noch nicht gestartet, deshalb hat der auch keinen Reset. Ich bin davon ausgegangen, dass Konfigurieren des Watchdog erst einmal o.k. ist; scharf schalten wollte ich ihn, wenn das eigentliche Programm denn endlich mal das tut, wofür ich es vorgesehen habe.
      Wenn die Kalibrierung einmal durchlaufen ist, dann wird auch bei einem erneuten Programmstart der Teil 2 (hier gosub PulseCheck, select case bSigMeasErr) ohne Problem durchlaufen. Die LED meldet mit 4mal Blinken, dass ordentliche Werte gefunden weden.
      Beste Grüße
      Jürgen
    • tschoeatsch wrote:

      Wie kommst du da drauf? bRegister0 = R0...
      Ich finde jetzt leider die Quelle nicht mehr, in der das so beschrieben war, sorry. Aber die Überlegung war, den Zustand des Registers in eine Variable zu retten und dann damit weitere Auswertungen/Aktionen zu machen, also feststellen zu können, ob das Programm neu startet wegen unzureichender Spannung oder eines "Hängenbleibens" (wenn denn der Wathdog aktiv ist).
      Beste Grüße
      Jürgen
    • Du hast jetzt 2 Programme, das eine läuft im Pollinboard, mit mega16, das andere ist erweitert und läuft mit dem mega8 in deiner Platine nicht. Ich würde jetzt versuchen, die Erweiterungen erstmal auszukommentieren und das 'mega16-Programm' auf den mega8 zum laufen zu bringen. Dann nach und nach erweitern.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Update: Nun läuft's (mehr oder weniger)...
      Da ich bei meiner selbst gefertigten Platine keinen Fehler finden konnte, habe ich die komplette Schaltung noch einmal auf einem Experimentierboard aufgebaut. Da machte das Programm dann das, was es sollte. Also schnell eine Verbindung zum Modell gebastelt - und genau das merkwürdige Schaltverhalten gefunden. Nun, ab da war es etwas einfacher; Verdrahtung im Modell geprüft und des Rätsels Lösung in Form zweier vertauschter Signalleitungen gefunden. a_67_e210de67 a_67_e210de67 . Ich verbuch's mal unter Lernerfahrungen.
      Was jetzt noch nicht richtig funktioniert, ist die Aktivierung der KSQs IC2 & IC4 in o.g. Schaltplan. Wenn ich die einschalte, blinken die mit ca. 0,5 Hz. Ich dachte zuerst, das liegt an einer mangelhaften Stromversorgung, aber Reduzierung des Stroms brachte keine Abhilfe. Nächste Vermutung: Die Pins vom ATMega liefern nicht genug Strom, aber lt. Datenblatt können die max. 40 mA zur Verfügung stellen; beide ICs brauchen zusammen aber etwa 6 mA, um zu schalten.
      Also muss ich noch etwas weiter suchen...
      Beste Grüße
      Jürgen
    • JuWi wrote:

      Was jetzt noch nicht richtig funktioniert, ist die Aktivierung der KSQs IC2 & IC4 in o.g. Schaltplan.
      probier doch mal bei einem externen chip, den mit 5V anzusteuern, ohne AVR nur mit einer Drahtverbindung. Wenn es nicht blinkt und ordentlich geht, dann liegt's nicht an denen. Wenn es blinkt, dann erhöhe die Steuerspannung, bis es nicht mehr blinkt. Dann sind das halt die falschen chips für 5V Steuerung. Wenn du die passende Steuerspannung herausgefunden hast, dann siehst du ja, ob's mit einem zusätzlichen Transistor gehen könnte, zB. das der AVR über einen Transistor die 7,2V auf die KSQ leitet.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------