attiny 2313 TWI sitzt auf ISP Ports

Folienkondensator

Neues Mitglied
28. Mai 2012
89
0
0
Sprachen
  1. ANSI C
  2. Assembler
Hallo

Ich habe mal wieder eine hoffentlich kleines Problem.
Bei dem Attiny 2313 liegt ein TWI Port SDA auf dem MOSI Port.
Ist es möglich SDA zu nutzen ohne dass man sich aus dem Chip aussperrt?
Oder wird MOSI automatisch zu einem normalen Port sobald Reset nicht aktiv ist?

Gruß
Folienkondensator
 
Der Tiny2313 hat weder TWI noch SPI.
Er kann über SPI programmiert werden, wobei im Reset dieser Programmiermodus erzwungen wird (=Antwort auf Deine Frage).
(Hmm... wie das jetzt mit dem dWire ist, kann Dir vielleicht TommyB sagen - hab ich nie genutzt. Stichwort: DWEN-Fusebit. Möglicherweise wird dann SPI-ISP unterdrückt, da Reset ja dann dWire ist.)
Er besitz ein USI (Universal Serial Interface), welches (mit einigen Klimmzügen) als SPI verwendet werden kann (allerdings ohne !CS als Slave, und ohne Clockerzeugung als Master).
Das USI kann auch (mit einigen Klimmzügen) als TWI verwendet werden (auch hier keine automatische Clockerzeugung beim Master, als Slave muß man sich selbst um die Adresserkennung kümmern).
Das USI ist einfach ein Schieberegister.
 
debugWire funktioniert nur wenn es auch per Fuse aktiviert ist. Es wird dann ausschließlich die Resetleitung benutzt (+ Betriebsspannung für den Pegelwandler), sonst nichts. Aber Vorsicht bei der Nutzung! Für debugWire brauchst du auch einen Programmer der das kann, sonst sperrst du dich aus dem Chip aus und kannst den nur noch mit HVSP/HVPP (also wo man den kompletten Chip in den Programmer steckt) oder eben über dW wieder ansprechen. Dazu noch: Auch wenn dW den Chip programmieren kann, gedacht ist es dafür nicht, sondern eher zum -tadaa- debuggen ;)

Ansonsten nutz ich das SPI, was ja gleichzeitig auch die ISP Pins sind, mehrfach (auf nem anderem AVR). Funktioniert auch soweit ganz gut. Aber LotadaC sagte dass er weder noch hat. Mit USI hab ich noch nie etwas gemacht.


p.S.: Ich hab auch schon mal gedacht dass der Tiny13 SPI hat. Immerhin stehen ja MISO, MOSI, ... in der Pinbelegung drin. Das ist aber ausschließlich für ISP. Echtes SPI hat auch der nicht.

p.p.s.: Bin ich nu der dW Experte hier im Forum? :D
 
Hast meine Frage doch ganz gut beantwortet;)

Ok, um es nochmals auf den Punkt zu bringen:
Als erstes wäre zu unterscheiden zwischen einerseits: was kann es Dir unmöglich machen, den Tiny via SPI überhaupt zu programmieren, und andererseits: was könnte die Programmierung stören.

Zu einerseits gehören die Fuses, die den SPI-ISP unmöglich machen, also:
  • SPIEN aufheben - darauf hast Du mit SPI aber gar keinen Zugriff
  • RSTDSBL - wenn der Reset nicht mehr als solcher genutzt wird, ist weder SPI-ISP (noch dWire -> Tommy?) mehr möglich

Andererseits beinhaltet mögliche Störungen, die beim Design der Schaltung mit bedacht werden müssen. Wenn zB eine echte SPI-Schnittstelle in der Schaltung auch zum Programmieren verwendet wird, und am Bus jetzt irgendwelche Devices hängen, die zum Master werden können, oder durch den Programmierzyklus dazu angeregt werden, auch Daten auf den Bus zu jagen (zB wenn ihr CS-Pin dauerhaft aktiv ist etc bla blub).

Zusätzlich ist auch zu bedenken, was die Programmierung (als das, was über Clk und MOSI vom Programmer kommt und das, was Der AVR über MISO antwortet) jetzt in externer Hardware auslöst/auslösen könnte. Tommys Spiegelschrift ist ja da noch harmlos... aber wenn vielleicht 'ne Push-Pull-Stufe an CLK und Miso hängt...

Also: Was soll der MOSI/SDA-Pin letztlich machen? Willst Du darüber TWI nutzen? Dann gelangen die Programmiersignale ja via MOSI und SCK auf den Bus, bzw eventuelle Reaktionen/Bussignale auf die Programmierschnittstelle. Gegen die Pullups sollte der Programmer eigentlich ankommen, aber wenn jetzt andere Devices sich angesprochen fühlen, und ihrerseits ihren Senf dazugeben...
 
