Reset Eingang beim Tiny85 disabled

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

    • Reset Eingang beim Tiny85 disabled

      Hallo Leute,
      ich bin mal wieder da, war längere Zeit nicht erreichbar und hab auch gleich ein kleines Problem mit einem Tiny85! Es geht um einen DCC Decoder von "opendcc". Dieser Decoder ist nicht in Bascom programmiert und ich hab auch nur das Hex File dazu! Um auch den port PB5 als I/O Port nutzen zu können, hab ich den Reset Eingang disabled. Das sollte laut Beschreibung wohl auch so sein! Nun die Frage: Wie kann ich die Fuse Einstellung wieder rückgängig machen oder ist der Tiny für immer gesperrt fürs Brennen? Das wäre alles nicht schlimm und könnte eventuell so bleiben, wenn ich noch die CV Wert verändern könnte aber das geht leider nicht mehr!

      Ich hoffe, dass ihr mir etwas positives sagen könnt ansonsten muss ich den Tiny wohl entsorgen!

      Gruß
      Klaus
    • Den Tiny musst Du nicht entsorgen, aber: Du musst ihn mit serieller HV (12V) programmieren. Dazu braucht man einen Programmer der das auch kann, z.B. ein STK500 oder STK600, AVR Dragon, ...

      Ansonsten kannst Du die „gesammelten Werke“ einem Bekannter oder einem Helfer hier im Forum schicken der die Teile zurücksetzt. Wegen einem Stück lohnt das nicht (Briefporto).
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Hallo und danke für die Infos!

      Sieht auf jeden Fall schon mal recht interessant aus. Muss ich mir dann nur noch überlegen wie ich die SMD Variante des Tinys (aufgelötet auf Platine) da anlegen kann! Ideal wären Kontakt Prüfspitzen, nur müssten die sehr dünn sein wegen dem Raster des Tinys.
      Jetzt guck ich mir das Teil erst mal an und hoffe, dass ich so schnell nicht wieder ins Krankenhaus muss, irgendwann will ich ja auch weiterkommen mit meinen Projekten!

      Meld mich wieder dazu :)
      Klaus
    • Hallo Leute,

      an Auslöten dachte ich auch, ansonsten wären die einzigen Bauelemente welche Schaden nehmen könnten, der 5V Regler und der 6,3V Tantal. Muss ich drüber nachdenken, weil, den 8 Beiner auszulöten (ohne Heisluftpen) ist etwas schwieriger als die beiden anderen Teile!
      Ich bau mir auf jeden Fall den HV Programmer auf um den einen oder anderen Tiny wieder zum Leben zu erwecken!

      Gruß
      Klaus
    • Nach meinem Stand wird nur der reset auf 12V gebracht, dein Spannungsregler dürfte also nicht geschädigt werden, wenn der 'rückspannungsfest' ist, also Vout>Vin sein darf. Ansonsten mit einer Diode Vout (Anode) mit Vin (Kathode) verbinden.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • Hallo ftelektro,

      eine Frage hab ich zu dem HV-Programmer! Ohne jetzt genau zu schauen wegen des Controllers, kann man anstelle des Tiny 4313 den Tiny 2313 nehmen oder ist bei letzterem der Speicherplatz zu gering? Hab auch gelesen, man könnte den Mega8 nehmen?
      Der SX1308 ist doch "nur" für die 12V zuständig oder? Kann man diese dafür nicht auch einfach extern zuführen?
      Der SX ist nicht einfach zu beschaffen und wenn dann nur als aufgebaute Schaltung!

      Gruß
      Klaus
    • Tiny 2313 ist der Speicherplatz zu klein.Beim Atmega 8 sind entsprechende Pins anzuordnen.
      SX1308 habe ich als fertigen Baustein verwendet um mit einer USB-Versorgung von 5V auszukommen .12V
      Fremdspeisung ist natürlich auch möglich.Zum Programmieren von 8poligen Chips verwende ich einen
      Adapter,siehe Ebay.

      ebay.de/itm/SOIC8-SOP8-Testcli…ksid=p2060353.m1438.l2649

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

    • Hallo ftelektro,

      hab ich soeben bestellt! Geniales Teil, hätte ich schon früher gebraucht. Man kann nicht alles wissen und haben. ;)
      Ich werde wohl ein externes Netzteil benutzen und daraus auch die 5V generieren. Normal als Programmieradapter benutze ich hier den AVR910, mit dem bin ich bis jetzt immer klar gekommen! Ansonsten werde ich jetzt den HV Programmer auf Lochraster aufbauen. Frage noch zu den Optokopplern, ich hab hier noch einige SFH615A rumliegen, sind die irgendwie kritisch oder reichen die auch aus? :?:

      Gruß
      Klaus
    • Hallo tschoeatsch,

      dann dürfte nach Adam Riese und Eva Zwerg eigentlich nichts passieren! Ein Versuch wird es zeigen!
      Aber mal eine Frage, hier im neuen oder vielleicht auch im alten Forum war mal jemand, der hatte sich mit DCC in Verbindung mit Bascom beschäftigt und auch etwas veröffentlicht. Weist Du da vielleicht noch was drüber?

      Gruß
      Klaus
    • BASCOM Source Code

      1. '-------------------------------------------------------------------------------
      2. ' Freigegeben für den privaten Gebrauch mit Quellenangabe www.dh2faa.de
      3. '-------------------------------------------------------------------------------
      4. 'FUSEBITS ATTINY2313
      5. ' EXT: 0xFF
      6. ' HIGH: 0xD9
      7. ' LOW: 0XDD
      8. '8 MHz Quarz an 2x 22pf
      9. 'Reset mit 10 kOhm beschaltet
      10. '-------------------------------------------------------------------------------
      11. $regfile = "attiny2313.dat"
      12. $crystal = 8000000
      13. $hwstack = 32
      14. $swstack = 8
      15. $framesize = 24
      16. '$baud = 4800
      17. Led Alias Portd.6
      18. Config Led = Output
      19. 'Input
      20. Dccin Alias Pind.2
      21. Config Dccin = Input
      22. 'Portd.2 = 1
      23. 'Timer
      24. Config Timer0 = Timer , Prescale = 8
      25. '-------------------------------------------------------------------------------
      26. ' Interrupts
      27. '-------------------------------------------------------------------------------
      28. 'Interrupt 0
      29. Config Int0 = Falling
      30. 'int
      31. On Timer0 Timer_irq
      32. On Int0 Dcc_irq
      33. '-------------------------------------------------------------------------------
      34. ' const
      35. '-------------------------------------------------------------------------------
      36. Const Timerstartwert = 169 ' 87 µs
      37. Const C_dcc_err = &H30
      38. Const C_dcc_sync = &H00
      39. Const C_dcc_01 = &H01
      40. Const C_dcc_02 = &H02
      41. Const C_dcc_03 = &H03
      42. Const C_show_off = &H00
      43. Const C_show_on = &H01
      44. '-------------------------------------------------------------------------------
      45. ' deklarationen
      46. '-------------------------------------------------------------------------------
      47. '-------------------------------------------------------------------------------
      48. ' variablen
      49. '-------------------------------------------------------------------------------
      50. Dim Dccbit As Byte
      51. Dim Dcc_pruef As Byte
      52. Dim Dcc_1 As Byte
      53. Dim Dcc_2 As Byte
      54. Dim Dcc_3 As Byte
      55. Dim A_dcc_1 As Byte
      56. Dim A_dcc_2 As Byte
      57. Dim A_dcc_3 As Byte
      58. Dim Sync_bit_count As Byte
      59. Dim Data_bit_count As Byte
      60. Dim Dcc_state As Byte
      61. Dim New_dcc_state As Byte
      62. Dim Show_state As Byte
      63. Dim My_adr As Byte
      64. Dim W_my_acc_adr As Word
      65. Dim Dcc_acc_adr_lo As Byte
      66. Dim Dcc_acc_adr_hi As Byte
      67. Dim W_dcc_acc_adr As Word
      68. Dim Bef_byte As Byte
      69. Dim Switch As Bit
      70. Dim Port As Byte
      71. Dim Spule As Bit
      72. '-------------------------------------------------------------------------------
      73. ' MAIN
      74. '-------------------------------------------------------------------------------
      75. 'Lokadresse nach Bedarf ändern
      76. W_my_acc_adr = 11
      77. '
      78. Dccbit = 0
      79. Dcc_state = C_dcc_sync
      80. Sync_bit_count = 0
      81. Data_bit_count = 0
      82. Dcc_1 = 0
      83. Dcc_2 = 0
      84. Dcc_3 = 0
      85. Show_state = C_show_off
      86. Timer0 = Timerstartwert
      87. Enable Int0
      88. Enable Timer0
      89. Enable Interrupts
      90. Stop Timer0
      91. 'los
      92. Do
      93. If Show_state = C_show_on Then
      94. Dcc_pruef = A_dcc_1 Xor A_dcc_2
      95. If Dcc_pruef = A_dcc_3 Then
      96. Dcc_acc_adr_lo = A_dcc_1 And &H3F ' lsb adr 6 bit
      97. Dcc_acc_adr_hi = Not A_dcc_2
      98. Dcc_acc_adr_hi = Dcc_acc_adr_hi And &H70 ' Bit 4-6
      99. W_dcc_acc_adr = Dcc_acc_adr_hi
      100. Shift W_dcc_acc_adr , Left , 6
      101. W_dcc_acc_adr = W_dcc_acc_adr Or Dcc_acc_adr_lo
      102. Bef_byte = A_dcc_2 And &HF
      103. If W_dcc_acc_adr = W_my_acc_adr Then
      104. Switch = Bef_byte.3
      105. Port = Bef_byte And &B110
      106. Spule = Bef_byte.0
      107. 'Print Switch
      108. 'Print Port
      109. 'Print Spule
      110. 'Print "E"
      111. 'Call Do_action_acc
      112. If Port = 0 And Spule = 0 And Switch = 1 Then
      113. Set Led
      114. End If
      115. If Port = 0 And Spule = 0 And Switch = 0 Then
      116. Reset Led
      117. End If
      118. End If
      119. End If
      120. Show_state = C_show_off
      121. End If
      122. Loop
      123. End
      124. '-------------------------------------------------------------------------------
      125. ' interrupts
      126. '-------------------------------------------------------------------------------
      127. Dcc_irq:
      128. Timer0 = Timerstartwert
      129. Start Timer0
      130. Return
      131. Timer_irq:
      132. Stop Timer0
      133. Timer0 = Timerstartwert
      134. Disable Int0
      135. ' Lese DCC Bit
      136. Dccbit = Dccin
      137. 'Dccbit = Not Dccin
      138. ' Protokoll Statusmaschine
      139. Select Case Dcc_state
      140. Case C_dcc_sync ' Präambel
      141. If Dccbit = 1 Then
      142. Incr Sync_bit_count
      143. If Sync_bit_count >= 10 Then
      144. Sync_bit_count = 0
      145. New_dcc_state = C_dcc_01
      146. Else
      147. New_dcc_state = C_dcc_sync
      148. End If
      149. Else
      150. Sync_bit_count = 0
      151. New_dcc_state = C_dcc_sync
      152. End If
      153. Case C_dcc_01 ' Startbit
      154. If Dccbit = 0 Then
      155. Data_bit_count = 0
      156. Dcc_1 = 0
      157. New_dcc_state = C_dcc_02
      158. Else
      159. New_dcc_state = C_dcc_01
      160. End If
      161. Case C_dcc_02 ' Adressbyte
      162. Dcc_1 = Dcc_1 Or Dccbit
      163. Incr Data_bit_count
      164. If Data_bit_count < 8 Then
      165. Shift Dcc_1 , Left , 1
      166. New_dcc_state = C_dcc_02
      167. Else
      168. 'dcc1 ist fertig (Adresse)
      169. New_dcc_state = C_dcc_03
      170. End If
      171. Case C_dcc_03 ' Datenbyte Startbit
      172. If Dccbit = 0 Then
      173. Data_bit_count = 0
      174. Dcc_2 = 0
      175. New_dcc_state = C_dcc_04
      176. Else
      177. New_dcc_state = C_dcc_sync
      178. End If
      179. Case C_dcc_04 ' Datenbyte
      180. Dcc_2 = Dcc_2 Or Dccbit
      181. Incr Data_bit_count
      182. If Data_bit_count < 8 Then
      183. Shift Dcc_2 , Left , 1
      184. New_dcc_state = C_dcc_04
      185. Else
      186. ' dcc_2 ist fertig (kommando)
      187. New_dcc_state = C_dcc_05
      188. End If
      189. Case C_dcc_05 ' Prüfbyte Startbit
      190. If Dccbit = 0 Then
      191. Data_bit_count = 0
      192. Dcc_3 = 0
      193. New_dcc_state = C_dcc_06
      194. Else
      195. New_dcc_state = C_dcc_sync
      196. End If
      197. Case C_dcc_06 ' Prüfbyte
      198. Dcc_3 = Dcc_3 Or Dccbit
      199. Incr Data_bit_count
      200. If Data_bit_count < 8 Then
      201. Shift Dcc_3 , Left , 1
      202. New_dcc_state = C_dcc_06
      203. Else
      204. ' dcc_3 ist fertig (prüfbyte)
      205. New_dcc_state = C_dcc_07
      206. End If
      207. Case C_dcc_07 ' Stopbit
      208. If Dccbit = 1 Then
      209. New_dcc_state = C_dcc_08
      210. Else
      211. New_dcc_state = C_dcc_sync
      212. End If
      213. Case C_dcc_08 ' Verarbeitung
      214. If Show_state = C_show_off Then
      215. A_dcc_1 = Dcc_1
      216. A_dcc_2 = Dcc_2
      217. A_dcc_3 = Dcc_3
      218. Show_state = C_show_on
      219. End If
      220. New_dcc_state = C_dcc_sync
      221. End Select
      222. Dcc_state = New_dcc_state
      223. Enable Int0
      224. Return
      Display All
    • Hallo Leute,

      danke erstmal für die rege Teilnahme an meinem Problem! Den HV Programmer hab ich schon angefangen zu bauen, fehlt mir nur noch der Mega8, muss ich wohl bestellen! Schätze nächste Woche wird er wohl fertig werden! :)
      Bei meine Frage nach DCC Projekten habt ihr mir schon einiges gezeigt, danke auch dafür! Das interessanteste ist wohl das von DH2FAA, würde mich mal der Anschlußplan davon interessieren, wie er das DCC Signal einspeist und wie er das mit der Adresse macht! Ist er wohl auch hier im Forum greifbar?
      Auch interessant ist das Projekt von "Zitronenfalter" mit den 24 Ports! Würde ich auch gerne bauen aber das aufzubauen ohne Leiterplatte??? Wenn er mich mal anschreiben würde, würde ich mich freuen!
      Ich glaub aber, das Thema DCC sollte man in einen anderen Fred verlegen!

      Gruß
      Klaus

      PS: Ich hab da noch eine andere Frage bezgl. eines Bootladers und die serielle Programmierung per 1Wire mit der diese Decoder mit Updates versehen werden können!
    • @veryoldman wenn du user aus diesem Forum ansprechen willst, wie zB @Zitronenfalter, dann tippe mal ein @ ein gefolgt von mindestens die ersten 3 Buchstaben des user-Namens. Dann geht eine 'Liste' der möglichen user auf. Den passenden wählen und dann steht der Name komplett da, innerhalb von '-Zeichen. Dieser user erhält dann automatisch den Hinweis, dass er zitiert wurde und kommt dann leicht in den post, wo das geschah. Durch diesen post von mir wirst du auch eine Benachrichtigung bekommen (wenn du das nicht in deinen Einstellungen abgeschalten hast).
      Raum für Notizen

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

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