Важная информация

User Tag List

Страница 29 из 38 ПерваяПервая ... 252627282930313233 ... ПоследняяПоследняя
Показано с 281 по 290 из 371

Тема: Радио-86РК на новый лад

  1. #281
    Veteran Аватар для AHTuXPuCT
    Регистрация
    02.06.2009
    Адрес
    Искитим
    Сообщений
    1,275
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vladimir_S, ИД14 ставится вместо ИД7? (DD11 по схеме из первого поста)

  2. #282
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,507
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AHTuXPuCT Посмотреть сообщение
    Vladimir_S, ИД14 ставится вместо ИД7? (DD11 по схеме из первого поста)
    Разумеется. И в одном корпусе получается два дешифратора.

  3. #283
    Veteran Аватар для AHTuXPuCT
    Регистрация
    02.06.2009
    Адрес
    Искитим
    Сообщений
    1,275
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vladimir_S, а что нибудь менее экзотическое вместо ИД14 можно поставить?
    ИД4 например

  4. #284
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,507
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AHTuXPuCT, И что в ней такого экзотичного? Она везде продается и стоит рублей десять.

  5. #285
    Guru Аватар для Vladimir_S
    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,507
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я в два раза ошибся. Это из прайса одного нашего магазина.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	555ИД14.jpg 
Просмотров:	304 
Размер:	10.7 Кб 
ID:	41925  

  6. #286
    Veteran Аватар для AHTuXPuCT
    Регистрация
    02.06.2009
    Адрес
    Искитим
    Сообщений
    1,275
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    думаю в новосибирске найдем ИД14

  7. #286
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #287
    Member Аватар для kovdry
    Регистрация
    11.10.2010
    Адрес
    Запорожье
    Сообщений
    165
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дело двигается потихоньку.
    Переделал аппаратную часть с заменой ВВ55 на ATMega32.
    Внешний вид макетки изменился (смотри фото внизу).
    Пищалку пришлось перенести вглубь платы.
    На ее месте поставить два разьема IDC-10M .
    Один для SD-карты, другой для ЖКИ дисплея и доп. клавиатуры.
    На каждом разьеме по 10 контактов. Два контакта на питание + 8 сигнальных линий, думаю этого хватит.

    Сделал разводку всех цепей ATMega32 связанных с шиной РК + разьем для программирования + клавиатура PS/2 + само собой разумеется питание.

    Теперь занимаюсь разработкой прошивки.
    И тут у меня возник первый вопрос: Возможно ли спалить выходы ИМС РК, если подключить их к контроллеру, у которого выводы ранее были запрограммированы как выходы?

    Поясню вопрос. Раньше у меня этот контроллер стоял в домашней метеостанции и некоторые выводы порта D были настроены как выходы. Установив контроллер в РК и подав на него питание я получу аппаратную коллизию, когда два цифровых выхода с разными логическими уровнями будут обьединены на одной линии. За ATMega32 я спокоен, у него на выходе стабилизатор на 20 мА, а выдержит ли ВМ80 или логика.
    Как мне действовать чтобы не навредить?
    Тут сложность в том, что я сращиваю две вычислительные системы, которые пока взаимно не подозревают о своем существовании.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Img101.jpg 
Просмотров:	8958 
Размер:	85.4 Кб 
ID:	42522  
    Последний раз редактировалось kovdry; 04.08.2013 в 17:40.

  9. #288
    Member Аватар для kovdry
    Регистрация
    11.10.2010
    Адрес
    Запорожье
    Сообщений
    165
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Идем дальше!
    Проблему, описанную в предыдуем посте я преодолел.
    Следущим образом:
    1. Питание микроконтроллера ATMega32 отпаял от линии питания РК +5В, и подсоединил его к отдельному разьему USB-B, с тем, чтобы при программировании все другие микросхемы отключить (кроме ATMega32, разумеется).
    2. Поскольку штатный генератор РК ГФ24 при программировании будет отключен, нужен генератор для тактирования ATMega32. Для этого в моем программаторе, выполненном по этой ссылке, предусмотрен вывод LED. На этот вывод со стороны программатора подается меандр с частотой 1МГц. Его нужно подключать на вход тактирования XT1 (вывод 13), если нет другого источника. Я так и сделал. Программирование прошло удачно.
    Для проверки нужно было оба контакта вернуть назад. Так что теперь, все время так туда сюда перепаивать?
    Нет. Как известно из предыдущего поста кофликт возникает только при первом программировании, если микроконтроллер не исходен. Последующую прошивку можно проводить по штатной схеме.
    И действительно, я проверил, жук шьется по штатной схеме без проблем.

    Что дальше?
    Пока я написал только прошивку, которая подает сброс на процессор ВМ80 на 0.5 сек., после подачи питания. Это тестовая прошивка, для того чтобы просто проверить процесс программирования. Программа написана на ассемблере AVR, в оболочке AVR Studio 4.
    Дальше я собираюсь реализовать обмен в машинном цикле между ВМ80 и ATMega32. Реализовано это будет через прерывание.
    Тестовая программа должна будет напечатать на экране РК некоторый текст, эмулируя клавиатуру.
    Например : VER 01-01.

    Здесь выкладываю фото процесса программирования и программатора.

    Еще тестовую прошивку.
    Мало ли, вдруг пригодится.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Img111.jpg 
