Ich programmiere schon seit langer Zeit Atmel-Prozessoren. Jetzt möchte
ich eine Schaltung nachbauen, auf der bisher ein PIC-Controller zum
Einsatz kommt. (Fertige Platine von der Uni)
Da ich mich nicht in PIC einarbeiten möchte und auch nicht brauche (Code
ist nicht verfügbar), habe ich eine Frage an die PIC-Anwender unter
euch.
Zum Einsatz kommt ein PIC16F676, dieser kommuniziert unter anderem mit
einem DA-Wandler Baustein über eine Clock-Leitung und eine Data-Leitung.
Der "Vorgänger" benutzt Pin9 (RC1/AN5) als Clock-Leitung und Pin10
(RC0/AN4) als Data-Leitung zum DA-Wandler.
Meine Frage: Hat der "Vorgänger" den Datenaustausch mit CLK/Data "zu
Fuß" programmiert oder benutzt er die Leitungen mit internen Registern
als Serielle Schnittstelle? Im Datenblatt ist das nicht explizit erwähnt
und ich kenne mich nicht mit der PIC Struktur aus.
Könnt Ihr mir dazu etwas sagen?
Bei Atmel würde ich jetzt spontan die SCL und SDA Leitung meiner
seriellen Schnittstelle nehmen. Aber vielleicht hat es ja einen Grund
für den Manuellen Weg.
Auslesen konnte ich leider nichts, da mir die Platine nur eingeschränkt
zur Verfügung steht, daher kenne ich auch nicht die Frequenz mit der die
Kommunikation abläuft. Falls die nötig sein sollte, muss ich mir erst
mal eine lauffähige Platine besorgen.
Ok, alles klar. Dann habe ich das wohl verstanden. Ich hatte gedacht,
dass man Programmierleitungen vielleicht auch als serielle schnittstelle
nutzen kann.
Gut, danke für den Hinweis!
M.B. schrieb:
> Bei Atmel würde ich jetzt spontan die SCL und SDA Leitung meiner> seriellen Schnittstelle nehmen.
Nicht alles, was über 2 Leitungen geht, muß I2C sein.
Es gibt auch eine Art 2-draht SPI, wo der Datenpin umschaltet, quasi
MISO und MOSI zugleich ist.
Peter
In meiner Anwendung muss mein ATtiny nur senden - und zwar ein 16Bit
Wert an einen DA-Wandler, ohne Overhead, ohne Adresse - nur die reinen
Daten. Was bietet sich da an? TWI als Master in 2-wire-Mode? Oder schon
zu kompliziert?
M.B. schrieb:
> In meiner Anwendung muss mein ATtiny nur senden - und zwar ein 16Bit> Wert an einen DA-Wandler
Nun, dann mußt Du einfach nur das Protokoll des uns unbekannten DACs
implementieren.
Die Datenblätter beschreiben das in der Regel sehr ausführlich. Manche
enthalten sogar Beispielschaltung und Beispielprogramme für nen MC
(8051, PIC).
> ohne Adresse
Dann scheints schonmal kein I2C zu sein, also ist TWI zu verwenden
ziemlich sinnfrei.
Peter
Schönen Dank für die Antwort, habe mir die Application Notes über TWI
durchgelesen. Werde mir wohl aus den AppNotes die wichtigsten Bausteine
raussuchen. Empfangen brauche ich nichts, mit Ack habe ich auch nichts
zu tun. Dann bleibt nicht mehr viel übrig. Und unterm Strich ist trotz
der USI der Code fast zu Fuß zu erstellen. Ist wohl in der
Ausgangssituation damals mit berücksichtigt worden. Ich dachte - auf die
schnelle - den Codeteil mit der Kommunikation etwas abkürzen zu können.
Der DAC ist von Texas und verlangt kein Protokoll, sondern erwartet 16
bit mit vorgegebenen Timing diagramm.
M.B. schrieb:
> Der DAC ist von Texas und verlangt kein Protokoll, sondern erwartet 16> bit mit vorgegebenen Timing diagramm.
Dann ist es definitiv kein TWI/I2C.
M.B. schrieb:
> Ich dachte - auf die> schnelle - den Codeteil mit der Kommunikation etwas abkürzen zu können.
Was hast Du denn erwartest, wenn Du den DAC streng geheim hältst?
Peter
Ich wollte ja keine fertige Lösung a la copy&paste.
Ich hatte auch schon weiter oben beschrieben, das es kein Protokoll
gibt, daher bin ich auch nicht auf den Typ eingegangen, es war auch
nicht meine Absicht das Geheim zu halten.
M.B. schrieb:
> In meiner Anwendung muss mein ATtiny nur senden - und zwar ein 16Bit> Wert an einen DA-Wandler, ohne Overhead, ohne Adresse - nur die reinen> Daten. Was bietet sich da an? TWI als Master in 2-wire-Mode? Oder schon> zu kompliziert?
Vi9elen Dank trotzdem für die Anregungen...
M.B. schrieb:
> Ich hatte auch schon weiter oben beschrieben, das es kein Protokoll> gibt
Wie Du meinst.
Bisher hatte aber jeder ADC oder DAC, den ich verwendete, ein Protokoll
nötig, d.h. einen ganz bestimmten Signalverlauf auf den Leitungen, um
Werte einzulesen oder auszugeben. Deshalb gibt es ja in den
Datenblättern die Timingdiagramme, die das Protokoll zeigen.
Es kann durchaus auch mal sein, daß 2 verschiedene DACs das gleiche
Protokoll verwenden. Das kann man aber nicht voraussetzen.
> daher bin ich auch nicht auf den Typ eingegangen
Dann kann es auch nur bei nebulösen Antworten bleiben.
Peter
Eine eigene Frage?
Dieser Thread ist über 16 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.