Attiny 417 fehlerhaftes Ausgangssignal

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

    • Attiny 417 fehlerhaftes Ausgangssignal

      Hallo zusammen,
      ich verwende einen Attiny 417 zur Ansteuerung einer RGBW-LED
      Verwendet werden:
      4x AD-Eingang zum Einlesen des Dimm-Signals
      4x Digitalausgang mit variabler Pulslänge zur LED Steuerung
      3 Kanäle funktionieren einwandfrei, der 4. Kanal (PortB.1) macht Fehlimpulse (siehe Bilder)
      Das Programm ist für alle 4 Kanäle gleich
      Ich glaube, ich hatte vor Jahren ein ähnliches Problem und jemand hat mir gesagt, daß es eine Alternative gibt, um Ausgangsports zu steuern (ich verwende PortB.1 = 1)
      Leider kann ich den Post nicht mehr finden.
      Hat jemand eine Idee.
      Muss ich am Stack, oder... was ändern?
      Muss für die Verwendung von PortA.4 (Eingang) oder PortB.1 (Ausgang) etwas disabled werden?
      Danke!

      Source Code

      1. 'RGBW Elektronik 3W
      2. 'ATTINY417
      3. 'Norbert Nestler
      4. 'V03 28.11.2021
      5. 'Fuses:
      6. 'Programmierung UPDI (PIN10)
      7. $Regfile="atxtiny417.dat"
      8. $Crystal=16000000
      9. $hwstack=40
      10. $swstack=16
      11. $framesize=32
      12. config Sysclock = 16_20mhz , Prescale = 1 , Clockout = Disabled '16/20MHz in Fuses auf 16Mhz setzen
      13. config PORTA.1 = OUTPUT 'frei
      14. config PORTA.2 = INPUT 'Eingang NTC
      15. config PORTA.3 = OUTPUT 'Ausgangssignal weiss
      16. WHITE_OUT alias PORTA.3
      17. config PORTA.4 = INPUT 'Eingangssignal RED
      18. config PORTA.5 = INPUT 'Eingangssignal grün
      19. config PORTA.6 = OUTPUT 'Start LED Treiber
      20. config PORTA.7 = INPUT 'Eingangssignal weiss
      21. config PORTB.0 = OUTPUT 'Ausgangssignal grün
      22. GREEN_OUT alias PORTB.0
      23. config PORTB.1 = OUTPUT 'Ausgangssignal RED
      24. RED_OUT alias PORTB.1
      25. config PORTB.2 = OUTPUT 'Ausgangssignal blau
      26. BLUE_OUT alias PORTB.2
      27. config PORTB.3 = OUTPUT 'Test-LED
      28. config PORTB.4 = INPUT 'Eingangssignal blau
      29. config PORTB.5 = OUTPUT
      30. config PORTB.6 = OUTPUT
      31. config PORTB.7 = OUTPUT
      32. config PORTC.0 = OUTPUT
      33. config PORTC.1 = OUTPUT
      34. config PORTC.2 = OUTPUT 'Test-Ausgang
      35. config PORTC.3 = OUTPUT
      36. config PORTC.4 = OUTPUT
      37. config PORTC.5 = OUTPUT
      38. Config Adc0 = Single , Resolution = 8bit , Adc = Enabled , Reference = VDD , Prescaler = 8 , Sample_len = 1 , Sample_cap = Above_1v , Init_delay = 32
      39. disable interrupts
      40. DIM RED_IN as byte
      41. DIM GREEN_IN as byte
      42. DIM BLUE_IN as byte
      43. DIM WHITE_IN as byte
      44. DIM RED_PAU as byte
      45. DIM GREEN_PAU as byte
      46. DIM BLUE_PAU as byte
      47. DIM WHITE_PAU as byte
      48. DIM OFF_ZEIT as byte
      49. DIM i as byte
      50. for i = 0 to 4 'Test LED blinkt 5x
      51. PORTB.3 = 1
      52. waitms 200
      53. PORTB.3 = 0
      54. waitms 200
      55. next i
      56. OFF_ZEIT = 2
      57. PORTA.6 = 1 'Schaltregler einschalten
      58. DO
      59. 'Einlesen
      60. '---------------------------------------------------------------------------
      61. 'Kanal GRÜN
      62. GREEN_IN = GETADC(5)
      63. IF GREEN_IN > 240 THEN GREEN_IN = 255
      64. GREEN_PAU = GREEN_IN
      65. GREEN_IN = 255 - GREEN_IN
      66. '---------------------------------------------------------------------------
      67. 'Kanal ROT
      68. RED_IN = GETADC(4)
      69. IF RED_IN > 240 THEN RED_IN = 255
      70. RED_PAU = RED_IN
      71. RED_IN = 255 - RED_IN
      72. '---------------------------------------------------------------------------
      73. 'Kanal BLAU
      74. BLUE_IN = GETADC(9)
      75. IF BLUE_IN > 240 THEN BLUE_IN = 255
      76. BLUE_PAU = BLUE_IN
      77. BLUE_IN = 255 - BLUE_IN
      78. '---------------------------------------------------------------------------
      79. 'Kanal WEISS
      80. WHITE_IN = GETADC(7)
      81. IF WHITE_IN > 240 THEN WHITE_IN = 255
      82. WHITE_PAU = WHITE_IN
      83. WHITE_IN = 255 - WHITE_IN
      84. '---------------------------------------------------------------------------
      85. 'Ausgeben
      86. '---------------------------------------------------------------------------
      87. 'Kanal GRÜN
      88. IF GREEN_IN > 10 THEN
      89. GREEN_OUT = 1
      90. waitus GREEN_IN
      91. GREEN_OUT = 0
      92. waitus GREEN_PAU
      93. END IF
      94. waitus OFF_ZEIT
      95. '---------------------------------------------------------------------------
      96. 'Kanal RED
      97. IF RED_IN > 10 THEN
      98. RED_OUT = 1
      99. waitus RED_IN
      100. RED_OUT = 0
      101. waitus RED_PAU
      102. END IF
      103. waitus OFF_ZEIT
      104. '---------------------------------------------------------------------------
      105. 'Kanal BLAU
      106. IF BLUE_IN > 10 THEN
      107. BLUE_OUT = 1
      108. waitus BLUE_IN
      109. BLUE_OUT = 0
      110. waitus BLUE_PAU
      111. END IF
      112. waitus OFF_ZEIT
      113. '---------------------------------------------------------------------------
      114. 'Kanal WEISS
      115. IF WHITE_IN > 10 THEN
      116. WHITE_OUT = 1
      117. waitus WHITE_IN
      118. WHITE_OUT = 0
      119. waitus WHITE_PAU
      120. END IF
      121. waitus OFF_ZEIT
      122. '---------------------------------------------------------------------------
      123. loop
      124. end
      Display All
      Files
      • Gut.jpg

        (115.42 kB, downloaded 5 times, last: )
      • Schlecht.jpg

        (157.76 kB, downloaded 3 times, last: )
    • Hab zwar noch nie mit XTinys gearbeitet, aber so wie Du Deine PWM Steuerung aufgebaut hast, beeinflussen sie sich alle gegenseitig.
      Ohne Deinen Code nun genauer unter die Lupe genommen zu haben: Teste doch mal, was passiert, wenn Du anstelle der eingelesenen Analogwerte Festwerte benutzt.
      Also die Zeilen
      GREEN_IN = GETADC(5)
      RED_IN = GETADC(4)
      BLUE_IN = GETADC(9)
      WHITE_IN = GETADC(7)

      ersetzen durch z.B.
      GREEN_IN = 100
      RED_IN = 100
      BLUE_IN = 100
      WHITE_IN = 100

      Wie sieht dann Dein Oszi-Bild aus?
    • Gab auch mal einen Thread (siehe ATMega2560 ADC Kanäle 8-15 auslesen ) bezüglich dem Auswerten von ADC Kanälen größer 7 (allerdings bei einem XMega).
      Sobald ein ADC-Kanal >7 abgefragt werden sollte, musste ein Offset von 24 dazuaddiert werden.
      Keine Ahnung, ob dies auch bei den XTinys der Fall ist. a_56_df238249

      Teste mal, ob das Ändern der Zeile
      BLUE_IN = GETADC(9)
      in
      BLUE_IN = GETADC(33) ' ADC Kanal 9 + Offset 24 = 33
      etwas bringt.
    • Hallo neno,
      ich glaube nicht, dass du mit deinem Ansatz, dass Timing über die Waits zu machen, Erfolg haben wirst.
      Die Ausführungszeit für einen Schleifendurchlauf sollte zumindest annähernd konstant sein. Bei dir ist das viel zu sehr abhängig von den GETADC Werten.
      Dein XTiny läuft mit 16MHz, d.h. du könntest einen Timer laufen lassen, der alle 10µs einen Interrupt erzeugt und dort die Kanale ein- und ausschaltet. Wenn dir 10µs Auflösung reicht, dann würde ich das so machen. Bei 8-bit Auflösung sind das dann 2,5ms Zykluszeit, also 400Hz. Das ist auf jeden Fall flimmerfrei, 200Hz würden sicher auch noch gehen, also 20µs Auflösung. Dadurch hättest du im Interrupt etwas mehr Zeit.

      Die Alternative zum Setzen des Port Registers ist übrigens eine 1 ins Pin Register zu schreiben. Das toggelt den Ausgang. Das braucht dann nur einen Takt anstelle von 2, also auch nicht die dramatische Änderung. Wobei ich nicht weiß, ob das bei den XTinys überhaupt so geht.

      The post was edited 3 times, last by Franz ().

    • Hallo Franz, hallo Robert,
      danke euch beiden für die Hinweise.
      Das Programm läuft auch mit den wait's sehr zufriedenstellend. Ich komme bei den LED's auf eine Wiederholfrequenz von 1KHz (4x 250us max. On-Zeit)
      Im realen Programm habe ich noch eine Schleife drin, die die LED Sequenz 4x hintereinander ansteuert, damit die AD Wandlungszeiten nicht so ins Gewicht fallen.
      Die Schleife hab ich nur zur Fehlersuche rausprogrammiert.
      Der Fehler schein woanders zu liegen.
      Ich habe die Eingangssequenz eines Kanals (in dem Fall der Weisse, aber es geht mit jedem anderen auch) rausprogrammiert. Danach funktioneren alle drei Kanäle, auch der PB1.
      D.h. die AD-Kanalzuordnungen passen, die Eingänge werden sauber gelesen.
      Evtl. ein Stack Problem, oder....

      BASCOM Source Code

      1. 'RGBW Elektronik 3W
      2. 'ATTINY417
      3. 'Norbert Nestler
      4. 'V03 28.11.2021
      5. 'Fuses:
      6. 'Programmierung UPDI (PIN10)
      7. $Regfile="atxtiny417.dat"
      8. $Crystal=16000000
      9. $hwstack=40
      10. $swstack=16
      11. $framesize=32
      12. config Sysclock = 16_20mhz , Prescale = 1 , Clockout = Disabled '16/20MHz in Fuses auf 16Mhz setzen
      13. config PORTA.1 = OUTPUT 'frei
      14. config PORTA.2 = INPUT 'Eingang NTC
      15. config PORTA.3 = OUTPUT 'Ausgangssignal weiss
      16. WHITE_OUT alias PORTA.3
      17. config PORTA.4 = INPUT 'Eingangssignal rot
      18. config PORTA.5 = INPUT 'Eingangssignal grün
      19. config PORTA.6 = OUTPUT 'Start LED Treiber
      20. config PORTA.7 = INPUT 'Eingangssignal weiss
      21. config PORTB.0 = OUTPUT 'Ausgangssignal grün
      22. GREEN_OUT alias PORTB.0
      23. config PORTB.1 = OUTPUT 'Ausgangssignal rot
      24. RED_OUT alias PORTB.1
      25. config PORTB.2 = OUTPUT 'Ausgangssignal blau
      26. BLUE_OUT alias PORTB.2
      27. config PORTB.3 = OUTPUT 'Test-LED
      28. config PORTB.4 = INPUT 'Eingangssignal blau
      29. config PORTB.5 = OUTPUT
      30. config PORTB.6 = OUTPUT
      31. config PORTB.7 = OUTPUT
      32. config PORTC.0 = OUTPUT
      33. config PORTC.1 = OUTPUT
      34. config PORTC.2 = OUTPUT 'Test-Ausgang
      35. config PORTC.3 = OUTPUT
      36. config PORTC.4 = OUTPUT
      37. config PORTC.5 = OUTPUT
      38. Config Xpin = PortA.4 , Outpull = DISABLED , Sense = INP_DISABLED
      39. Config Xpin = PortA.5 , Outpull = DISABLED , Sense = INP_DISABLED
      40. Config Xpin = PortA.7 , Outpull = DISABLED , Sense = INP_DISABLED
      41. Config Xpin = PortB.4 , Outpull = DISABLED , Sense = INP_DISABLED
      42. Config Xpin = PortA.3 , Outpull = DISABLED
      43. Config Xpin = PortB.0 , Outpull = DISABLED
      44. Config Xpin = PortB.1 , Outpull = DISABLED
      45. Config Xpin = PortB.2 , Outpull = DISABLED
      46. Config Adc0 = Single , Resolution = 8bit , Adc = Enabled , Reference = VDD , Prescaler = 8 , Sample_len = 1 , Sample_cap = Above_1v , Init_delay = 32
      47. disable interrupts
      48. DIM RED_IN as byte
      49. DIM GREEN_IN as byte
      50. DIM BLUE_IN as byte
      51. DIM WHITE_IN as byte
      52. DIM RED_PAU as byte
      53. DIM GREEN_PAU as byte
      54. DIM BLUE_PAU as byte
      55. DIM WHITE_PAU as byte
      56. DIM OFF_ZEIT as byte
      57. DIM i as byte
      58. for i = 0 to 4 'Test LED blinkt 5x
      59. PORTB.3 = 1
      60. waitms 200
      61. PORTB.3 = 0
      62. waitms 200
      63. next i
      64. OFF_ZEIT = 2
      65. PORTA.6 = 1 'Schaltregler einschalten
      66. DO
      67. 'Einlesen
      68. '---------------------------------------------------------------------------
      69. 'Kanal GRÜN
      70. GREEN_IN = GETADC(5)
      71. IF GREEN_IN > 240 THEN GREEN_IN = 255
      72. GREEN_PAU = GREEN_IN
      73. GREEN_IN = 255 - GREEN_IN
      74. '---------------------------------------------------------------------------
      75. 'Kanal ROT
      76. RED_IN = GETADC(4)
      77. IF RED_IN > 240 THEN RED_IN = 255
      78. RED_PAU = RED_IN
      79. RED_IN = 255 - RED_IN
      80. '---------------------------------------------------------------------------
      81. 'Kanal BLAU
      82. BLUE_IN = GETADC(9)
      83. IF BLUE_IN > 240 THEN BLUE_IN = 255
      84. BLUE_PAU = BLUE_IN
      85. BLUE_IN = 255 - BLUE_IN
      86. '---------------------------------------------------------------------------
      87. 'Kanal WEISS
      88. 'WHITE_IN = GETADC(7)
      89. 'IF WHITE_IN > 240 THEN WHITE_IN = 255
      90. 'WHITE_PAU = WHITE_IN
      91. 'WHITE_IN = 255 - WHITE_IN
      92. '---------------------------------------------------------------------------
      93. 'Ausgeben
      94. '---------------------------------------------------------------------------
      95. 'Kanal GRÜN
      96. IF GREEN_IN > 10 THEN
      97. GREEN_OUT = 1
      98. waitus GREEN_IN
      99. GREEN_OUT = 0
      100. waitus GREEN_PAU
      101. END IF
      102. waitus OFF_ZEIT
      103. '---------------------------------------------------------------------------
      104. 'Kanal RED
      105. IF RED_IN > 10 THEN
      106. RED_OUT = 1
      107. waitus RED_IN
      108. RED_OUT = 0
      109. waitus RED_PAU
      110. END IF
      111. waitus OFF_ZEIT
      112. '---------------------------------------------------------------------------
      113. 'Kanal BLAU
      114. IF BLUE_IN > 10 THEN
      115. BLUE_OUT = 1
      116. waitus BLUE_IN
      117. BLUE_OUT = 0
      118. waitus BLUE_PAU
      119. END IF
      120. waitus OFF_ZEIT
      121. '---------------------------------------------------------------------------
      122. 'Kanal WEISS
      123. IF WHITE_IN > 10 THEN
      124. WHITE_OUT = 1
      125. waitus WHITE_IN
      126. WHITE_OUT = 0
      127. waitus WHITE_PAU
      128. END IF
      129. waitus OFF_ZEIT
      130. '---------------------------------------------------------------------------
      131. loop
      132. end
      Display All
    • Es funktioniert ja auch nicht mit 3 Kanälen, das ist keine PWM, wenn man die Pulse und Pausen der einzelnen Kanäle nacheinander ausgibt.

      Normalerweise läuft die Do-Loop frei, ohne Wait und dergleichen.
      Dann kommt ein Zähler rein, der frei läuft und auch überläuft.
      In der Schleife prüfst du den Wert deiner Soll-PWM.
      Größer als Zähler - Pin einschalten, kleiner - aus.
      Die Abfrage kommt mit allen PWM-Ausgängen.

      Dim Z As Byte
      Dim Red_in As Byte
      Dim Blue_in As Byte
      Do
      Incr Z
      AD-Werte lesen
      If Red_in > Z Then
      Ausgang_A = 1
      Else
      Ausgang_A = 0
      End If
      If Blue_in > Z Then
      Ausgang_B = 1
      Else
      Ausgang_B = 0
      End If

      usw.

      Loop


      Das ganze kann man auch in einer ISR machen, ist dann vorhersagbar von der Frequenz, aber durch die ISR-Last langsamer als in der Do-Loop.

      Den Vorschlag mit den Festwerten zum Test von @R2D2 Bastler hast du schon probiert?
    • Hallo Michael,
      ich habe auch nie behauptet, daß ich eine PWM-Ausgabe machen will, dafür hätte ich einen PWM-Timer benutzt.
      Ich möchte 4 Ausgänge mit einem variablen Puls-Pausenverhältnis multiplexen. Für 3 ADC-Eingänge funktioniert mein Programm ja auch fehlerfrei so wie ich es will.
      Nur wenn ich den 4. ADC-Eingang dazu nehme, gibt PORTB.1 (und nur PORTB.1, alle drei anderen arbeiten sauber weiter) das Ausgangssignal in der 4-fachen Frequenz aus....

      Trotzdem danke für deinen Lösungsansatz.
      Die Festwerte werde ich heute noch probieren.

      Gruß
      Norbert
      Files
    • Hallo Michael.
      ja, so gesehen.... a_217_27b18bee a_504_f630bbf2
      Die Schaltung nimmt 4 verschiedene PWM-Werte mit unterschiedlichen Frequenzen auf (daher die Analogwandlung) und erzeugt daraus ein gemultipextes Ansteuersignal mit unterschiedlichen Puls-Pausenzeiten zur weiteren Verarbeitung in einem LED-Treiber.
      Wie gesagt, 3 ADC-Kanäle funktionieren einwandfrei, wenn ich den 4. ADC-Kanal dazuprogrammiere erscheint das Signal an PB.1 plötzlich mit 4 facher Frequenz. Wenn ich den 4. Kanal wieder auskommentiere passt die Frequenz wieder. ?( ?(
      Zu den Festwerten bin ich noch nicht gekommen, muss grad noch was anderes erledigen. Ich sag wieder Bescheid dazu, nehm aber gerne noch eine Idee an, woran das liegen könnte.
    • Welchen Sinn siehst du darin, die RGBW-Kanäle zu "multiplexen" ?

      So wie ich dein Code verstehe liest du für z.B. Kanal Rot einen 8-Bit Wert (ADC) ein,
      den nimmst du dann als PauseWert für Rot, die An-Dauer der LED ist 255- dem ADC-Wert.
      Daraus ergibt sich pro Kanal An-Zeit + Aus-Zeit immer 255µs.

      Die Rechen-Zeit, die pro LED verbraten wird, ist also immer 255µs (226µs, wenn man OFF_ZEIT mit rechnet).
      Dann machst du das für die 4 Kanäle nacheinender, das ergibt dann eine gesamt-Durchlaufzeit von 1ms für 4 Kanäle.

      So und das bedeutet, dass z.B. Rot max. 255µs an ist (Rotpause ist dann 0), und bis sie wieder an geht, dauert es noch 3x 255µs.
      Du hast also lt. Code aus Post #5 einen maximalen Tastgrad von 25% pro Kanal. Die LED wird also nur zw. 0% (Aus) und 25% Helligkeit dimmbar sein.

      Wenn du also jede Farbe zw. 0% und 100% dimmen willst, kannst du das so nicht machen.

      Also was macht es für einen Sinn, die Kanäle zu multiplexen?
    • R2D2 Bastler wrote:

      Teste mal, ob das Ändern der Zeile
      BLUE_IN = GETADC(9)
      in
      BLUE_IN = GETADC(33) ' ADC Kanal 9 + Offset 24 = 33
      etwas bringt.
      Ja, der Xtiny hat nur 2 AD-Kanäle (maximal)
      Es muss heißen
      BLUE_IN = GETADC(0, 33) für Ad-Kanal 0 und AIN 9
      avrhelp.mcselec.com/index.html?getadc.htm

      Mitch64 wrote:

      Also was macht es für einen Sinn, die Kanäle zu multiplexen?
      Vielleicht ist da ja immer sowas wie ein Fahrtregler dran ;)

      Trotzdem gibt es ja scheinbar immer 3 Pulse auf dem einen Kanal.

      Das kann sein, wenn 3 der AD-Variablen <= 10 sind, dann werden sie bei der Ausgabe übergangen und nur ein Kanal macht eine Ausgabe (Bild schlecht_02_01.jpg)
      Möglicherweise schwingt da was, die Glättung der AD-Werte könnte Artefakte reinbringen.

      Hatte ich schon angeregt, Festwerte auszuprobieren?
      Dann könnte man den Fehler etwas besser eingrenzen.
    • Hallo Mitch,
      vielen Dank an Dich und alle anderen die meinen Post lesen.
      Aber es geht nicht drum mein Programm zu analysieren, wie schon mehrfach geschrieben macht das Programm genau das, was ich brauche und will. Und die Abläufe sind absichtlich so geschrieben. Ich baue keinen PWM-Dimmer, das würd ich anders machen.
      Was ich mir hier gewünscht hätte, wäre ein Tip zu meiner Fehlerbeschreibung: Wenn ich 3 ADC Kanäle einlese habe ich die Ausgangsfrequenz "gut" an PB.1, wenn ich den 4. ADC Kanal dazuschreibe ist die Ausgangsfrequenz an PB.1 4x so hoch und das ist fehlerhaft und kann laut Programmcode auch nicht so sein.

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

    • Hallo Michael,
      vielen Dank für den Tip mit dem GETADC(0, 33), werd ich morgen probieren. Kann ein AD-Wandler "überlaufen" - ich meine, wenn 3x einlesen funktioniert, aber 4x nicht... Kann man den Inhalt des AD-Wandlers im Programm löschen?
      Dann mach ich den Test mit den Festwerten auch gleich mit.
    • Zu guter letzt habe ich doch noch den Fehler gefunden. Es ist der Name der Variable "RED_PAU". Wenn ich diesen durch einen anderen ersetze (z.B. "nonsense", oder irgend einen anderen) funktioniert das Programm fehlerfrei. Warum könnte das so sein?

      FUNKTIONIERT NICHT:

      Source Code

      1. '---------------------------------------------------------------------------
      2. 'Kanal ROT
      3. RED_IN = GETADC(4)
      4. IF RED_IN > 240 THEN RED_IN = 255
      5. RED_PAU = RED_IN
      6. RED_IN = 255 - RED_IN
      7. '---------------------------------------------------------------------------
      8. 'Kanal RED
      9. IF RED_IN > 10 THEN
      10. RED_OUT = 1
      11. waitus RED_IN
      12. RED_OUT = 0
      13. waitus RED_PAU
      14. END IF
      15. waitus OFF_ZEIT
      16. '---------------------------------------------------------------------------
      Display All

      FUNKTIONIERT:

      Source Code

      1. '---------------------------------------------------------------------------
      2. 'Kanal ROT
      3. RED_IN = GETADC(4)
      4. IF RED_IN > 240 THEN RED_IN = 255
      5. nonsense = RED_IN
      6. RED_IN = 255 - RED_IN
      7. '---------------------------------------------------------------------------
      8. 'Kanal RED
      9. IF RED_IN > 10 THEN
      10. RED_OUT = 1
      11. waitus RED_IN
      12. RED_OUT = 0
      13. waitus nonsense
      14. END IF
      15. waitus OFF_ZEIT
      16. '---------------------------------------------------------------------------
      Display All
      Danke an alle für den Support a_45_132ca9f5 a_64_3a718cae