Логический анализатор
Сердцем девайса является контроллер CY7C68013A широко известный на просторах интернетов. Именно на нем народ клепает приборы вроде моего. К сожалению, у нас я не смог найти такой, пришлось покупать (13$) на Ebay небольшую отладочную платку с этим контроллером, а потом варварски его оттуда выковыривать. Кстати на той же плате есть почти все что нам потребуется для изготовления девайса (кроме буфера). Сама платка выглядит вот так:
Шаг выводов у контроллера очень мелкий, и если у вас не возникает желания "подковать блоху", то можно оставить контроллер на своем месте просто подпаяв к этой плате буфер. Но тут есть один момент об который я ломал голову почти целый день - этой на плате стоит не совсем та микросхема памяти. В первых нескольких байтах этой микросхемы должен быть записан идентификатор устройства и производителя (PID и VID). Как потом оказалось эта EEPROM память, может быть использована программой контроллера для каких-то своих целей. Прошивка предполагает, что к контроллеру подключена память 24lc02 ну а фактически китайцы туда присобачили 24lc128. Из-за разницы в адресации к ячейкам, прошивка не может записать (или прочитать?) что-то в какую-то ячейку памяти и девайс не стартует. Однако те самые первые байты с PID и VID пишутся/читаются правильно даже с микросхемой памяти большего объёма. Микросхема достаточно редкая (потому что старая) и я не нашел её не местном радиобазаре и втыкал всякие по очереди из тех что были в наличии. Успешно заработала 24lc04, а 24lc16 и всё что больше - работать правильно отказались. Эта проблема была только с софтом от Saleae, что же касается USBee, то там все работало без замены микросхемы. Кстати у контроллера CY7C68013A есть одна примечательная особенность: Он не имеет ни какой энергонезависимой памяти в которой хранится его прошивка. Она записывается в контроллер драйвером и остается в нем пока есть питание. Таким образом меняя VID и PID в микросхеме памяти, мы можем превратить девайс во что угодно :-) Теперь посмотрим из чего же сделан наш девайс:
А собственно ничего почти в нем и нет:
- Сам контроллер CY7C68013A
- Микросхема памяти
- Буфер
- Стабилизатор на 3.3 в
- CAN
- DMX-512
- I2C
- I2S / PCM
- Manchester
- 1-Wire
- Async Serial
- Simple Parallel
- SPI
- UNI/O
Данные после декодирования можно выгрузить в текстовый файл или сохранить в сыром виде а потом анализировать. Например вот так выглядит обмен данными между термометром DS18B20 и контроллером:
А вот тут я шлю привет через UART:
Захват данных может начаться как в ручном режиме так и по триггеру. Достоинство этой программы в простоте и интуитивно понятном интерфейсе. А еще она не очень требовательна к ресурсам по сравнению со следующей программой USBee Suite. Сразу после запуска у нас появятся 8 цифровых каналов и один аналоговый, которого в нашей конструкции физически нет. Поэтому его можно отключив нажатием крестика около него. Ну или можно припаять АЦП и немного обвязки и он начнет работать. Но мне с моим нормальным осциллографом это нафиг не нужно и я не стал заморачиваться. Программа умеет понимать следующие протоколы
- I2C
- I2S
- CAN
- Sync Serial
- Parallel bus
- USB
- SPI
- Async Serial
- PS/2
- SMBus
- 1-Wire
Самый главный плюс - оно понимает USB, пока он мне не нужен, но скоро буду раскуривать и вот тогда анализатор будет как раз кстати. Я попробовал снять те же самые данные что и выше, при помощи этой программы. Опять тот же самый 1-Wire термометр от Dallas semiconductor:
и опять те же данные отправляемые через UART:
Меня удивило то, что не смотря на всю свою крутость обе программы не умею делать автодетект скорости UARTa. Что касается остальных протоколов, то до них еще не дошла очередь, но я обязательно их испытаю. Ни какого корпуса для девайса у меня нет, но возможно в ближайшем будущем он появится. Еще рекомендую купить цветных проводков, ведь каждому каналу в программах соответствует свой цвет и это очень удобно. Не лишними будут так же хваталки, которыми удобно присасываться почти к любому месте на плате:
Называются они "Test Hook Clip Probes" если кто будет искать в магазинах заморских. Продаются они сразу по 20 штук на DealExtreme. Предвидя вопросы на счёт платы, скажу сразу что она сделана обычным ЛУТом. Ничего ни где не отвалилось. Контроллер был припаян при помощи паяльника, матов и фена. Главное не торопиться. Ну а все остальные детальки очень большие и паяются феном или паяльником легко и непринужденно. Кстати, моя первая плата в Eagle, так что прошу не судить строго :)
Саму печатку можно скачать тут. Предложения и комментарии принимаются.