Forum: Mikrocontroller und Digitale Elektronik ft232 Programmierung notwendig?


von Josef K. (josefk)


Lesenswert?

Hallo da draußen

ich versuche gerade einen ft232bm zum laufen zu bringen. Das Board ist 
neu und die Hardware auch jedoch ist das Schema (self powered, der Rest 
ist laut Datasheet) zum anschließen schon öfters verwendet worden und 
läuft so auch.
Ich bin immer davona usgegangen, dass der ft232bm out of the box 
funktioniert. Leider schaffe ich es nicht den neuen ft232 zum reden zu 
bringen. Er wird von Windows als USB <-> Serial erkannt und installiert. 
Leider kommt im Terminal aber nichts an.
Daraufhin habe ich die d2xx Treiber installiert und versucht den Chip 
via MProg zum laufen zu bringen. Leider klappt das nicht. Ich kann nach 
Bauteilen scannen und finde dann einen unprogrammierten und 0 
programmierte. Read&Parse bringt mir dann die Freigabe um unter "Device" 
meinen Chip auszuwählen. Leider bleiben die Buttons zum Programmieren 
und Löschen blind.

Meine Fragen daher:
Muss man den FT232bm eigentlich einmal programmieren, oder läuft der 
auch out of the box?
Sollte Mprog in der Lage sein, diesen Chip zu programmieren? (Wenn ja 
dann hab ich wohl was verbockt)

von Benedikt K. (benedikt)


Lesenswert?

Er sollte direkt laufen, und auch schon als COM Port funktionieren.
Hast du ein EEPROM dran ?

von Josef K. (josefk)


Lesenswert?

Nein. EEPROM ist keins dran.

Hmm. Dann ist da was schief gelaufen. Die Initialisierung sollte passen:
1
void uart1_init(void)
2
{
3
  
4
  // Baudrate 9600
5
  UBRR1L = 103;
6
7
  // Datenbyte 8
8
  UCSR1C |= (1 << UCSZ10);
9
  UCSR1C |= (1 << UCSZ11);
10
  // Parity keine
11
  UCSR1C &= ~(1 << UPM10);
12
  UCSR1C &= ~(1 << UPM11);
13
  // Stoppbit 1
14
  UCSR1C &= ~(1 << USBS1); 
15
  // Asynchronous Operation
16
  UCSR1C &= ~(1 << UMSEL1);
17
  UCSR1C &= ~(1 << UCPOL1);  
18
19
//  UCSR1B |= (1 << RXCIE1); // Interrupt enabel für RXC flag
20
  UCSR1B |= (1 << RXEN1);  // Receive Enable
21
  UCSR1B |= (1 << TXEN1);  // Transmitter Enable
22
23
}
24
25
void rs232_puts1 (char *s)
26
{ 
27
   while (*s != '\0')
28
   {
29
      while ( !(UCSR1A & (1<<UDRE1)));     
30
        UDR1 = *s;                               //Zeichen nach Sendedatenregister                         
31
       s++;                  //Adresse erhöhen
32
   }    
33
   while ( !(UCSR1A & (1<<UDRE1)));  
34
   UDR1=*s;
35
   while ( !(UCSR1A & (1<<TXC1)));              //Warten bis Senden abgeschlossen
36
}

von Ralf (Gast)


Lesenswert?

> Leider bleiben die Buttons zum Programmieren und Löschen blind.

Wenn ich's noch richtig im Sinn habe, musst du erst auf NEU klicken (das 
weisse Blatt Papier), dann sollten die Buttons scharf geschalten werden.

Ralf

von Josef K. (josefk)


Lesenswert?

Leider nicht. Die Device ComboBox ist dann scharf.

von Benedikt K. (benedikt)


Lesenswert?

Wie soll man auch ein EEPROM Programmieren können, wenn keines dran ist 
?
Kommt bei Read&Parse nicht gleich ein Fehler oder eine Meldung "EEPROM 
Read failed" oder sowas in der Art ?
MProg dient nur dazu um dieses EEPROM zu programmeren. Du brauchst also 
nichts damit zu machen.
Das EEPROM ist auch nur notwendig, wenn mehrere FT232 an einem PC 
hängen.

Verbinde mal RX und TX am FT232 und sende etwas am PC. Dann sollte das 
sofort wieder zurückkommen.

von Josef K. (josefk)


Lesenswert?

Hmm. Habe jetzt RX und TX am Chip verbunden aber wenn ich vom PC was an 
den Chip sende kommt nichts mehr beim PC an.

von Ralf (Gast)


Lesenswert?

> Leider nicht. Die Device ComboBox ist dann scharf.
Und wenn man da den Typ auswählt, sollte es eigentlich gehen mit dem 
Löschen.
Aber wenn er ein unprogrammiertes Device findet, ist es eh hinfällig...

> Verbinde mal RX und TX am FT232...

Stimmt, das könnte auch sein, dass es einfach falsch miteinander 
verknubbelt ist :) Frei nach dem Motto: Mit einem Draht klappts nicht, 
und ab zwei kann man verwechseln.
Der COM-Port ist auch im Terminal-Programm geöffnet? Hatte auch schon 
mal ewig nachm Bug in meiner µC-SW gesucht, bis ich drauf kam, dass ich 
keinen Port geöffnet hatte :)

Ralf

von Josef K. (josefk)


Lesenswert?

Ralf wrote:
>> Leider nicht. Die Device ComboBox ist dann scharf.
> Und wenn man da den Typ auswählt, sollte es eigentlich gehen mit dem
> Löschen.
> Aber wenn er ein unprogrammiertes Device findet, ist es eh hinfällig...
>
>> Verbinde mal RX und TX am FT232...
>
> Stimmt, das könnte auch sein, dass es einfach falsch miteinander
> verknubbelt ist :) Frei nach dem Motto: Mit einem Draht klappts nicht,
> und ab zwei kann man verwechseln.
> Der COM-Port ist auch im Terminal-Programm geöffnet? Hatte auch schon
> mal ewig nachm Bug in meiner µC-SW gesucht, bis ich drauf kam, dass ich
> keinen Port geöffnet hatte :)
>
> Ralf

Also die Senderoutine funktioniert mit nem MAX232 super und mit nem 
anderen USB Board auch. ComPort ist offen :) Und auch der richtige.
Anschlüße passen auch.
Woran das wohl liegen kann?

von Benedikt K. (benedikt)


Lesenswert?

CTS aktiviert ? Richtiger COM Port ausgewählt ?

Ansonsten musst du irgendwas falsch gemacht haben. Wenn der FT232 
erkannt wird und sich der COM Port öffnen lässt, dann muss er auch was 
senden/empfangen.

von Josef K. (josefk)


Lesenswert?

Also ich hab mal die Treiber gecheckt und bei beiden Platinen sind die 
selben installiert. Das eine Board funktioniert wunderbar, das andere 
garnicht, nicht mal mit RX und TX verbunden.
Komisch komisch.
CTF hab ich deaktiviert aber aktiviert wirds auch nicht besser. :(
Ich werd mal ein paar Minuten Multimetern...

von Josef K. (josefk)


Lesenswert?

Ein Oszi bringt Aufschluss. Defekte Hardware :)

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.