Forum: FPGA, VHDL & Co. Lattice MachXO3 Starter Kit: RS232


von Daniel H. (dhermit)


Lesenswert?

Hallo,

laut Schaltplan gibt es an dem USB-Controller auf dem Board zwei 
Schnittstellen, eine für JTAG und eine für RS232. Die RS232 Signale sind 
auch in den FPGA geführt, allerdings steht am Controller bei den 
entsprechenden Signalen "for future use".
Da ich aber nicht einmal irgendein Signal am Rx Pin empfange, wenn ich 
den Computer etwas senden lasse, gehe ich davon aus, das dass noch 
deaktiviert ist ...

Könnte ich irgendetwas falsch gemacht haben oder hat jemand damit 
Erfahrungen?

Daniel

von Lattice User (Gast)


Lesenswert?

Wir redem vom MachXO3 StarterKit?

Wenn ja:

R14, R15 einlöten
(Sind 0 Ohm, kurzes Stück dünner Draht reicht, z.B. aus einer Litze)

von Daniel H. (dhermit)


Lesenswert?

Lattice User schrieb:
> Wir redem vom MachXO3 StarterKit?
>
> Wenn ja:
>
> R14, R15 einlöten
> (Sind 0 Ohm, kurzes Stück dünner Draht reicht, z.B. aus einer Litze)

Jap, dankeschön (mal wieder ^^) ... ah, dafür sind die Widerstände im 
Schalplan.

von Daniel H. (dhermit)


Lesenswert?

Muss ich die Pins dann noch auf LVTTL33 umstellen?

von Lattice User (Gast)


Lesenswert?

Kannst du auf LVCMOS33 lassen. Ist identisch mit LVTTL.

von Daniel H. (dhermit)


Angehängte Dateien:

Lesenswert?

Also der Standardwert war LVCMOS25, aber auch so geht es jetzt nicht 
(VCCIO von der Bank ist auch auf 3,3V).
Ist das Signal eigentlich invertiert oder nicht?
Wenn ich simuliere, kommt exakt das gleiche Bild wie im Artikel über 
RS232, der Computer empfängt aber trotzdem nichts. Bei 12MHz durch 1250 
sollte ja eigentlich auch eine Baudrate von 9600 rauskommen, oder?

von Lattice User (Gast)


Lesenswert?

Verbinde erst mal ohne komplexe Logic Tx mit Rx
Also nur
Tx <= Rx;

Dann müsstes du in einem Terminalprogram alles was du tippts wieder 
sehen, egal welche Baudrate.

von Daniel H. (dhermit)


Lesenswert?

Lattice User schrieb:
> Verbinde erst mal ohne komplexe Logic Tx mit Rx
> Also nur
> Tx <= Rx;
>
> Dann müsstes du in einem Terminalprogram alles was du tippts wieder
> sehen, egal welche Baudrate.

Das klappt nicht ganz ... also die meisten werden schon übertragen, aber 
es geht auch einiges verloren.

Edit: hatte da eine Spannug vergessen umzustellen, jetzt geht das

von Lattice User (Gast)


Lesenswert?

Daniel H. schrieb:

>
> Edit: hatte da eine Spannug vergessen umzustellen, jetzt geht das

Du kannst bei "All Ports" den Default für das ganze Device einstellen
In "Global Preferences den Bank VCCIO" nicht vergessen.

von Daniel H. (dhermit)


Lesenswert?

Lattice User schrieb:
> Daniel H. schrieb:
>
>>
>> Edit: hatte da eine Spannug vergessen umzustellen, jetzt geht das
>
> Du kannst bei "All Ports" den Default für das ganze Device einstellen
> In "Global Preferences den Bank VCCIO" nicht vergessen.

Aber z.B. für die LEDs will ich keine 3,3V, oder?

Und ich habe mich glaube ich getäuscht ... das zurückantworten 
funktioniert doch nicht, das war die erste Schnittstelle, die antwortet 
immer, auch wenn ich im Code nichts mit den Tx/Rx Pins mache.

von Jens (Gast)


Lesenswert?

Daniel H. schrieb:
> Und ich habe mich glaube ich getäuscht ... das zurückantworten
> funktioniert doch nicht,
Dann vertausche mal RX mit TX. FTDI hat da glaube ich die andere 
Blickrichtung...

Jens

von Daniel H. (dhermit)


Lesenswert?

Jens schrieb:
> Daniel H. schrieb:
>> Und ich habe mich glaube ich getäuscht ... das zurückantworten
>> funktioniert doch nicht,
> Dann vertausche mal RX mit TX. FTDI hat da glaube ich die andere
> Blickrichtung...
>
> Jens

