Search code examples
c++arduinoserial-portraspberry-pimicrochip

Data sheet for chip does not state how to communicate with it


So to start off I am definitely not a Computer Engineer, but I am trying to learn. I found a couple of (93C46CB3) chips along with some other insignifcant chips in a bag, thanks Dad! I studied the data sheet and I figured out which pins do what on the chip, but I have yet to figure out how to read and write to it. It says it's serial but it does not say what baud rate it is. Also, it does not say how fast I should be turning on and off the pins. Does it use PWM? If so, how fast? The data sheet is here

http://www.datasheetspdf.com/datasheet/93C46CB3.html

PG. 7 is where the chart is for reading and writing but it does not say how long those intervals are. "S" "D" and "Q" are all pins btw.

I am trying to read and write its content using an Arduino, and or a Raspberry Pi, whichever works I just need it to work. Thanks in advance!

tldr; How fast do I turn my pins on and off for this chip, and what is the baud rate on this if it has serial communication?


Solution

  • The manufacturer has application notes on the wiring and protocol for their 93 Series Microwire devices

        http://ww1.microchip.com/downloads/en/AppNotes/01004a.pdf
        http://ww1.microchip.com/downloads/en/AppNotes/01020B.pdf
        http://ww1.microchip.com/downloads/en/AppNotes/01029A.pdf
        http://ww1.microchip.com/downloads/en/AppNotes/00993a.pdf
    

    and the source in C for PIC microcontrollers is in:

        http://ww1.microchip.com/downloads/en/AppNotes/AN1004.zip
    

    TLDR:

    • Supports SPI or Microwire protocols
    • The speed for your chip is stated in the datasheet to have a clock frequency of 3MHz but I would recommend 2MHz as that covers all chips in this series.
    • The most significant bit is sent first
    • Clock polarity is type 0 (positive)
    • Clock phase is type 0 (rising edge)

    Arduino init example:

        SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
    

    This will work with pin 2 connected to SCK, pin 3 connected to MOSI, and pin 4 connected to MISO.