Designing a UART Counter for Receiver Unit

Click For Summary
SUMMARY

This discussion focuses on designing a UART counter for a receiver unit with a system clock of 20 MHz and a data arrival frequency of 2 MHz. The design requires asserting a STOP_RECEIVING signal after all data is received, with a start bit and a stop bit included in the data transmission. The proposed solution involves counting clock cycles to sample bits, specifically taking 10 cycles for the start bit and 5 cycles for the first data bit, followed by 10 cycles for subsequent bits. The challenge lies in implementing the bit counting mechanism effectively, potentially utilizing a synchronous counter block.

PREREQUISITES
  • Understanding of UART communication protocols
  • Familiarity with synchronous counters in digital design
  • Knowledge of state machine implementation
  • Experience with clock cycle timing in digital circuits
NEXT STEPS
  • Research synchronous counter design techniques
  • Study state machine design for UART applications
  • Explore timing analysis for asynchronous data reception
  • Review textbooks or resources on digital circuit design
USEFUL FOR

Embedded systems engineers, digital circuit designers, and anyone involved in UART communication protocol development will benefit from this discussion.

EvLer
Messages
454
Reaction score
0
This is a UART problem, we need to design a counter for the receiver unit. And the specs go like this:
system clock is 20 MHz, while data arival frequency is 2MHz, also I need to assert a STOP_RECEIVING signal once all data is received. And of course, data has a start bit and a stop bit. And assume that there is a signal saying start bit detected. Also after a bit is received, I need to assert a strobe signal, i.e. for each bit. Data arrives asynchronously but is synchronized using 2 FFs.

So, here's my thinking thread:
it will take 10 system clock cycles to get through the start bit and 5 cycles to sample the first bit. After that i need to count only 10 cycles to sample the following bit, and I need to count the bits received.
I think i get the idea... BUT i run into problems with implemeting it... i can count the clock cycles ... state machine basically... then i reset the counter... but how would I count the bits? An embedded state machine sounds too much...
if someone could walk me through the high-level part of this, i would really appreciate it...
 
Physics news on Phys.org
You can embed a synchronous counter block in your circuit. Check out the description of synchronous counters in your textbook, or at wikipedia:

http://en.wikipedia.org/wiki/Counter
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
Replies
3
Views
3K
  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 10 ·
Replies
10
Views
4K
Replies
19
Views
4K
  • · Replies 25 ·
Replies
25
Views
12K
Replies
6
Views
3K
Replies
3
Views
2K
Replies
2
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K