Đến đây thì cần phải xác định là bạn đang dùng chip nào. Có khả năng là silicon bug, cũng có khả năng code của bạn có điểm tới hạn, chỉ phát sinh lỗi ở một tần số đủ cao nào đó. Bạn có thể làm những việc sau:
- Xác định revision của lõi silicon và tìm errata sheet tương ứng để đọc.
- Thử xuất liên tục giá trị 0x55 hay 0xAA và dùng dao động ký đo tại chân TX của chip xem có gì bất ổn hay không.
- Rà soát lại code, rút gọn đến mức tối thiểu để cô lập phần gây lỗi.
Bạn nói rằng UART không chạy, nhưng đó là một từ rất chung chung. Trong trường hợp của bạn, nói rõ hơn về cái gọi là 'không chạy' đó sẽ có ích cho việc tìm lỗi (ví dụ không hề nhận được gì hay nhận được dữ liệu rác hay là một lỗi nào khác).
Thân,
|