Hilft auch nichts ... ich stell mich wohl extra doof an.
Aber auf den Schaltplänen sind die Richtungen eigentlich auch eindeutig.

Und meine Treiber scheinen ja auch zu funktionieren, oder? Ansonsten 
würde die erste Schnittstelle ja nicht immer antworten ...

von Lattice User (Gast)


Lesenswert?

Daniel H. schrieb:
> Lattice User schrieb:
>> Daniel H. schrieb:
>>
>>>
>>> Edit: hatte da eine Spannug vergessen umzustellen, jetzt geht das
>>
>> Du kannst bei "All Ports" den Default für das ganze Device einstellen
>> In "Global Preferences den Bank VCCIO" nicht vergessen.
>
> Aber z.B. für die LEDs will ich keine 3,3V, oder?

Doch, die LEDs haben einen passenden Widerstand in Serie.
Ausserdem sind musst du eine 0 ausgeben um die Onboardleds anzumachen.
>
> Und ich habe mich glaube ich getäuscht ... das zurückantworten
> funktioniert doch nicht, das war die erste Schnittstelle, die antwortet
> immer, auch wenn ich im Code nichts mit den Tx/Rx Pins mache.

Du musst schon den passenden COM Port auswählen.

Falls du keon Osci hast, kannst du auch eine LED im FPGA verbinden. 
Müsste man was sehen, vor allem blei niedrigen Baudraten.

von Daniel H. (dhermit)


Lesenswert?

Lattice User schrieb:
> Daniel H. schrieb:
>> Lattice User schrieb:
>>> Daniel H. schrieb:
>>>
>>>>
>>>> Edit: hatte da eine Spannug vergessen umzustellen, jetzt geht das
>>>
>>> Du kannst bei "All Ports" den Default für das ganze Device einstellen
>>> In "Global Preferences den Bank VCCIO" nicht vergessen.
>>
>> Aber z.B. für die LEDs will ich keine 3,3V, oder?
>
> Doch, die LEDs haben einen passenden Widerstand in Serie.

Ok :)

> Ausserdem sind musst du eine 0 ausgeben um die Onboardleds anzumachen.

Das weiß ich.

> Falls du keon Osci hast, kannst du auch eine LED im FPGA verbinden.
> Müsste man was sehen, vor allem blei niedrigen Baudraten.

Du meinst einfach das Rx Signal an eine LED weiterleiten? Das habe ich 
schon probiert, da sieht man nichts (egal bei welcher Baudrate).

Außer R14 und R15 verbinden muss ich ja nichts machen, oder?

von Lattice User (Gast)


Lesenswert?

Daniel H. schrieb:
>
> Du meinst einfach das Rx Signal an eine LED weiterleiten? Das habe ich
> schon probiert, da sieht man nichts (egal bei welcher Baudrate).

Ja, genau das meinte ich.

>
> Außer R14 und R15 verbinden muss ich ja nichts machen, oder?

Ich habe nichts weiteres im Schaltplan gesehen.

Poste mal die erste Tabelle aus dem Signal/Pad Report.
Entweder in code Tags einschliessen oder als Anhang.

Weisse mal einer oder mehreren LEDs eine 0 zu, um zu Testen ob der 
Download
überhaupt klappt.

von Daniel H. (dhermit)


Lesenswert?

Lattice User schrieb:
> Poste mal die erste Tabelle aus dem Signal/Pad Report.
> Entweder in code Tags einschliessen oder als Anhang.
1
Pinout by Port Name:
2
Pinout by Port Name:
3
+-----------+----------+--------------+-------+-----------+-----------+--------------------------------------+
4
| Port Name | Pin/Bank | Buffer Type  | Site  | PG Enable | BC Enable | Properties                           |
5
+-----------+----------+--------------+-------+-----------+-----------+--------------------------------------+
6
| led       | H11/1    | LVCMOS25_OUT | PR16C |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW        |
7
| rx        | A11/0    | LVTTL33_IN   | PT28A |           |           | PULL:DOWN CLAMP:ON HYSTERESIS:SMALL  |
8
| tx        | C11/0    | LVTTL33_OUT  | PT28B |           |           | DRIVE:8mA PULL:DOWN SLEW:SLOW        |
9
+-----------+----------+--------------+-------+-----------+-----------+--------------------------------------+
10
11
Vccio by Bank:
12
+------+-------+
13
| Bank | Vccio |
14
+------+-------+
15
| 0    | 3.3V  |
16
| 1    | 2.5V  |
17
| 2    | 2.5V  |
18
+------+-------+

> Weisse mal einer oder mehreren LEDs eine 0 zu, um zu Testen ob der
> Download
> überhaupt klappt.

Das klappt, die gewünschte LED leuchtet deutlich heller als die anderen, 
wenn ich ihr Rx zuweise und gar nicht, wenn "not Rx".

