_4afc_ 25 5 мая, 2006 Опубликовано 5 мая, 2006 · Жалоба Глючит запись в 22554. Чтение работает прекрасно. Значение регистров при чтении совпадает с начальными, описанными в pdf. Запись не получается. Есть какие-то подводные камни? Типа регистра разрешающего запись? Интерфейс Intel, 8bit, мультиплексированный. Написал тестовую программу: Записывает в регистр его номер и считывает его значение, и так с первыми 256 регистрами. Эффект ошеломляющий - при первом проходе считываются изначальные значения, при втором - или различные одинаковые числа (00,65,04) или 96 во всех регистрах, в зависимости от того как работает CS - по доке или по уму. Алгоритм записи - следующий: WR=1;CS=1;RD=1;ALE=0; A00..09=Register; ALE=1; ALE=0; D00..D07=Data; CS=0; WR=0; WR=1; CS=1; Паузы между командами ни менее 1мс. Вопрос - где я налажал? Или я так хитро пожёг её? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 5 мая, 2006 Опубликовано 5 мая, 2006 · Жалоба Битва продолжается. В результате более тщательного тестирования - выяснилось: Регистры портяться если писать выше адреса 0xa8. На данный момент работает запись лишь в регистр 0x85 и 0x08. И вот этого я уже не понимаю. Остальные, что, только для чтения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shamray 0 5 мая, 2006 Опубликовано 5 мая, 2006 · Жалоба Регистры портяться если писать выше адреса 0xa8. Так вроде 0xa8 это последний регистр в адресном пространстве. Я сам пользую этот чип только более старой версии -v1.3 никаких проблем с записью небыло и нет. Правда я не использовал мультиплексированную шину. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 17 мая, 2006 Опубликовано 17 мая, 2006 · Жалоба Регистры портяться если писать выше адреса 0xa8. Так вроде 0xa8 это последний регистр в адресном пространстве. Я сам пользую этот чип только более старой версии -v1.3 никаких проблем с записью небыло и нет. Правда я не использовал мультиплексированную шину. Просто изначально писалась простенькая тестовая программка записывовшая в регистр его номер и считывающая его значение. Затем она уже была ограничена до последнего регистра. Скажите, а в вашем случае (v1.3), вы в какие регистры пишете сразу после сброса (или читаете)? Я предположил, что надо начать с задания частоты E1(2048) и записать в регистры GCM1..GCM8 ($92..$99) нужные значения, но почему-то после их записи, при чтении из них - читаются нули. Это меня настораживает. Вы можете считать из них (или из других регистров) записанные вами значения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CITY 0 17 мая, 2006 Опубликовано 17 мая, 2006 · Жалоба проходили... знаем... лучше уж не парится с "простенькими тестовыми" программками... настолько чудные чипы и такие же еррашиты, что не угадаешь, что можно, а что нельзя писать... лучше уж сразу затачивать под рабочую задачу и "ненужное" не трогать... два года назад бы такой же цирк, когда в тестовой проге прогоняли чтение/запись всех регистров... как только начали конфигурить поделу - все, как рукой сняло! :cranky: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться