Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужно собрать эмулятор 93lс46 на AVR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Dj X3 aka A-Droo
Стал перед задачей эмуляции ипромки 93lc46 в одном устройстве
причём эмулировать надо неполностью, требуется всего лишь подсунуть первые три байта
это можно сделать на основе отсчёта импульсов по линии CLK и выдачи данных по линии DO
ещё одна особенность , линия DO подтянута единицей. соответсвенно выводить надо инверсионно. транзисторным ключём это исправить нельзя, т.к. эта шина используется ещё для передачи данных в сам МК эмулятора(т.е. сначала мк принимает одну информацию - с этим разобрался, а потом выдаёт посылки якобы от ипром - с этим непонятно)

пробовал уже по разному. ну не хочет и всё.

вот пока что один из вариантов эмуляции

interrupt [EXT_INT0] void ext_int0_isr(void) //по восходящему испульсу на линии CLK
{
counter++; // счётчик +1

if(counter>=10 && counter<=18) //1-ый байт
{
DO = ((SL_B[4] << counter - 10) & 0x80);
}

if(counter>=18 && counter<=26) //2-ой
{
DO = ((SL_B[5] << counter - 18) & 0x80);
}

if(counter>=35 && counter<=43) // 3-ий
{
DO = ((SL_B[6] << counter - 35) & 0x80);
}
}

делал на основе осцилограмм линий clk и do при считывании с ипромки.
их скоро выложу, где то потерял в компе.

и вот ещё есть этот алгоритм но он написан на алгоритм билдере
но я его не понимаю.в принципе если кто понимает и алгбилдер и cvavr то буду очень благодарен если поможет перевести на С этот код.


вот ещё дамп из ипромки.
мне нужно передать ячейки в которых : E3 , 87 , 7F
режим 16-bit
GDI
У вас условие первого и второго байта сработают одновременно при counter=18.
Dj X3 aka A-Droo
GDI , ага ,но пробовал и так чтобы не накладывалось, всё равно.
пробовал преобразовывать по 2 байта в одно слово, и передавать, там точно наслойки такой не было, но всё равно нет результата.


вот ещё скрины из осцила про которые я говорил
Ink
Во-первых, как уже заметили - убрать лишнее = в условиях.
Во-вторых, лично меня смущает вот это: (SL_B[4] << counter - 10). Заключите (counter - 10) в скобки, и, возможно, будет вам счастье.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.