Forum: Mikrocontroller und Digitale Elektronik verwendung bei PSOC von SDA-output als TxD für UART


von Carsten (Gast)


Lesenswert?

Hallo  Leute
ist es möglich den Ausgang eines PSOC-µC , der für SDA-Leitung bei 
I2C-Bus reserviert ist, als  TXD-Ausgang zu nutzen???

Wie wird die Baurate bei Psoc-µC eingestellt ???

Besten Dank

Carsten

von Carsten (Gast)


Lesenswert?

hat jemand schon damit gearbeitet ?.


thks

von Jörg S. (joerg-s)


Lesenswert?

>ist es möglich den Ausgang eines PSOC-µC , der für SDA-Leitung bei
>I2C-Bus reserviert ist, als  TXD-Ausgang zu nutzen???
Wenn das interne Routing es zulässt, ja.

>Wie wird die Baurate bei Psoc-µC eingestellt ???
Über den Takt für Timer der den UART steuert.

Für Anfänger empfehle ich:
http://www.easypsoc.com/book/chapter1.html

von Ber (Gast)


Lesenswert?

>ist es möglich den Ausgang eines PSOC-µC , der für SDA-Leitung bei
>I2C-Bus reserviert ist, als  TXD-Ausgang zu nutzen???

Kommt drauf an welchen du verwendest...

>Wie wird die Baurate bei Psoc-µC eingestellt ???
der Takt 8mal so groß wie die Baudrate (z.B. 2Mhz Clock für 250kBaud)
steht alles in den Datenblättern der UM.

mfg
Ber

von Carsten (Gast)


Lesenswert?

hi,
danke für die Infos.  ich war mir nicht so  sicher.   aber es  trifft 
nun meine Gedanken zu.

>Für Anfänger empfehle ich:
>http://www.easypsoc.com/book/chapter1.html

so ein  Anfänger bin ich nicht soooo  ein , aber jede Litteratur über 
den PSOC-µC  kommt immer  gut an. Da diese  digital nur selten zu 
bekommen sind.

Über den Baudrate war ich mir nicht so sicher, weil in der UM von UART, 
wird ein COUNTER benutzt. Und die angegebene Reihenfolge wie die UM 
plaziert werden stimmen  mit  der praxis nicht überein.Deswegen war 
zweifeln an der stelle. Es ist dann  gut   dass  man diese auch  direckt 
über ein VCx realisieren kann.

tks

PS Falls  jemand eine gute Quelle(ausser des oben bennanten Links) zur 
Beschreibung von PSOC-µC kennt, würde ich mich über Post freuen.

von Ber (Gast)


Lesenswert?

He,
bei Fragen über den PSoC würde ich dir
www.psocdeveloper.com\forums empfehlen, ist mit Abstand die beste Seite 
dafür.
Für Dokumentationen kann ich dir www.cypress.com empfehlen, dort findest 
du massig Application Notes.


mfg
Ber

PS: Verwendest du Designer oder Express? Welchen Designer?

von A. B. (funky)


Lesenswert?

Also ich habe für die Baudrateneinstellung immer die VC1,VC2,VC3 Clocks 
benutzt. Wenn keine anderen UserModule die benötigen, gibt es damit 
keine Probleme (CapSense benötigt die z.b. weshalb man die da nicht so 
ohne weiteres verwenden kann)

Angenommen du willst bei 24MHz 19200 Baud einstellen, dann folgt:

(24.000.000 / (8 * 19200)) = 156,25

Dafür musst du jetzt Teiler suchen...das wären in dem Fall 12*13 = 156

Jetzt VC1 auf 13  und VC2 auf 12 stellen. Und als Clock des UARTS wird 
dann VC2 benutzt.

Prinzipiell kannst Du jeden Pin als TX benutzen. Aber die I2C Pins sind 
glaub auch die Programmier Pins(habs jetzt nicht nochmal nachgeschaut). 
Je nach Schaltung kann das zu Problemen führen.

Es gibt mindestens zwei deutsche Bücher "PSoC Mikrocontroller"   und 
"Messen Steuern udn Regeln mit PSoC Microkontrollern" . Sind beide von 
Fredi Krüger(ja, der Typ heißt wirklich so) und meiner Meinung nach 
beide komplett Scheiße. Das Messen, Steuern... hab ich mir damals 
ungesehen gekauft, und naja...absoluter Griff ins Klo. (Aber frü 20€ 
verkauf ich es Dir gerne ;) )

Es gibt noch ein englisches Buch  "Designer's Guide to the Cypress 
PSoC", das kenn ich aber nicht udn weiß nicht wie das geschrieben ist.

Ich würde AppNotes lesen, und einfach rumprobieren und andere Projkete 
anschauen. Die Cypress-Website bietet wirklich viele Infos, auch wenn 
die Seite leider ziemlich unübersichtlich ist udn man manchmal länger 
braucht um was zu finden.

von Carsten (Gast)


Lesenswert?

Hallo  Leute

vielen Dank für die Ausfürliche Einträge.

Für den Baudrate ist es mir schon klar geworden.
Ich habe nur das Problem , dass ich schon VC1 und VC2  mit jeweils 8 und 
4 Mhz   verwende. und es bleibt mir nicht mehr so viel Übrig als 
Clock-source zur Einstellung der Baudrate.
Vielleicht gibt es noch eine andere Möglichkeit.


Ich werde mir auch mal den PSOC-forum ansehen.


Noch  eine  Kleinigkeit.
Weiß jemand wie man in PSOC eine Globale variable deklariert?   ich habe 
schon  mit global, extern, Volatile ... probiert   aber ich habe immer 
einen Fehler Bekommen.

Ich habe nämlich innerhalb eines Projekt mehrere Source file.
In einem Source file möchte ich in einem Funktion zu einem Variable 
zugreifen , die in den anderen Source file verwendet wird.


wie schaft man das?

wie gesagt global, extern   geht nicht.  vielleicht mache was falls in 
der Reihenfolge

Danke
Carsten

von Carsten (Gast)


Lesenswert?

>PS: Verwendest du Designer oder Express? Welchen Designer?



ich verwende der PSOC designer  5.0


Ich habe in der Usermodule von UART, dass man die Baudrate mit einem 
Counter realisieren kann. aber irgendwiedie verbindung funktioniert 
irgendwie nicht.
Es ist geschrieben, dass der UART sein Clock-source über den 
Broadcast-leitung abzapfen soll. aber auch nirgend wo dass der counter 
sein Output auf diese Leitung abgeben soll.

Oder wie haben sie das realisiert? Kann sein ich kapiere dass nicht gut.

meine VC1 und VC2  sind schon für PWM und ADC  verwendet und mit jeweils 
8 und 4 Mhz.  damit schaffe ich nicht eine Baudrate von 9600 odr 14400.

danke  für inputs.

von A. B. (funky)


Lesenswert?

moinsen,

du kannst doch den TerminalCount oder CompareOutput des Counters auf 
einen ROx[x] Bus legen, und diesen dann als Clock Eingang für den UART 
wählen.
Der Counter hat als CLock-Source dann halt eines deiner VCx und Du musst 
ausrechnen wie du den Counter dann einstellen musst.

Wie genau das mit dem Broadcastbus funktionieren soll weiß ich leider 
nicht. Habe es gerade im Designer ausprobiert, und bekomme auch eine 
Verbindung hin, aber es sieht merkwürdig aus, da wenn ich den Counter 
mit dem Broadcast Bus verbinde keiner der Counterausgänge verbunden ist, 
sondern irgendwie der komplette Block?! Kein Ahnung was genau da dann 
auf den Bus geschickt wird.


Zu deinem globale Variablen Problem:
Beitrag "globale Variable in mehreren C-Files"

von Carsten (Gast)


Lesenswert?

danke funky

ich werde mal mit dem ROx[x] probieren

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
Noch kein Account? Hier anmelden.