Hallo, hier schreibt ein atmel neuling :) Folgendes ist mein momentaner IST-Zustand. Ich habe mir AVRdude runtergeladen, dazu noch folgende gui http://www.pcfilter.de/AVR-Ecke/Page5.html Ich verwende einen Usbtiny Programmer (den Bausatz, den es hier im Forum zu kaufen gab...). Dazu habe ich mir schon eine kleine Schaltung mit einem Tiny 12 aufgebaut und mit dem Programmer verbunden. Die Gui sagt, dass Verbindungstechnisch alles i.O. ist. Soweit also schon mal gut :) Nun zum Problem: Da ich des Programmierens in C nicht mächtig bin, sondern irgendwann mal etwas Pascal gelernt habe, habe ich mir MikroPascal von Mikroelektronika runtergeladen und damit mein erstes Programm geschrieben. Hiernach habe ich ein hex.file abgespeichert um dieses in der o.g. gui zu öffnen und in den tiny zu übertragen. Wenn ich die hex.file öffnen möchte kommt folgende Fehlermeldung: "Das Verzeichnis oder die Datei C:\.... enthält Leerzeichen.Bitte entfernen Sie die Leerzeichen und laden Sie die Datei erneut" Eigentlich sagt die Meldung ja was der Fehler ist, jedoch finde ich keine Leerzeichen, bzw weiss ich nicht wo diese suchen soll. wenn ich die hexfile im editor öffne sehe ich das: :020000040000FA :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 :10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 :10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 :10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 :10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 :10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 :10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 :1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 :1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 :1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 :1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 :1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 :1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 :10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF :10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF :10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF :10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF :10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF :10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF :10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F :10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F :10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F :10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F :1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F :1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F :1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F :1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F :1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F :1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F :10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE :10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE :10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE :10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE :10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE :10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE :10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E :10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E :10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E :10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E :1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E :1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E :1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E :1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E :1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E :1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E :10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD :10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED :10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD :10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD :10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD :10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD :10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D :10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D :10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D :10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D :1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D :1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D :1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D :1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D :1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D :1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D :00000001FF wo sollen hier Leerzeichen sein?? Muss ich vielleicht irgendwas bestimmtes einstellen, bevor ich unter mikropascal die hex.file abspeichere?? Vielen Dank schon mal für die kommenden Antworten.
1. Das HEX-File sieht µC-datentechnisch gesehen ziemlich leer aus. Ein gelöschtes Flash bzw. EEPROM enthält nur Hexbytes FF. Vergleiche das mal mit deinem HEX-File. 2. Wie heisst deine Hexdatei und in welchem Verzeichnis steht sie. Sind im Pfad oder Namen Leerzeichen vorhanden? Das kann bei der Übergabe des Namens von der GUI zum Kommandozeilenprogramm AVRDUDE stören, weil die Kommandozeile zerfrettelt wird! Umkopieren oder Umbenennen sollte helfen.
Ich sehe zwar keine Leerzeichen (bemühe mal den Textditor Deiner Wahl mit dem .hex und schaue im Original nach). Aber ich sehe auch kein Programm, denn da ist keins. Wenn Du das Obige in den Flash brennst, ist er so leer wie zuvor. Und wenn er es zuvor nicht war, ist es der beschriebene Bereich mit Sicherheit danach.
3. So lange Listings besser in den Anhang packen. Bei einem Hochladen kannst du auch sicher sein, dass die Datei exakt so auf dem Forumsserver landet, wei du sie auf der Platte hast. Das kann bei der Fehlersuche entscheidend sein.
fehler gefunden. es lag am dateipfad, dort war das Leer. Die übertragung ging auch. Die Led fing an das zu machen, was sich machen sollte, dummerweise nur sehr kurz, dann ist der tiny in den himmel aufgestiegen. wenn ich noch eine software finde, mit der man schaltpläne zeichnen/simulieren kann, werde ich meine schaltung hier posten. ihr wisst bestimmt, wo der fehler ist... ist nicht einfach für einen maschinenbauer in der kriechstromwelt ;)
Hallo! > Wenn ich die hex.file öffnen möchte kommt folgende Fehlermeldung: > „Das Verzeichnis oder die Datei:.................“ Ich habe die Fehlermeldung geändert auf: „Das Verzeichnis oder der Dateiname:.........“ Ich hoffe damit sind dann alle Unstimmigkeiten aus dem Weg geräumt, hätte nie gedacht das man ernsthaft in der HEX-Datei nach Freizeichen sucht... ;-) Beim nächsten Update ist dann die Fehlermeldung mit angepasst. LG Jens
@jens, hast du etwa die gui programmiert? wenn ja, daumen hoch! kann mir irgendjemand hier sagen, wieso mir der tiny abgefackelt ist? Im Anhang ist der Schaltplan. ACHTUNG: die Beinchenbelegung stimmt nicht mit der auf dem Bild überein. Leider sind in der Bib. von KiCad nur wenige atmels vertreten, sodass ich einen achtbeinigen pic nehmen musste... Pin4=GND; PIN5=PB0/Mosi; Pin8=VCC; Der Widerstand zwischen Transistor und Pin5 ist 4,7k; Der vor der LED 330R; Der Festspannungsregler ist ein LM7805; Den Transitornamen hab ich grad nicht zur Hand..
waldhamster schrieb: > [..] wieso mir der tiny abgefackelt ist? Wie äussert sich das? Magic smoke? Aber ein paar Dinge sind mir schon aufgefallen an Deinem Schaltplan: 1. War das mal ein JPEG? Pfui! 2. Ein paar Mehr Kondensatoren dürfens schon sein - 100n Abblockkondensator (Vcc-GNC) so nahe wie möglich an den µC, (direkt) vor und nach dem 7805 je einer laut Datenblatt (ebenfalls 100n? oder wars 1u?). 3. Pöser Fehler in der Ansteuerung der LED: Die Last (fast, aber auf jeden fall hier) immer an den Kollektor [1]! Effektiv ziehts dir sonst den PB0 auf +12V (mindus dem was der Transistor verbrät wenn er durchschlägt..). Achja und weitere Bibliotheken, insbesondere auch zu AVR, gibbet im Netz [2]. HTH und HF [1] http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Ausg.C3.A4nge_benutzen.2C_wenn_mehr_Strom_ben.C3.B6tigt_wird [2] http://www.kicadlib.org/
Dankeschön :) oh man, die materie, mit der ich sonst hantiere ist net so empfindlich...
@waldhamster > hast du etwa die gui programmiert? wenn ja, daumen hoch! Danke... :-) Wenn Du noch irgendwelche Fehler oder Ungereimtheiten finden solltest, sag mir bitte bescheid... > kann mir irgendjemand hier sagen, wieso mir der tiny abgefackelt ist? Ist er bestimmt nicht. Du musst auf jeden Fall am Reset-Pin noch ein 10k Widerstand gegen 5V Plus schalten. Des weiteren solltest Du so nah wie möglich am AVR einen 100nF Kondensator zwischen 5V Plus und Masse schalten. Und die Kondensatoren am Festspannungsregler fehlen auch (auch ein paar Elkos währen hier nicht schlecht). Lade Dir mal das Demo von Target 3001! herunter (oder von Eagle), damit kannst Du auch problemlos Schaltpläne erstellen... LG Jens
waldhamster schrieb: > Anhang ist der Schaltplan. ACHTUNG: die Beinchenbelegung stimmt nicht > mit der auf dem Bild überein. Leider sind in der Bib. von KiCad nur > wenige atmels vertreten, sodass ich einen achtbeinigen pic nehmen > musste... Bevor man einen falschen Schaltplan postet, lieber einen mit Bleistift gezeichneten und eingescannten posten. Oder mit Malprogramm gezeichneten oder die Schaltung fotografieren... Bildformate beachten! Die Anordnung der LED ist ja bereits besprochen worden. Es gibt einen Artikel darüber: "Transistor als Schalter, wohin mit der Last?" Die LED sieht IMHO zuviel Strom (ca. 30mA). Wie man den passenden Vorwiderstand berechnet, steht im Artikel LED. Hier die Anmerkung zu den +12V unten beachten. Deine Angst vor Kondensatoren solltest du bekämpfen. Korrekt sieht die Umgebung des Festspannungsreglers so aus: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Stromversorgung Wie stabil sind die +12V? Sind das wirklich +12V z.B. aus einem Labornetzteil oder steht das nur auf dem Steckernetzteil (?) drauf, so dass es auch mehr sein kann? Die Diode D1 als Verpolschutz ist kein Luxus!
Ich habe nun die Schaltung entsprechend euren Angaben aufgebaut.(Tiny13) Dieses mal ist nichts abgeraucht. Weiterhin habe ich mir die Demo von Bascom runtergeladen und ein winziges Programm geschrieben, das wie folgt ausschaut: $regfile = "attiny13.dat" $crystal = 9600000 Config Portb = Output do Portb = 1 Waitms 1000 Portb = 0 Waitms 1000 loop End ------------------------ Bascom meint, No Erros found... Wenn ich das "Projekt" speichere produziert er mir automatisch auch eine hex.datei. Die Übertragung in den Controller ist laut Dude und Gui auch erfolgreich. Nur beim Inbetriebnehmen, leuchtet die LED die Ganze Zeit, anstatt zu blinken.Die LED leuchtet übrigends an allen Ausgängen, nicht nur an dem oben deklarierten Portb. Ihr wisst ja sicherlich, was ich nun wieder falsch gemacht habe... Noch eine allgemeine Frage, die mich beschäftigt: Wird bei jedem Übertragen in den Controller alles überschrieben, oder muss man diesen irgendwann mal "löschen"?
Poste doch mal den aktuellen Schaltplan, evtl. steckt da schon das Problem. Portb ist übrigens kein einzelner Ausgang, sondern normalerweise ein 8bit breiter Port. Da der tiny13 aber insgesamt nur 8pin hat wovon pb5=/reset in der praxis meist noch wegfällt bleiben nur portb.0 bis portb.4 übrig. Erst durch die Zeile "Portb=1" wird festgelegt dass höchstens das niederwertigste Bit eingeschaltet wird. Wie lange hast du dir das Verhalten denn angeschaut? Standardmäßig läuft der t13 zwar auf 9,6 Mhz aber die werden noch durch 8 geteilt was auch die Wartefunktion beeinflusst.
Die LED müsste für deinen Code so angeschlossen sein: active high hell - dunkel - hell - dunkel .... 1K LED PB0 )------####----->|-------( GND oder active low dunkel - hell - dunkel - hell ... 1K LED PB0 )------####-----|<-------( Vcc
@waldhamster $regfile = "attiny13.dat" $crystal = 9600000 Config Pinb.0 = Output ' PB0 als Ausgang schalten Led Alias Portb.0 ' PB0 als LED definieren Do Led = 1 Wait 1 Led = 0 Wait 1 Loop End LG Jens
Vielen Dank für die Antworten. Habe das Problem gefunden bzw. gelöst. Ich hatte meinen transistor (ein pnp) mit Last an emitter und collector an gnd angeschlossen, so wie ich es im netz gelesen habe. Das funktionierte nur bedingt.- die led ging nicht ganz aus, sondern blinkte nur zwischen hell und weniger hell. nicht wie gewollt zwischn an und aus. Habe dann den transistor gegen einen npn getauscht und den basiswiderstand berechnet. nun blinkt die sache wie sie soll. ------------------------------------------------------------------------ --- der hintergrund, weshalb ich angefangen habe mich mit dieser ganzen sache zu beschäftigen ist, dass ich gerne das bremslicht meines motorrades etwas umbauen möchte... und zwar soll, bei betätigung des bremsschalters das bremslicht drei mal blinken und dann an bleiben, bis man den bremshebel wieder loslässt. bisher ging ich davon aus, dass durch das betätigen des bremsschalters einfach 12V an die led´s des rücklichts geschaltet werden und es leuchtet. unter dieser vorraussetzung habe ich auch meine schaltung aufgebaut--> 12V an die schaltung = ausgang blinkt. ------------ nun musste ich vorhin beim messen am moped feststellen, dass dauernd 12V zwischen masse und dem vermeindlichen schaltdraht für das bremslicht liegen. hierbei ist das bremslicht aus. betätigt man die bremse, so geht die spannung zwischen den genannten drähten auf 0,06V. Somit funktioniert die ganze geschichte genau andersrum... Ich hänge mal den schaltplan des rücklichts an. hoffe ihr habt eine idee. -------------------- ich bin jedenfalls infiziert... eine ganganzeige wird das nächste kleine projekt sein :)
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.