PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Assembler Code für Slave



mark84
01.03.2005, 19:55
Hi,

hab einen AT90S2313 an einem I2C-Bus. Weiß jemand einen Code in Assembler? Oder wie ich ihn ungefähr schreiben sollt? :-k Sollte Slave sein, für Master hab ich selbst genung gefunden!

Mfg O:)

Florian
01.03.2005, 21:22
Viel Spass beim Warten! ;o)
Bei sämtlichen Anfragen, auch meinerseits, hat sich niemand gemeldet, außerdem hat der AT90S2313 keinen Hardware-I2C!

mark84
01.03.2005, 21:35
Tja, den Hardware-I2C hab ich bei einem ATMega32 schon zum laufen gebracht. Dieser spricht Porterweiterungen an!

Aber müßt doch möglich sein einen Software-I2C für eine Slave in Assembler zu schreiben...

pebisoft
01.03.2005, 21:35
hallo, schau einmal im "avr forum". "www.mikrocontroller.net/" , dann unter codesammlung, die helfen dir auch weiter.
mfg pebisoft

Florian
03.03.2005, 14:05
Tja, den Hardware-I2C hab ich bei einem ATMega32 schon zum laufen gebracht. Dieser spricht Porterweiterungen an!
Hi!
Könntest Du den Code posten oder mir per mail zusenden? *bettel*
Ich hab damit irgendwie total Schwierigkeiten! :o(

Danke! :o)

mark84
07.03.2005, 15:06
Hi,
Sorry, das ich so lang gebraucht hab aber hab dir grad eben ne Mail mit dem Code geschrieben! :-)

Ich versuch grad den Software-I2C mit interrupts hinzubekommen aber hab angst das es alles zu lang dauert!
Da anscheinend niemand für einen Slave schreibt, muß ich eben mal schauen was dabei rauskommt...

Florian
07.03.2005, 15:28
Hi Mark!
Vielen Dank für den Code, ich werde ihn heute Abend mal mit meinem vergleichen und dann werde ich sicherlich den Fehler finden, hoffe ich zumindest! ;o)
Ich meine allerdings den Code ungefähr so wie Du zu haben, daher schätze ich, dass es am Slave liegt! :o(
Hast Du nicht auch noch, nen Hard-Slave? *lol*

Danke nochmal!
Ich melde mich, wenns was neues gibt! :o)

Jan_Weber
07.03.2005, 16:13
Vielleicht nutzt es euch noch, aber hier ist eine alte Atmel-Application Note aus der Zeit der Classic-AVRs ohne TWI-Interface.

http://www.build-a-bot.com/software/AVR302 Software I2C Slave Implementation.pdf
http://www.build-a-bot.com/software/AVR302.asm.txt

Viel Spaß,

Jan

Pascal
07.03.2005, 16:43
Hast Du nicht auch noch, nen Hard-Slave?

ich hab das mal in C programmiert, das Datenblatt war dazu eine sehr große Hilfe(da sind Codebeispiele drin), soweit ich mich erinnern kann, war das parallel zu C auch für Assembler vorhanden

Florian
07.03.2005, 16:51
Hi Pascal!
Ja, da hast Du Recht, allerdings sind die nur für den Mastertransmitter! :o(

Pascal
07.03.2005, 16:59
hab ich mich wohl getäuscht...
dann wars aber so, dass der Code für den Slave Reciever auch aus dem Datenblatt hervorgegangen ist, wenn auch nicht so direkt wie der des Masters...
im Prinzip stehts im Text, man muss sich halt alles zusammensuchen
allerdings hab ich das schonmal gemacht(zwar in C, aber in diesem Fall ist der Unterschied zu Asm nicht so groß, du musst halt ein paar Register beschreiben und auslesen) und hier im Forum gepostet, den Titel weiß ich nicht mehr, aber irgendwas mit TWI, du kannst ja mal suchen, der hat jedenfalls funktioniert

edit: thread heißt: "Fragen zu TWI"

Florian
07.03.2005, 17:12
Hi Pascal!
Ja, ich lese schon ganz fleißig das Datenblatt! ;o)
Bisher funktioniert es aber leider nicht! :o(
Wäre schön, wenn ich den Code noch fände, ich werde gleich mal suchen! :o)
Danke für den Tipp!

*edit*: Danke! :o)

michaelb
07.03.2005, 18:20
bevor ich ein neues Thema anfange wie kann ich einen Hardware I2C machen!!

Florian
07.03.2005, 18:34
Was meinst Du mit machen?

Dino Dieter
07.03.2005, 19:20
Hallo

Schau mal bei Atmel nach.

http://www.atmel.com/dyn/products/app_notes.asp?family_id=607

AVR315: Using the TWI module as I2C master


Gut gemacht und mit kleinen Änderungen auf Winavr zu gebrauchen.

MFG
Dieter