Könnte es vllt. auch sein, dass dazu der USB Chip nicht richtig 
konfiguriert ist? Oder hat jemand von euch das schonmal so verwenden?

Vielen Dank auf jeden Fall für eure Mühe!

EDIT: alte Tabelle genommen, sorry

von Lattice User (Gast)


Lesenswert?

Pins sehen in Ordnung aus.

Daniel H. schrieb:
>
> Könnte es vllt. auch sein, dass dazu der USB Chip nicht richtig
> konfiguriert ist? Oder hat jemand von euch das schonmal so verwenden?
>

Möglich, welches Betriebsystem?
Vielleicht auch Hardwarehandshake im Treiber/Terminalprogramm aktiviert?
Du kannst dir auch mal das FTDI Configtool herunterladen
http://www.ftdichip.com/Support/Utilities.htm#FT_Prog

Anmerkung:

Bei dem Board sind alle VCCIO an 3.3V angeschlossen, du solltest die 
Bank Vccio passend setzen.
(Hat aber mit dem Problem jetzt nichts zu tun)

von DHermit (Gast)


Lesenswert?

Lattice User schrieb:
> Möglich, welches Betriebsystem?

Normalerweise Linux, jetzt installier ich auch grade alles mal im 
Windows (7).

> Vielleicht auch Hardwarehandshake im Treiber/Terminalprogramm aktiviert?

Nein, war eigentlich alles deaktiviert ...

> Du kannst dir auch mal das FTDI Configtool herunterladen
> http://www.ftdichip.com/Support/Utilities.htm#FT_Prog

Werd ich dann mal probieren :)

> Anmerkung:
>
> Bei dem Board sind alle VCCIO an 3.3V angeschlossen, du solltest die
> Bank Vccio passend setzen.
> (Hat aber mit dem Problem jetzt nichts zu tun)

Alles klar.

von DHermit (Gast)


Lesenswert?

Also neu konfigurieren wird glaube ich nichts ... der Chip braucht, wenn 
ich es richtig verstanden habe, einen externen EEPROM für seine 
Konfiguration.

Schade, wäre schön gewesen, das einfach nutzen zu können, wenn es das 
schon gibt. Ich schreib bei Gelegenheit einfach mal Lattice an ...

von Lattice User (Gast)


Lesenswert?

DHermit schrieb:
> Also neu konfigurieren wird glaube ich nichts ... der Chip braucht, wenn
> ich es richtig verstanden habe, einen externen EEPROM für seine
> Konfiguration.
>

Der ist aber laut Schaltplan da (U2)


> Schade, wäre schön gewesen, das einfach nutzen zu können, wenn es das
> schon gibt. Ich schreib bei Gelegenheit einfach mal Lattice an ...

Hast du einen weiteren auf FTDI basierenden USB Adapter angeschlossen?
(Mehrere auseinanderzuhalden ist nicht gerade die Stärke der FTDI API)

von DHermit (Gast)


Lesenswert?

Lattice User schrieb:
> DHermit schrieb:
>> Also neu konfigurieren wird glaube ich nichts ... der Chip braucht, wenn
>> ich es richtig verstanden habe, einen externen EEPROM für seine
>> Konfiguration.
>>
>
> Der ist aber laut Schaltplan da (U2)

Ja, jetzt habe ich auch die richtigen Treiber installiert und das 
Konfigurationsprogramm kann den auslesen. Und es sind eigentlich auch 
beide als RS232 konfiguriert ...

>> Schade, wäre schön gewesen, das einfach nutzen zu können, wenn es das
>> schon gibt. Ich schreib bei Gelegenheit einfach mal Lattice an ...
>
> Hast du einen weiteren auf FTDI basierenden USB Adapter angeschlossen?
> (Mehrere auseinanderzuhalden ist nicht gerade die Stärke der FTDI API)

Nein ... und unter Windows verhalten sich die Schnittstellen genauso wie 
unter Linux.

Das FT2232H-UART-Test Programm sagt übrigens:
1
Start Data transfer test........
2
UART_PinTest
3
Error, DSR should be at high level, but it is in low level now

von Lattice User (Gast)


Lesenswert?

DHermit schrieb:
1
> Start Data transfer test........
2
> UART_PinTest
3
> Error, DSR should be at high level, but it is in low level now

Da DSR nicht verwendet wird (es sei du hast es in der Applöikation 
enabled) sollte das keine Rolle spielen.

ich habe es gerade auf einem MachXO2 Breakout Board getestet. Da 
funktioniert der Loopback einwandfrei. (Mit TeraTerm unter Windows)
Der FTDI Teil deines Boards ist identisch, einschlieeslich der 
Bauteilenummern.

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.