Go Down

Topic: FT232Rl + AtMega 328p Connections and Frequency doubts. (Read 272 times) previous topic - next topic

Paresh99

I am trying to make my own development board. While doing this, I cam to know that we need an USB to TTL Converter for the MCU to be able to receive data.

For this, FT232RL is being used. When I checked the datasheet, it is given that the chip works at 12Mhz and I know that arduino works at 16 Mhz.

Shouldn't both frequencies be the same? How does the communication take place if both the frequencies are different?

Here is the link of the datasheet I found:
https://is.gd/pk9O7Z

Thanks in advance.

pert

Shouldn't both frequencies be the same?
No. There's absolutely no reason they would need to be the same.

How does the communication take place if both the frequencies are different?
Because they're not communicating at that frequency. That's just the frequency of the clock running the CPU. The communication frequency is the UART baud rate. The FT232RL is just translating UART data to USB virtual COM port data, so it doesn't care what the baud rate is. It doesn't have any need to understand what the data passing through means. You do need to set your ATmega328P and your computer to use the same baud rate. On the ATmega328P, this is done via Serial.begin(). On the computer, it will be done via whatever terminal software your are using. Likely you are using the Arduino IDE's Serial Monitor, which has a baud rate menu at the bottom right corner of the screen.

krupski

I am trying to make my own development board. While doing this, I cam to know that we need an USB to TTL Converter for the MCU to be able to receive data.

For this, FT232RL is being used. When I checked the datasheet, it is given that the chip works at 12Mhz and I know that arduino works at 16 Mhz.

Shouldn't both frequencies be the same? How does the communication take place if both the frequencies are different?

Here is the link of the datasheet I found:
https://is.gd/pk9O7Z

Thanks in advance.
The FTDI internal oscillator has nothing to do with the AVR chip.  All it does is give and take serial data at whatever baud rate it's set to.

In fact, the FT 232 RL is an infinitely better USB to serial converter than the junk 16u2 is.

I purposely build my own Duemilanove boards from bare boards so that I have a decent USB to serial chip and a real crystal for the CPU instead of that lousy resonator.  Extra work, but worth it.
Gentlemen may prefer Blondes, but Real Men prefer Redheads!

westfw

 Bothe the FTDI and AVR chip divide their respective (and different) clock frequecies by internal divisors until they get a new clock to use for the serial communications interface (UART.)
For example, to run the UART at 9600bps, the AVR divides 16MHz by 1667 and the FTDI divides 12MHz by 1250.  (it's a bit more complicated than that, but that's the general idea.)

krupski

Bothe the FTDI and AVR chip divide their respective (and different) clock frequecies by internal divisors until they get a new clock to use for the serial communications interface (UART.)
For example, to run the UART at 9600bps, the AVR divides 16MHz by 1667 and the FTDI divides 12MHz by 1250.  (it's a bit more complicated than that, but that's the general idea.)

I assume you are aware of the "bit-bang" mode of the 232R?
I'd like to buy the engineer who came up with that idea a drink of his choice.  Bit bang doubles the versatility of the chjp!
Gentlemen may prefer Blondes, but Real Men prefer Redheads!

westfw

Quote
I assume you are aware of the "bit-bang" mode of the 232R?
I'd like to buy the engineer who came up with that idea a drink of his choice.
Nothing that people weren't doing with real serial ports (and parallel ports) long before USB was a thing (and before those ports disappeared from PCs)...

(in fact, "ponyprog" was an early PIC Microcontroller (and others) programmer heavily used by hobbyists back before arduinos were a gleam in anyone's eye, and it worked by bit-banging an rs232 port)

Go Up