Просмотров:	326 
Размер:	85.5 Кб 
ID:	42654   Нажмите на изображение для увеличения. 

Название:	Img112.jpg 
Просмотров:	300 
Размер:	84.5 Кб 
ID:	42655   Нажмите на изображение для увеличения. 

Название:	Img113.jpg 
Просмотров:	276 
Размер:	81.1 Кб 
ID:	42656   Нажмите на изображение для увеличения. 

Название:	Img114.jpg 
Просмотров:	5850 
Размер:	57.9 Кб 
ID:	42657  
    Вложения Вложения
    Последний раз редактировалось kovdry; 04.08.2013 в 17:37.

  10. #289
    Member Аватар для kovdry
    Регистрация
    11.10.2010
    Адрес
    Запорожье
    Сообщений
    165
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Немного теории

    О процессе взаимодействия между процессором КР580ВМ80 и параллельным периферийным адаптером КР580ВВ55.

    Перед тем, как приступить к разработке программы по эмуляции ATMega32 в качестве ВВ55, необходимо углубиться в теорию обмена процессора ВМ80 информацией с периферией. Рассмотрим тайминги машинного цикла в сигналах, необходимых для освещения этого процесса. Остальные сигналы для упрощения опустим.
    Как известно машинный цикл состоит из тактов. Такт, это один период сигнала Ф1 или Ф2, который подает ГФ24 на процессор ВМ80, чтобы синхронизировать все процессы, которые в нем выполняются. Это своего рода пульс процессора или кардиограмма. Поэтому изобразим их на рисунке в верхней части. Еще нам нужны сигналы линий адреса A0-A15, шины данных D0-D7, сигналы чтения и записи - /RD и /WR и сигнал выборки ВВ55. Сигналы /RD и /WR нам особо важны, ведь они подключены ко входам внешних прерываний ATMega32 и они будут инициировать ответ микроконтроллера. Сигнал /WR подается прямо с вывода 18 процессора, а /RD формируется из сигнала DBIN с помощью логического вентиля DD5.1, который по сути инвертирует его. Сигнал /CS0 формируется из шины адреса с помощью дешифратора DD11 К555ИД7, если процессор хочет обратится к ВВ55.
    На рисунке 1 показаны тайминги процесса чтения информации из ВВ55 в ВМ80. Давайте рассмотрим его поподробнее.

    Рисунок 1


    Машинный цикл ВМ80 в общей сложности состоит из трех основных тактов, которые будут рассмотрены подробно. Остальные будут рассмотрены вскользь, поскольку не влияют на достижение нашей цели. В первом такте Т1, с которого начинается машинный цикл, в активной фазе сигнала Ф2 на шину адреса выводится адрес устройства. В нашем случае это ВВ55. На шину данных выводится слово состояния процессора. Поскольку это слово в РК не используется, не будем рассматривать его подробно. Чуть позже в конце такта Т1 активизируется сигнал /CS0, активацию выполняет дешифратор ИД7. И поскольку делает он это довольно быстро, сигнал /CS0 появляется еще в такте Т1, предоставляя периферийному устройству достаточно времени, для включения своих внутренних интерфейсов. В начале проектирования я хотел связать прерывание ATMega32 именно с этим сигналом, но потом передумал. ATMega32 и так работает достаточно быстро. Он может отреагировать на прерывание за доли микросекунды. А реакции на сигнал /CS0 не достаточно, необходимо еще ждать активацию сигнала /RD или /WR. Однако ждать в бесконечном цикле в подпрограмме обработки прерывания не разумно. В этом случае микроконтроллер надолго глохнет и пропускает важные события не входящие в обслуживание прерывания. И так для инициализации прерывания был выбран сигнал /RD. В такте Т2 процессор ВМ80 снимает с шины данных свое слово состояния, переключает ее на ввод и практически сразу активирует сигнал /RD, давая этим сигнал устройству (в нашем случае ВВ55), что оно может выдать на шину данных информацию со своего внутреннего регистра. На это процессор дает устройству целый такт. Такое время ( ~ 600 нс )необходимо не только для того чтобы устройство отреагировало на сигнал /RD, но и для стабилизации уровня напряжения и зарядки емкостей на линиях шины данных. В некоторых случаях, между вторым и третьим тактами могут вставляться такты ожидания Tw. Это происходит, если устройство не готово ответить и снимает активность сигнала RDYIN. В РК это происходит при установке пошагователя. В тактах ожидания на шинах никаких изменений не происходит, по этому не будем рассматривать их подробно. В такте Т3 процессор завершает обмен с устройством. Сначала процессор считывает данные в один из своих внутренних регистров, а затем прекращает обмен. Для этого в активной фазе сигнала Ф2 снимается активность сигнала /RD. Реагируя на это устройство должно снять свои сигналы с шины данных, желательно до окончания такта Т3. Иногда к машинному циклу добавляются такты Т4 и Т5, но никакой активности на шинах в этих тактах не наблюдается. Они необходимы процессору для внутренних пересылок. Подбивая итоги, отмечаю важность для нашего устройства на ATMega32 моментов отмеченных буквами А и Б. Эти моменты наступают при изменении уровня сигнала /RD. В точке А устройство должно выдать на шину данных информацию из своего внутреннего регистра. В точке Б устройству необходимо освободить шину данных. Необходимо также учитывать состояние других сигналов, представленных на рисунке. Перед выдачей информации на шину данных в точке А, необходимо в первую очередь проверить активность согнала /CS0. Процессор формирует циклы шины постоянно, но не все они относятся к нашему устройству, так что если сигнал /CS0 неактивен, то обслуживание прерывания необходимо прекратить. Дальше вопрос, какую информацию нужно выводить? ППА ВВ55 содержит 4 внутренних регистра для чтения, и перед выдачей информации необходимо проверить состояние линий А0 и А1 шины адреса. В точке Б так же необходимо проверить активность сигнала /CS0 и реагировать только если сигнал активен.



    Теперь рассмотрим процесс записи информации из ВМ80 в ВВ55

    Во многом процессы похожи, поэтому я буду рассматривать только отличия при записи. На рисунке 2 показаны тайминги при записи информации из ВМ80 в ВВ55. Посмотрим на его особенности


    Рисунок 2


    Такт Т1 ничем не отличается от аналогичного в процессе чтения, по этому не будем его рассматривать подробно. В такте Т2 после снятия с шины данных слова состояния процессора, туда сразу же выводится байт передаваемых в устройство данных. Однако сигнал /WR в активное состояние не переключается. Переключается он только в начале третьего такта Т3. Это сделано для того, чтобы дать время на установку уровней напряжений на линиях шины данных и на зарядку паразитных емкостей, присутствующих на линиях. После активации сигнала /WR устройство может считать информацию с шины данных в свой внутренний регистр. Снятие сигнала /WR происходит только в такте Т1 следующего машинного цикла или в такте Т4, если такой существует. Даже после снятия сигнала /WR напряжение на линиях шины данных продолжает оставаться без изменений, увеличивая достоверность считываемой устройством информации. Точки В и Г на рисунке 2 указывают моменты, в которые возможно считывание информации во внутренние регистры ВВ55. Но какую точку выбрать? Мне предполагается что обе точки одинаковы с точки зрения надежности считывания. Можно использовать только одну, например точку В, а точку Г игнорировать. Можно выполнять считывание с обеих точек, потом сравнивать результат, и сохранять только в случае равенства. Но увеличит ли это надежность? В цикле записи вероятность аппаратной коллизии низка, так как микроконтроллер все время держит линии подключенные к шине данных в состоянии входа, а они в этом состоянии имеют большое сопротивление и не влияют на напряжение в линии. В итоге нужно отметить, что цикл записи длиннее цикла чтения почти на один такт. Связано это с дополнительными гарантиями для считывания информации устройством.
    Все теоретические особенности освещены. Вперед! Писать программу!
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	RD_loop.jpg 
Просмотров:	832 
Размер:	45.1 Кб 
ID:	42678   Нажмите на изображение для увеличения. 

Название:	WR_loop.jpg 
Просмотров:	814 
Размер:	44.4 Кб 
ID:	42679  
    Последний раз редактировалось kovdry; 06.08.2013 в 17:57.

  11. #290
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проходили это много лет назад. Посчитай, сколько времени АТМега входит в прерывание и тебе откроется тайна.

Страница 29 из 38 ПерваяПервая ... 252627282930313233 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Радио-86РК: Дампы ПЗУ
    от Павел Рябцов в разделе Радио-86РК
    Ответов: 19
    Последнее: 21.05.2018, 18:17
  2. Радио-86РК: Видеовыход
    от m.d. в разделе Радио-86РК
    Ответов: 13
    Последнее: 21.05.2015, 08:19
  3. Радио-86РК: По страницам журнала "Радио"
    от Viktor2312 в разделе Радио-86РК
    Ответов: 79
    Последнее: 13.02.2014, 08:34
  4. Радио 86РК
    от Shnurkov в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 02.01.2009, 12:52

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •