Обмен данными при прошивке контроллера

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
WolfenShtein
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Ср дек 05, 2012 18:12:18

Обмен данными при прошивке контроллера

Сообщение WolfenShtein »

Доброго времени суток, друзья! Собственно, перейду сразу к делу. Меня давно жгёт вопрос: как работает JDM-программатор? Если конкретнее - как через него идёт обмен данными между RS232 и лапками контроллера DATA, CLOCK, Vpp? Вот у меня такая вот схемка программатора EXTRA PIC, которую, наверно, большинство знают. Линия DATA завязана через MAX232 на лапку DTR, линия CLOCK - на DSR+RTS, напряжение программирования берётся с TX, CTS идёт обратно к терминалу. Вопрос: в каком порядке передаются сигналы с RS232? Например: нам нужно передать бит "1". Как при этом формируются по сути служебные (кроме TX) сигналы COM-порта?
Про эти служебные лапки я знаю следующее:
DTR - Data Terminal Ready - выход, который говорит о том, что у терминала есть данные для передачи.
DSR - Data Set Ready - вход, который говорит, что устройство на другом конце линии готово передавать данные.
RTS - Request To Send - выход запроса на передачу.
CTS - Clear To Send - Разрешение Передатчику передавать данные.
TX - собственно передача данных.
При нуль-модемном соединении обмен данными, как я понимаю, такой: передатчик, когда хочет что-то передать, выставляет по DTR сигнал о наличии данных на передачу, приёмник посылает ему на вход DSR сигнал о своей готовности к обмену. Передаттчик тогда уже конкретно спрашивает, можно ли передать пакет данных установкой запроса по RTS, а приёмник ему отвечает, что да, давай - установкой CTS. Без сигнала на входе CTS передатчик, как было где-то указано, не может передавать данные. Поэтому, как я понял, в заглушке для порта DTR соединяется с DSR, а RTS - с CTS. Ну и TX с RX соответственно.
В JDM, судя по всему, этот принцип используется как-то по своему. Пробежав мутным взглядом по схемке я рискнул предположить следующее. Передача бита начинается с установки DTR, что формирует фронт импульса лог.1 на линии DATA. Одновременно (или чуть позже - вопрос) устанавливается линия RTS, сигнал с которой зачем-то идёт на DSR. Этот сигнал формирует фронт сигнала CLOCK. Практика подсказывает, что он должен формироваться позднее сигнала DATA и заканчиваться раньше. А также сигнал с DTR поступает обратно в порт на вход CTS. Исходя из того, что я нашёл в нете по протоколу RS232, только после этого на лапке TX сформируется напряжение, которое здесь подаётся на вход программирования. Вот как я понял эту схэму. Но такое чувство, что я ошибаюсь. Подскажите, пожалуйста, кто эту тему знает, как это всё работает? Четвёртую ночь уже заснуть толком не могу Я уже не спрашиваю, на кой там инверторы стоят после MAX232 - у неё они внутри должны быть по даташиту.
Вложения
EXTRA PIC.rar
(220.88 КБ) 193 скачивания
Реклама
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Обмен данными при прошивке контроллера

Сообщение urry »

Реклама
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обмен данными при прошивке контроллера

Сообщение Alexeyslav »

При этом порт собственно не выполняет свою функцию, программа дергает ножками чисто по своему усмотрению. Даже TX можно перевести в произвольное состояние, а на RX уловить установленный уровень, не напрямую управляя этими выводами. Часть из них вообще используется исключительно для определения наличия программатора.
WolfenShtein
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Ср дек 05, 2012 18:12:18

Re: Обмен данными при прошивке контроллера

Сообщение WolfenShtein »

А общение контроллера с прогой-прошивалкой, я так понимаю, одностороннее? Т.е. контроллер работает только на приём? По схеме (см. вложение) я вижу, что простейшая проверка на ошибку обмена там идёт через лапку CTS, так ведь?
Вложения
EXTRA PIC.rar
(220.88 КБ) 171 скачивание
Реклама
Эиком - электронные компоненты и радиодетали
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обмен данными при прошивке контроллера

Сообщение Alexeyslav »

Нет конечно, как он по твоему прошивки считывает? Там еще надо ожидать завершения операций по сигналу с контроллера(например окончание программирования ячейки, окончание процесса стирания), можно конечно и в одну сторону задержками с запасом, но будет медленнее и менее гарантированно.
Реклама
WolfenShtein
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Ср дек 05, 2012 18:12:18

Re: Обмен данными при прошивке контроллера

Сообщение WolfenShtein »

Так, хорошо. Тогда по схеме выходит, что терминал, когда хочет принять что-то от контроллера, должен статус DTR скинуть в ноль. Линия CLOCK при этом остаётся однонаправленной (в сторону контроллера), т.е. общение синхронное. Так? А у тебя случайно нет чего-нить, где описан сам протокол программирования контроллера, например, того же Пика? Чтоб понятно было, какие там команды вначале шлются, какие данные? Я на эту тему просто сурьёзно подсел, очень хочется разобраться. Был бы крайне благодарен :beer:
Реклама
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обмен данными при прошивке контроллера

Сообщение Alexeyslav »

На сайте микрочипа есть эта документация, когда-то тоже интересовался... но потом подумал, а зачем оно мне надо. Да и сейчас, уже STM32 на подходе.
WolfenShtein
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Ср дек 05, 2012 18:12:18

Re: Обмен данными при прошивке контроллера

Сообщение WolfenShtein »

На сайте есть? Эт хорошо, буду копать. А что STM32 за зверёк?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Обмен данными при прошивке контроллера

Сообщение Alexeyslav »

http://www.compel.ru/2010/07/12/stm32f1 ... 2%80%93m3/

На основе высокопроизводительного ARM-ядра... и все это по цене контроллеров. Отладочная платка сразу включает в себя и программатор.
WolfenShtein
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Ср дек 05, 2012 18:12:18

Re: Обмен данными при прошивке контроллера

Сообщение WolfenShtein »

Круто! Спасибо, буду черепить :))
Ответить

Вернуться в «Разные вопросы по МК»