Hi

Danke für die Antworten!
Da hab ich ja ne mänge Input bekommen.
Also: Was soll der MOSI/SDA-Pin letztlich machen? Willst Du darüber TWI nutzen? Dann gelangen die Programmiersignale ja via MOSI und SCK auf den Bus, bzw eventuelle Reaktionen/Bussignale auf die Programmierschnittstelle. Gegen die Pullups sollte der Programmer eigentlich ankommen, aber wenn jetzt andere Devices sich angesprochen fühlen, und ihrerseits ihren Senf dazugeben...

Eigentlich will ich nur nen möglichst kleinen uC nutzen, der UART und i2C kann. Und deswegen der ATtiny2313 in SMD Bauform. Der Chip wird zum programmieren von der I2C Leitung getrennt. Mich beschäftigt nur die Frage ob es möglich ist i2C zu nutzen ohne dass man die MOSI/MISO Pinns vollends verliert (Aussperren).
Sprich, Kann ich den TWI wie gewohnt initialisieren und es funktioniert, oder muss ich Fusebits setzen o.ä. Oder sind die TWI Pinns bei dem Chip nur irreführend, so wie beim at90CAN128 die MOSI/MISO Pinns (Zum programmieren).

Gruß
Folienkondensator
 
Zur Erinnerung:
Der Tiny2313 hat weder TWI noch SPI.
:)

Wenn du TWI/I²C und RS232 (und SPI) nutzen möchtest würde ich einen Chip nehmen der auch alles kann, wie den ATmega48/88/168 (gibt auch noch andere). Ich kenne keinen ATtiny der alles kann. Die Mega's sind physikalisch ja auch nicht viel größer, und ich persönlich würde lieber einen etwas größeren IC nehmen statt mit USI irgendwie ein TWI/I²C zurecht zu basteln :)
 
Wie mehrfach gesagt: der Tn2313 hat eben kein TWI/SPI, sondern ein USI. Das ist ein Schieberegister, was durch einen externen Pin oder intern in Software(!) betaktet werden kann, und mit dem Du mit entsprechendem Aufwand etwas erreichen kannst, was ich als Software-gestütztes Hardware-TWI/SPI bezeichnen würde. Ob C oder Bascom da bereits entsprechende Bibliotheken etc besitzen, sodaß Dein Programm die wie echte SPI/TWI nutzt weiß ich nicht.
...Ich kenne keinen ATtiny der alles kann...
Schau Dir mal den Tiny441/841 an;)
  • 14-Pin-SOIC
  • 2x Hardware-UART
  • 1x Hardware-TWI SLAVE (inwiefern man das auch als Master nutzen kann, hab ich noch nicht recherchiert)
  • 1x Hardware-SPI
  • 1x8-bit, 2x16-bit Timer mit je 2 OC-Units usw
  • 1xADC (jeder der 12 Pins als Input möglich, differential Inputs und gain amplifier)

Allerdings lauern auch einige Fallstricke, bzw Neuerungen/Veränderungen:
Man ist variabler bei der Verwendung der Pins, UART0 besitz zB 2 unterschiedliche Pin-Sets aus denen man wählen kann (also zur default location von RXD0 und TXD0 gibt es noch 'ne alternative Location. Beim SPI ist es ebenso. Bei den 6 OC-Units ist es so, daß Dir insgesamt 8 mögliche Ausgabebeinchen zur Verfügung stehen, und jedes dieser 8 Beinchen jetzt mehr oder weniger flexibel auf unterschiedliche OC-Units (immer nur eins, von mehreren Möglichkeiten, klar) "aufgeschaltet" werden kann.
Daß die Pullup-Ansteuerung über die I/O-Register hier anders ist, hatte ich in dem anderen Beitrag ja schon geschrieben.

Insgesamt finde ich diesen Tiny trotzdem sehr Interessant - ich kann Folienkondensator in der Argumentation "SMD-Tiny" durchaus verstehen - die 1,27mm-SOICs sind halt doch'n Tick einfacher zu verplanen/verlöten als die 0,8mm TQFPs...
 
die 1,27mm-SOICs sind halt doch'n Tick einfacher zu verplanen/verlöten als die 0,8mm TQFPs...
Wohl wahr. Aber auch die hab ich schon auf's Lochraster gebracht. Halbierte Lötaugen, jedes 3. Beinchen hochgebogen und mit Kupferlackdraht verbunden. Geht alles :D

Das Datenblatt für den IC hab ich garnicht in meiner Liste, muss etwas neuer sein. Schau ich mir mal an wenn ich nicht mehr gedrosselt bin :rolleyes:
Dieses werbe-verseuchte Android frisst mir sämtlichen Traffic weg -.-'
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)