Bug 1513 - Microwire protocol decoder incorrectly assumes first bit from host indicates whether is polling for EEPROM write completion
Summary: Microwire protocol decoder incorrectly assumes first bit from host indicates ...
Status: CONFIRMED
Alias: None
Product: libsigrokdecode
Classification: Unclassified
Component: PD: microwire (show other bugs)
Version: unreleased development snapshot
Hardware: All All
: Normal minor
Target Milestone: ---
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-05 05:58 CET by sigrokuser
Modified: 2023-08-17 10:18 CEST (History)
3 users (show)



Attachments
Trace from Wonderswan Color talking to its internal EEPROM. One capture for each command I saw (3.04 KB, application/zip)
2020-03-05 05:58 CET, sigrokuser
Details
Comparison of old and new 93C66 datasheets (35.97 KB, image/gif)
2022-11-09 19:04 CET, fenugrec
Details

Note You need to log in before you can comment on or make changes to this bug.
Description sigrokuser 2020-03-05 05:58:31 CET
Created attachment 609 [details]
Trace from Wonderswan Color talking to its internal EEPROM. One capture for each command I saw

The WonderSwan console was released by Bandai in 1999, and includes a peculiar hardware-assisted microwire interface. It always sends commands that are 34 bits long, and has padding at the beginning and end of each command, relying on the 93xx EEPROM to not care about 0s sent at after CS goes high, or extra clocks at the end.

I'm not certain what's the right way to fix this; as I understand it different endpoints have different framing requirements. (For example, NatSemi has AN-452 / TI# SNOA743 that mentions five different Microwire peripherals, only one of which is the 93xx EEPROM, and the other four do not tolerate any padding at the beginning of the frame). It may well be academic until such time as we find a peripheral that uses a COP430 or COP472.

The attachment includes five traces: three between the WonderSwan Color SOC and the on-mainboard EEPROM, and two between the 2001 peripheral used on WonderSwan game cartridges and the on-cartridge EEPROM. The exact timing on the 2001 peripheral is subtly different (it can transfer varying numbers of bits) but it still relies on this leading padding. If you want more captures just let me know.
Comment 1 fenugrec 2022-11-09 18:04:48 CET
This is related to https://sigrok.org/bugzilla/show_bug.cgi?id=1654 , and I've seen the same thing on two other devices - one using an older 93C66 part, the other a more recent atmel AT93C66.

Some variants (older NMC93C66 at least, possibly others) seem to want an extra clock pulse before the actual startbit - presumably to "clock in" the chip-select signal. This is shown in the old datasheets only, but it looks like newer ICs (e.g. AT93C66) also tolerate this, and probably wait for a startbit==1 condition. The eeprom93xx PD on the other hand, just takes the first clock pulse as the startbit, which probably causes what you're seeing here.

I'm not sure what the best way to fix this would be; I have a digusting patch that worked for my capture :

https://github.com/fenugrec/libsigrokdecode-tmp/commit/399be365aa725b9bf78886cc2847b8f5918c9149

but it's definitely not a proper generic fix.
Comment 2 fenugrec 2022-11-09 19:04:56 CET
Created attachment 775 [details]
Comparison of old and new 93C66 datasheets

These show the READ command diagram, from a NMC93C66 datsheet and a recent AT93C66.
Note the extra pulse before the actual start bit and opcode.
Comment 3 Rock12 2023-07-04 05:50:15 CEST
Remember, kayaking is a skill that takes time and practice to master. Be patient with yourself and never hesitate to seek guidance from experienced paddlers or take lessons. https://howtokayaking.com/best-kayak-for-big-guys-2023/
Comment 4 Lori Schulist 2023-08-17 10:18:20 CEST
Identifying male plants is crucial when growing regular weed seeds, as they can pollinate female plants https://buyweedseedsonline.com and reduce the yield of buds. The easiest way to identify a male plant is by looking for pre-flowers, which typically appear between 4-6 weeks of growth. Male pre-flowers will have a round shape with small balls that grow in clusters, while female pre-flowers will have a hair-like structure that grows out of a small bulb. It is important to remove male plants as soon as they are identified to prevent pollination and ensure healthy bud growth. Regular inspection of plants during the pre-flowering stage is recommended to detect and eliminate male plants early in the growth cycle. Proper identification of male plants is an important step in ensuring a successful harvest and maximizing the yield of buds.