中秋前夕, 颱風來台, 無處可去, 整理筆記.
軟件模擬的 RS232, 需要知道幾個參數, 方便設計如下,
1) CPU 的速度 f, 如 1.55 MHz
2) RS232 通訊的速度 BAUD RATE, 如 9600 bit / second
3) 每個指令佔用的 CPU 週期
第一步, 預設 RS232 通訊的速度 BAUD RATE, 通常 PC 都內定為 9600 BAUD, 表示每秒收發 9600 bit, 所以得到每 bit 需要的時間為 Bt,
Bt = 1 / 9600 x 10^6 = 104.17 us
BAUD RATE 可以有其他選擇, 如 4800, 9600, 19200, 38400, 57600, 76800, 115200
第二步, 由 CPU 的速度 f, 如 f=1.55 MHz, 求每個 CPU 週期的時間 (CPU CLOCK CYCLE TIME), 以 Ct 表示,
Ct = 1/f = 1/1.55 = 0.645 us
第三步, 已知 Bt & Ct, 求每 bit 需要的佔用的 CPU 週期, 以 Nc (Number of CPU Clock Cycle)代表,
Nc = Bt / Ct = f * 10^6 / BAUD RATE = 1.55 x 10^6 / 9600 = 161.5
結論 :
條件, AVR MCU, ATTINY13, CPU SPEED = 1.55MHz
RS232 速度 = 9600 BAUD
軟件的發送速度必須保持每 bit 為 162 CPU CYCLE.
留言列表