Thông báo

Collapse
No announcement yet.

Bộ đếm xung, có nhớ

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Nguyên văn bởi thangktvta Xem bài viết
    Cái này bác kiếm mấy cục pin có thể nạp lại, khi mất điện nó sẽ dùng pin còn không thì thôi.



    Cái đoạn LED7 này bác nhầm rồi. Led7 luôn luôn dùng 7 bit (8 bit cả dot) để hiển thị dữ liệu, còn số cần hiển thị ra LED của bác có bao nhiêu chữ số thì cần bấy nhiêu LED7, ví dụ cần hiển thị số 100.000 thì sẽ cần 5 con LED7 đó bác.
    Còn việc truyền nối tiếp - nói như bác đúng, chỉ cần sai một bit là coi như vứt cả đống bít vừa truyền. Bác nên nghiên cứu mấy cái mã đường truyền để kiểm tra và sửa lỗi bit....
    Nếu dùng 5 còn LED7 như vậy thì có phải là mình phải đùng đến 7x5=35 đường không, vì mỗi con LED 7 chỉ chỉ hiển thị dc hàng chục đơn vị.v.v..vậy nên nếu dữ liệu 100.000 thì cần đến 35 đường để hiển thị cho 7 con LED, chẳng phải quá nhiều sao.Ý mình là bây giờ cái giá trị 100.000 mà xuất ra dạng 01010 để đưa sang phần xử lý tiếp theo thì nó xuất ra kiểu gì (nối tiếp hay song song) theo những đường nào?

    Comment


    • #17
      Nếu dùng 5 còn LED7 như vậy thì có phải là mình phải đùng đến 7x5=35 đường không
      Trùi, bạn đọc thêm cách quét led, có nhiều cách khác nhau để hạn chế số chân truyền. Tìm trên này ắt có. Nếu là mình thì mình dùng 3 chân nối ra 74138 để quét từng led, 4 chân còn lại đưa dữ liệu từng digit ra cho IC giải mã; 4543 chẳng hạn. Quét tối đa 8 led với 7 chân.
      giá trị 100.000 mà xuất ra dạng 01010 để đưa sang phần xử lý tiếp theo thì nó xuất ra kiểu gì
      Cũng lại có nhiều cách giải quyết khác nhau
      -100.000: nhiều hơn 2 byte, cứ cho là 3 byte dữ liệu, nếu song song hết thì 24 chân, kinh
      -Nối tiếp đơn giản thì dùng UART, truyền từng byte một qua cổng nối tiếp. Ví dụ byte cao nhất đến thấp nhất. Nếu IC nhận có chung nguồn mass thì chỉ 1 chân Txd là đủ. UART có kèm cả bit kiểm tra (parity bit) để kiểm soát lỗi, mình chưa dùng lần nào
      -Nếu muốn thử thì dùng các kiểu 1-wire, 2-wire có trên datasheet AVR, hơi lằng nhằng
      Đẹp từng kilomét

      Comment


      • #18
        Nguyên văn bởi hoangsonk49 Xem bài viết
        Nếu dùng 5 còn LED7 như vậy thì có phải là mình phải đùng đến 7x5=35 đường không, vì mỗi con LED 7 chỉ chỉ hiển thị dc hàng chục đơn vị.v.v..vậy nên nếu dữ liệu 100.000 thì cần đến 35 đường để hiển thị cho 7 con LED, chẳng phải quá nhiều sao.
        Úi trời, ai lại chơi...hoang như bác vậy chứ. Người ta nối ....100 con LED7 chung đường data (7bit) với nhau. Và quét led thông qua các chân Chip Select nên nếu dùng 100 con thì chỉ mất có 7+100 = 107 thôi chứ không phải = 7x100 =700 chân đâu bác ạ.
        Còn truyền nối tiếp thì theo như bác Kilodeth đó, có thể dùng I2C, UART, ...hoặc bác có thể ....tự nghĩ ra để truyền cũng được, biết đâu lại có thể truyền một phát hết 100.000 luôn ấy chứ. hehehe. Chúc bác thành công và vui vẻ!
        Nỏ biết chữ mần răng ký được??!! Thôi nhé.

        Comment


        • #19
          Chà...Bác mới ngâm cứu về AVR mà chơi cái đề hoành tráng thế, truyền cả dữ liệu qua RF nữa cơ đấy.

          Ý của e là dùng nguồn dự phòng để khi phát hiện cúp điện sẽ lưu dữ liệu đang đếm từ SRAM vào eeprom và làm một số việc khác nếu cần thêm (tất nhiên là phải mất ít năng lượng thôi).

          Một khi đã mất điện thì còn đếm chi nữa lúc đó một là bác cho MCU nó standby hoặc làm thêm một mạch tự cắt nguồn dự phòng (1,2 chú transitor) sau khi đã làm xong các việc cần thiết để tiết kiệm Pin. Sau khi có điện lại ta lại lôi dữ liệu trong eeprom ra Sram tiếp tục công việc đếm

          Còn việc truyền dữ liệu thì bác có thể dùng như bác Kilodeth hoặc dùng bộ SPI có thể sẽ đơn giản hơn một chút cho người mới mò về AVR

          Việc xuất dữ liệu ra led bác có thể dùng mỗi led một thanh ghi dịch (74595 hay... gì gì đó thuộc loại serial inparallel out ,tùy bác) (cách này hơi tốn IC ), các thanh ghi dịch này cho mắc nối tiếp nhau, như vậy ta chỉ mất có một đường để đưa dữ liệu vào thanh ghi dịch, một đường xung clock cho nó hoạt động dịch và một đường nữa là để khi nào thì cho phép dữ liệu trong thanh ghi dịch xuất ra các chân led (tham khảo datasheet).
          Mấy ai định nghĩa được tình yêu.
          Có gì đâu một buổi chiều.
          Kề dao lên cổ yêu hay chết .
          Gật đầu cái rụp thế là yêu.

          --------
          Apple

          Comment


          • #20
            Nguyên văn bởi hoangsonk49 Xem bài viết
            Mọi người cho em hỏi: Bây giờ em đang muốn làm một bộ đếm xung, tức là lối vào sẽ là dạng xung vuông, nhưng mà lúc có xung, lúc không có xung và em muốn đếm số xung ấy và lưu vào bộ nhớ (Mỗi lần có xung thì bộ nhớ tăng thêm 1).Và sau đó kết quả đó dc xuất ra ngoài.Bộ đếm cỡ khoảng đến 1.000.000. Vì em mới bắt đầu làm với cái AVR này nên chưa hiểu rõ lắm, không biết có phải là lưu dữ liệu vào eprom không? và chân đưa xung vào là chân nào, chân xuất dữ liệu ra là chân nào? Cần cấu hình những chân nào? và cuối cùng là ghi đọc bộ nhớ thế thì cần khai báo và dùng hàm gì ạ. Em đang tìm hiểu nhưng do chưa có kinh nghiệm nên khá khó khăn, mong mọi người giúp em với.
            Em xin cảm ơn rất nhiều !
            với yêu cầu của bạn chỉ cần 1 con avr là đủ. ko cần sd tới nvram đâu. bạn muốn sd avr nào thì down datasheet của con đó về mà coi. nên sd timer ở chế độ counter thì hay hơn. phần backup dữ liệu thêm cục pin mỏng 3.6v là đủ(khi cúp điện thì cho giá trị đếm lưu vào epprom rồi chuyển sang chế độ power down cho đến khi có điện lại.chào bạn.

            Comment


            • #21
              2! KILODETH, THANGKTVTA: ừ,thì mình cũng mới làm vdk dc vài hôm mà, nên thỉnh thoảng có nhiều câu hỏi hơi lạ :d anh em thông cảm, vì mình là dân về wiless nhưng giờ hoàn cảnh và dòng đời xô đấy nên phải đá sang mảng vdk này để làm cho dc việc.Thế gặp thế thế thời phải thế mà.
                 Chủ đề chính mình muốn bàn với các bạn không phải là xuất ra LED (Vì mình cũng đâu có biết xuất ra LED kiểu gì, chẳng qua là xem dc cái sơ đồ xuất ra 1 con LED nên chém gió tý về LED thôi :P), mà đó chỉ là ví dụ để mình hỏi về cách xuất dữ liệu của vdk ra thôi, vì mình số đếm cuả mình xuất ra dưới dạng nhị phân còn phải đi sang một bộ RF để xử lý nên mình muốn tìm hiểu cách thức, dạng dữ liệu để bên kia còn xử lý,
              2! Apple Như mình đã nói,cái bộ của mình kích thước khá nhỏ (2x2 đốt ngón tay) mà phải làm cả hai chức năng nhận dữ liệu và phát nên không thể dùng nhiều linh kiện dc.Như cái mạch mình đang có trong tay có mấy con nó ghi là MIC5239BM, MB6S...không rõ có phải để làm thanh ghi như bạn nói không? Mình sẽ post tấm hình chụp toàn bộ cái mạch đó để mọi người cùng xem, sau khi ý tưởng đã hoàn thành thì mình mới bắt tay vào nghiên cứu cách lập trình

              Comment


              • #22
                Nguyên văn bởi hoangsonk49 Xem bài viết
                mình số đếm cuả mình xuất ra dưới dạng nhị phân còn phải đi sang một bộ RF để xử lý nên mình muốn tìm hiểu cách thức, dạng dữ liệu để bên kia còn xử lý,
                2! Apple Như mình đã nói,cái bộ của mình kích thước khá nhỏ (2x2 đốt ngón tay) mà phải làm cả hai chức năng nhận dữ liệu và phát nên không thể dùng nhiều linh kiện dc.Như cái mạch mình đang có trong tay có mấy con nó ghi là MIC5239BM, MB6S...không rõ có phải để làm thanh ghi như bạn nói không? Mình sẽ post tấm hình chụp toàn bộ cái mạch đó để mọi người cùng xem, sau khi ý tưởng đã hoàn thành thì mình mới bắt tay vào nghiên cứu cách lập trình
                Mạch có 2x2 đốt ngón tay thì khó chơi rồi đây! Tưởng là phần VDK riêng, RF riêng nên em mới nghĩ là dùng I2C, UART.... Chứ đây lại nằm trên một board và dùng có 1 ẻm AVR! Hic- vậy thì bác phải tìm hiểu xem RF nó nhận dữ liệu vào kiểu gì:độ rộng giữa các bit, có mã hóa hay k...để AVR còn xử lý và tống ra.???
                Nỏ biết chữ mần răng ký được??!! Thôi nhé.

                Comment


                • #23
                  à, cái của mình dùng UART (Hôm nay mới biết :P), cái nhận cũng là UART ! Các bạn cho mình hỏi, với mục đích như vậy thì cần phải lập trình những chân nào, khai báo thế nào, tiện thể các bạn có thể giới thiệu cho mình cuốn sách nào về lập trình AVR tiếng Việt dễ hiểu không? hoặc các bài C ví dụ ,hoặc nói một cách tổng quát cũng dc. Vì mình chưa làm vdk bao giờ.Toàn bộ ý định của mình là thế này:
                     Có hai lối vào: Một là IN1 để cho xung vào, IN2 để phát hiện là mất điện
                  *Nếu IN1 = 1 thì giá trị ở bộ nhớ Flash tăng 1
                  IN1=0 , giữ nguyên
                  *Sau đó xuất dữ liệu ở bộ nhớ Flash ra OUT theo UART
                  *Nếu IN2=0 (mất điện) thì lưu ngay số ở bộ nhớ Flash vào Eprom
                  IN2=1 (ko mất điện hoặc có điện trở lại) thì số ở Eprom lại đưa vào Flash để tiếp tục đếm.

                  Về phần cứng mình có thể mầy mò tìm hiểu dc, nhưng còn phần lập trình, vì nó liên quan đến địa chỉ loằng ngoằng gì gì ấy, đọc nhức hết cả mắt nên tiện thì hỏi luôn các đại ca cho nhanh, với lại anh em nói thê này có khi dễ hiểu hơn là đọc sách tiếng Anh

                  Comment


                  • #24
                    Nguyên văn bởi hoangsonk49 Xem bài viết
                    à, cái của mình dùng UART (Hôm nay mới biết :P), cái nhận cũng là UART ! Các bạn cho mình hỏi, với mục đích như vậy thì cần phải lập trình những chân nào, khai báo thế nào, tiện thể các bạn có thể giới thiệu cho mình cuốn sách nào về lập trình AVR tiếng Việt dễ hiểu không? hoặc các bài C ví dụ ,hoặc nói một cách tổng quát cũng dc. Vì mình chưa làm vdk bao giờ.Toàn bộ ý định của mình là thế này:
                       Có hai lối vào: Một là IN1 để cho xung vào, IN2 để phát hiện là mất điện
                    *Nếu IN1 = 1 thì giá trị ở bộ nhớ Flash tăng 1
                    IN1=0 , giữ nguyên
                    *Sau đó xuất dữ liệu ở bộ nhớ Flash ra OUT theo UART
                    *Nếu IN2=0 (mất điện) thì lưu ngay số ở bộ nhớ Flash vào Eprom
                    IN2=1 (ko mất điện hoặc có điện trở lại) thì số ở Eprom lại đưa vào Flash để tiếp tục đếm.

                    Về phần cứng mình có thể mầy mò tìm hiểu dc, nhưng còn phần lập trình, vì nó liên quan đến địa chỉ loằng ngoằng gì gì ấy, đọc nhức hết cả mắt nên tiện thì hỏi luôn các đại ca cho nhanh, với lại anh em nói thê này có khi dễ hiểu hơn là đọc sách tiếng Anh
                    Làm vậy cũng hay, nhưng có nhất thiết mỗi xung vào là bắn data qua uart hay không, hay vài giây; vài phút bắn một phát? Nếu bắn liên tục thế sợ rằng tốc độ UART không đáp ứng kịp (3 byte, giả sử 9600 bps, tốn hơn 2.5 ms cho mỗi lần bắn; tần số xung vào không thể quá 400Hz). Vậy mọi người mới khuyến cáo nên dùng counter
                    Cách thức lập thức lập trình bạn nên tham khảo các bài viết về Codevision, rất dễ cho người mới bắt đầu. Hỏi trên diễn đàn có thể chỉ ra được cách chứ không thể giải quyết hết cả bài toán được.
                    Đẹp từng kilomét

                    Comment


                    • #25
                      Nếu mỗi lần có xung vào là đưa qua UART luôn thì mất công quá, như vậy giống ta đi đường vòng.

                      Nếu bác định làm thế thì ta khỏi cần dùng VDK ở bộ đếm cho chật chội, bác nói đã có 010101 đưa ra thì bác đưa thẳng nó vào bộ phát RF luôn, sau đó ta sẽ tính toán, đếm, lưu ở bộ thu, lúc ấy bộ thu mới dùng VDK.

                      Còn nếu không bác cho định thì sau bao nhiêu ms thì sẽ truyền toàn bộ dữ liệu đang đếm về bộ thu , lúc ấy ở bộ phát mới cần dùng VDK.

                      ghi chú : hai con MIC5239BM, MB6S mà bác hỏi, em tra datasheet thấy nó là con ổn áp cấp nguồn cho avr và MB6S là IC cầu (rectifier).
                      Last edited by apple; 16-10-2008, 21:34.
                      Mấy ai định nghĩa được tình yêu.
                      Có gì đâu một buổi chiều.
                      Kề dao lên cổ yêu hay chết .
                      Gật đầu cái rụp thế là yêu.

                      --------
                      Apple

                      Comment


                      • #26
                        Cảm ơn hai bạn nhiều lắm. ừ có lẽ truyền như thế hơi vội vàng nên chắc mình sẽ thiên theo hường khoảng 1 phút thì truyền một lần. Mình sẽ xem thêm tài liệu về codevision.

                        Comment

                        Về tác giả

                        Collapse

                        hoangsonk49 Tìm hiểu thêm về hoangsonk49

                        Bài viết mới nhất

                        Collapse

                        Đang tải...
                        X