1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây
  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. thankforlife

    thankforlife Thành viên mới

    Tham gia ngày:
    25/04/2003
    Bài viết:
    64
    Đã được thích:
    0
    Chào các bác!
    Tui đang muốn điều khiển thiết bị ngoại vi từ vi xử lý họ 89 của atmel thông qua I2C bus. Bác nào có biết cách gì thì bày cho tui với. Theo như tui biết trong họ 89 có con 8951IC2 là có giao tiếp I2C có sẵn nhưng con này có 44 chân nên lại phải làm bộ nạp khác rất phức tạp. Tui muốn vẫn dùng 8952 mà vẫn điều khiển được I2C bus.
    Cảm ơn các bác nhiều.
  2. thankforlife

    thankforlife Thành viên mới

    Tham gia ngày:
    25/04/2003
    Bài viết:
    64
    Đã được thích:
    0
    Sao không có ai giúp tui với nhỉ? Sao các cao thủ không chịu ra tay? Ai có thông tin về đề tài này thì giúp tui với.
  3. nvl

    nvl ĐTVT Moderator

    Tham gia ngày:
    31/01/2002
    Bài viết:
    4.304
    Đã được thích:
    6
    Câu hỏi của bạn khó quá nên hơi hiếm người trả lời được. Khi diễn đàn của chúng ta có nhiều người tham gia hơn thì hi vọng sẽ có nhiều cao thủ tới để hỗ trợ lẫn nhau
    http://www.ttvnol.com/forum/f_62
    http://www.ttvnol.com/forum/f_394
  4. baobien_nt

    baobien_nt Thành viên mới

    Tham gia ngày:
    04/08/2003
    Bài viết:
    16
    Đã được thích:
    0
    [ Chào các bác!
    Tui đang muốn điều khiển thiết bị ngoại vi từ vi xử lý họ 89 của atmel thông qua I2C bus. ...... Tui muốn vẫn dùng 8952 mà vẫn điều khiển được I2C bus.
    Cảm ơn các bác nhiều. ]
    Chào chú life !
    Tớ là người mới vào đây. Thật là vui khi thấy chú có ý tưởng hay đến như vậy. Tiếp cận I2C là rất tốt vì đây là chuẩn giao tiếp rất rất thông dụng trong các mạch điện tử dân dụng hiện nay.
    Tuy nhiên, có nhất thiết là phải dùng con 8952 để điều khiển I2C bus hay không thì chú life nên xem xét lại. Theo tớ thì nên thay 9852 bằng MCU khác có sẵn 2 chân I2C thì hay hơn. Như vậy con MCU của chú sẽ rảnh rang hơn để còn làm chuyện khác. Họ MCU 89 của Atmel có rất nhiều hạn chế, chỉ là nó giá rẻ và thông dụng tại Việtnam mà thôi.
    Vẫn có cách giải quyết cho vấn đề của chú là dùng 2 chân Port của 89 để giả lập SCL và SDA của bus I2C. Chú cứ viết chương trình đúng trình tự giao tiếp I2C là chạy tốt (chú ý định thì_ timing cho chính xác).
    Về tài liệu I2C thì tớ nghĩ là chú đã có rùi nhỉ. Nếu chưa có thì chú có thể kiếm theo nhiều cách :
    - Vào site Philips bán dẫn mà search, đầy nhóc ra :
    www.semiconductors.philips.com
    - Mail cho tớ nếu chú cần gấp, tớ sẽ trao đổi với chú
    Chúc chú khoẻ !
  5. thankforlife

    thankforlife Thành viên mới

    Tham gia ngày:
    25/04/2003
    Bài viết:
    64
    Đã được thích:
    0
    Chào Bác!
    Thực ra bác nói rất đúng. Cái thằng Atmel chi được cái thông dụng nhưng nó lại không có chân I2C sẵn có. Tui cũng có sung sướng gì đâu khi mà phải nghĩ ra cái ý tưởng đó cho vất vả. Chỉ có điều các con MCU khác không kiếm được bộ dịch.
    Theo tui được biết thì họ PIC hỗ trợ rất mạnh về I2C. Tui cũng đã cố gắng tìm hiểu con này và tìm bộ dịch và bộ nạp cho nó nhưng đúng là khó khăn quá.
    Bác có bộ dịch và bộ nạp của PIC thì cho tui với. Hoặc là bác recomment cho tui một con MCU khác có hỗ trợ I2C mà có thể kiếm được bộ dịch và bộ nạp được không?
    Theo như ý kiến của bác là viết phần mềm để điều khiển trực tiếp 2 chân của MCU thì vất vả qua. thứ nhất là nó chiếm mất 2 chân cổng. Thứ hai là tốn dung lượng bộ nhớ. Thứ ba là tốn tài nguyên của MCU. Tuy nhiên nếu bí quá thì đến lúc tui cũng phải dùng chiêu này. Nếu bác có đoạn code nào về cái này thi free cho tui một đoạn.
    Tui có biết mail của bác là như thế nào đâu mà mail.
    Cảm ơn bác rất nhiều.
  6. baobien_nt

    baobien_nt Thành viên mới

    Tham gia ngày:
    04/08/2003
    Bài viết:
    16
    Đã được thích:
    0
    Chào chú life! Ta lại gặp nhau trong ......
    Hoan hô chú đã dũng cảm thừa nhận các hạn chế của anh 89 nhà ta (vốn được các chú sinh viên Việt Nam tôn thờ)!
    Chú có suy nghĩ chuyển sang con PIC cũng được vì nó cũng đã dễ kiếm ở Việt Nam rùi (Ở Hà Nội thì tớ chưa biết, chứ ở trong này thì Nhật Tảo có bán đầy).
    Về chuyện Recommend cho chú dùng con MCU gì thì tớ không dám, vì tớ đâu có biết cụ thể công việc của chú đang làm là gì đâu mà nhiều chuyện. Tớ chỉ biết là chú muốn giao tiếp I2C mà thui (mà cũng chả biết là chú định giao tiếp với anh nào nữa) .
    Nói thêm về PIC, đây là họ MCU của MicroChip có cấu trúc RISC nên có ưu thế về tốc độ xử lý cao. Để làm việc được thì chỉ cần :
    - Kiếm một con PIC trong dòng họ chúng nó (tớ thường thấy các chú dùng 16F84)
    - Trình dịch MPLAB
    - Mạch nạp cho con PIC
    Các chú có thể kiếm được các thông tin này rất dễ dàng trên Net, vì hầu hết chúng đươc cho free! Các chú thử đào bới trên các link này xem sao :
    http://www.microchip.com/download/tools/picmicro/devenv/v6xx/v630/mpl630full.zip
    http://www.htsoft.com/files/demo/picclite-setup.exe
    http://www.cs.ucr.edu/~susanc/db/downloads/mpl6lite.zip
    Một ưu thế nữa khi dùng PIC là các source ứng dụng viết cho PIC hiện nay có rất nhiều trên Net.
    Không biết bi nhiêu thông tin có làm chú life thoả mãn chưa nhẩy ! Tớ thấy có chú ddtdodien cũng khoái cái món MCU này.... chú ý ở đâu rùi nhỉ ? Có tham gia vào topic này không, lên tiếng đi!!!!
    Việc post bài lên box có nhiều cản trở (nhiều khi tớ vào box không được, không biết tại sao ? ). Chú nào có tâm huyết về MCU thì cứ mail cho tớ. Lần trước quên để email, chú life thông cảm nha ! Mail tớ : baobien_nt@asia.yahoo.com
    Kính chào các chú!
  7. concat_vn

    concat_vn Thành viên mới

    Tham gia ngày:
    06/08/2003
    Bài viết:
    47
    Đã được thích:
    0
    Hi
    Truoc day toi cung co'' la`m 1 bo na.p cho PIC, su du.ng cho ra''t nhieu ho., toi se kie''m lai ro`i post len, vi` la`m lau wa'' ro`i nen ko nho'' de? o dau nua. Co`n ve` tri`nh bien dich thi` co'' PICBASICPRO 2.43. Toi cung se post len day. please wait
  8. baobien_nt

    baobien_nt Thành viên mới

    Tham gia ngày:
    04/08/2003
    Bài viết:
    16
    Đã được thích:
    0
    Hi,
    Chú post lên nhanh nhanh nhé, mọi người chờ dài cả cổ
    Hậu tạ chú
  9. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Giao tiếp bằng IIC có 2 loại:
    - I2C giao tiếp cứng
    - I2C giao tiếp mềm
    Ở giao tiếp cứng thì phần cứng đã hỗ trợ các thanh ghi chức năng cho việc giao tiếp I2C đúng theo chuẩn I2C của Phillip. Do vậy việc giao tiếp ứng với việc đọc, ghi các thanh ghi chức năng đó để nhận, truyền thông tin giao tiếp giữa CPU với ngoại vi. Đây là giải của các Chip hiện đại, các Hệ thống lớn hoặc One chip...
    Còn ở giao tiếp mềm (tớ tự gọi tên như thế, kô biết có đúng không !): tức là phần cứng không có hỗ trợ như trên, như vậy thì người lập trình phải tự viết lấy mã để điều khiển các 2 Port (một SDA và một SCL), tức là để tạo dạng xung đúng như chuẩn I2C. đây là cách phổ biến đối với các giải pháp Vi điều khiển đa chip, cấp thấp và giản đơn hoặc là đa năng như họ 8051 của Atmel hay MCS chẳng hạn.
    Ở cả hai giải pháp này thì người lập trình đều phải nắm vững về chuẩn I2C của Philip (là chuẩn chung của Quốc tế về I2C). Và ở cả hai loại cũng đều phải có 2 chân cổng cho giao tiếp I2C: một chân cho dữ liệu là SDA và chân kia cho xung đồng hồ là SCL.
    Phần lớn với các bạn SV hoặc những người thiết kế giao tiếp các Hệ thống giản đơn, nghiệp dư là loại giao tiếp mềm với việc dùng các Vi điều khiển họ 8051 của Atmel hay MCS, vì giao tiếp I2C mềm này là loại rất linh động cho các Hệ thống đa năng.
    Việc viết mã nguồn cho chức năng này không khó và khá ngắn gọn. Có thể viết bằng C/C++ hoặc Assembly. Chỉ cần căn cứ theo khuôn dạng dữ liệu và chuẩn I2C trong tài liệu là được, nhưng đây là vấn đề rất phổ biến trong lĩnh vực lập trình điều khiển và phần mềm nhúng, nên tốt nhất là tìm trên mạng Source code của người khác đã viết rồi cho đỡ mất công (tớ có lần đã download nhưng không biết quẳng đâu rồi nên xxx).
    Kích thước các thủ tục căn bản cho giao tiếp I2C chỉ cỡ 5 hay 3 hàm thôi (tức là chỉ khoảng 2 trang màn hình)... hoặc nhiều lắm là 4 (hoặc 5) trang màn hình => dung lượng rất nhỏ.
    Tài liệu về chuẩn I2C bạn có thể download trên trang Home Page của tớ.
    Chúc thành công !
    http://tula.alturl.com
    http://tula.dk3.com
  10. vietson

    vietson Thành viên mới

    Tham gia ngày:
    29/12/2002
    Bài viết:
    102
    Đã được thích:
    0
    Anh có thể tham khảo file source code viet bằng C giao tiếp giữa 89 va ROM 24C16
    http://www.specs.de/~danni/appl/soft/c51/eeprom/
    Hoặc là source code viết bằng Assembly:
    Tôi ko còn nhớ link nhưng vẫn còn file zip. Liên hệ
    vietson02@yahoo.com
    tôi sẽ gởi cho anh.
    Chúc thành công.

    Your wish is my command until I run out of love.

Chia sẻ trang này