USART Transmitter chuyển đổi đồng hồ

M

M3GAPL3X

Guest
Hi guys, Tôi hiện đang sử dụng một LFINTOS (Low Oscillator tần số nội bộ) thiết lập tại 31 kHz như là nguồn đồng hồ chính của tôi. Cuối cùng trong chương trình của tôi, tôi sẽ là cần thiết để truyền tải một số dữ liệu thông qua USART. Từ những gì tôi đã được đọc, tôi có thể không được có thể sử dụng 31 kHz để đạt được điều này - chủ yếu là do baud thế hệ tỷ lệ. Có cách nào tôi có thể chuyển đổi đồng hồ khi tôi muốn truyền tải dữ liệu và đi đến 31 kHz? Bất kỳ gợi ý hoặc hướng dẫn sẽ được đánh giá cao.
 
Tôi sẽ sử dụng một PIC18F14K50 với một tốc độ truyền của Thanks 115.2k
 
Có bạn có thể chuyển đổi (chính) đồng hồ trên bay. Đọc các bit trên OSCCON
 
Thanks màu xanh. Câu hỏi của tôi là tôi sẽ có nó vô hiệu hóa LFINTOSC (31 kHz) là chủ yếu cho bộ đếm thời gian cơ quan giám sát của tôi trước khi cho phép đồng hồ 8 Mhz cao hơn hoặc nó sẽ tự động tắt? Cảm ơn!
 
Cơ quan giám sát có OSC RC riêng. Chỉ cần thay đổi đăng ký OSCCON.
 
Thanks màu xanh. Trong thói quen USART của tôi, tôi chỉ cho phép 8 Mhz HFINTOSC cho thế hệ tốc độ truyền.
 
USART hoạt động trong chế độ ngủ không? Trong thiết kế của tôi, tôi sẽ cần phải chờ đợi để nhận được một số dữ liệu từ các HOST và nếu tôi nhận được rằng dữ liệu nhất định, tôi sẽ cần phải gửi dữ liệu trở lại. Câu hỏi của tôi là, những gì nếu HOST sẽ gửi dữ liệu trong khi tôi đang ngủ? [Size = 2] [color = # 999999] Thêm vào sau khi 1 giờ 20 phút: [/color] [/size] Một câu hỏi khác. Giả sử HOST sẽ gửi một số dữ liệu để pin RX của tôi. Để cho tôi để lấy nó, tất cả tôi cần là RCSTAbits.SPEN = 1; / / cổng nối tiếp cho phép bit cao đúng không? Đồng hồ của tôi cần phải được ở mức tương tự cho tốc độ truyền? Tôi muốn biết nếu tôi có thể nhận dữ liệu chỉ với timer Watchdog của tôi được kích hoạt ... Cảm ơn trước! [Size = 2] [color = # 999999] Thêm vào sau khi 15 phút: [/color] [/size] Một câu hỏi khác. Giả sử HOST sẽ gửi một số dữ liệu để pin RX của tôi. Để cho tôi để lấy nó, tất cả tôi cần là RCSTAbits.SPEN = 1; / / cổng nối tiếp cho phép bit cao đúng không? Đồng hồ của tôi cần phải được ở mức tương tự cho tốc độ truyền? Tôi muốn biết nếu tôi có thể nhận dữ liệu chỉ với timer Watchdog của tôi được kích hoạt ... Cảm ơn trước!
 
tốt, hoạt động giấc ngủ thực sự, tất cả các đồng hồ ngừng, do đó, USART sẽ không làm việc ... Tuy nhiên, một số bức ảnh, (xin lỗi, tôi không thể kiểm tra pic của bạn) có thể dừng đồng hồ chính nhưng sẽ tiếp tục đồng hồ các thiết bị ngoại vi (bao gồm cả bạn USART) được gọi là nhà nước nhàn rỗi (PRI_RUN nếu tôi remmber) ... tốc độ đồng hồ của bạn có thể được đến nay trên USART nhận được, tỷ lệ độ truyền thực tế, được thiết lập bởi một sổ đăng ký máy phát điện tốc độ baud, và cần ít nhất là một chiếc đồng hồ chính cao hơn 16 lần ... (Như xa như tôi nhớ) Ngoài ra, kiểm tra các bảng dữ liệu, nhưng tôi nghĩ rằng bạn cần phải thiết lập một chút additioanl, một CREN (liên tục nhận được) .. cũng như blueroom cho biết, Watchdog có bộ đếm thời gian riêng, có thể làm việc trong khi nhận dữ liệu .. Jút một câu hỏi nhỏ ... Tại sao ứng dụng chính của bạn là làm việc tại 31kHz? đó là quá thấp để làm việc với USART ...
 
Kurenai_ryu, tôi sẽ kiểm tra xem trong datasheet. Đồng hồ chính của tôi đang chạy là 31 kHz bởi vì chương trình của tôi đã ngủ và thức dậy vào mỗi ms 8 đến kiểm tra đầu vào. Điều này chủ yếu là để bảo tồn năng lượng. Tôi đã kích hoạt bộ đếm thời gian cơ quan giám sát để làm điều này và lần lượt, bộ đếm thời gian cơ quan giám sát sử dụng một đồng hồ 31 kHz. Vì vậy, đó là lý do tại sao kHz 31 của tôi là đồng hồ chính của tôi. Trong ms 8, chương trình của tôi sẽ liên tục kiểm tra đầu vào, ADC và người nhận USART (RX) cho một chút nào đó và đi ngủ sau khi 8 ms và thức dậy một lần nữa sau 8 ms. USART chức năng sẽ cho phép 8 MHz đồng hồ mỗi lần (mỗi ms 8) cho thế hệ tốc độ truyền và kiểm tra đầu vào và chuyển về đồng hồ 31 kHz. Nếu điều đó chút nào đó được nhận, USART sẽ gửi các công cụ để lưu trữ các. Tất cả điều này sẽ được thực hiện trong cơ quan giám sát bộ đếm thời gian 8 ms. Đây có phải là cách tốt nhất để đi về điều này? Tôi sẽ đăng một số mã sau đó để cho bạn thấy những gì tôi đang làm. Cảm ơn! [Size = 2] [color = # 999999] Thêm vào sau khi 3 giờ 38 phút: [/color] [/size] bạn nghĩ rằng tôi chỉ nên chạy PIC của tôi lúc 8 MHZ cho tần số chính của tôi? Điều này sẽ mất rất nhiều quyền lực?
 

Welcome to EDABoard.com

Sponsor

Back
Top