Arduino и RZ код
- Войдите на сайт для отправки комментариев
Пнд, 15/01/2018 - 17:33
Добрый день, уважаемые форумчане.
Требуется помощь знающих людей в непонятном для меня вопросе. Необходимо передать данные с адруино на устройство в формате RZ кода (Zero return). В данном случае код униполярный, логика CMOS(+5В/0,1). Может есть у кого, или кто может написать, пример отправки данных. Например последовательность 10100111.
Заранее благодарен
Добрый день, уважаемые форумчане.
Требуется помощь знающих людей в непонятном для меня вопросе. Необходимо передать данные с адруино на устройство в формате RZ кода (Zero return). В данном случае код униполярный, логика CMOS(+5В/0,1). Может есть у кого, или кто может написать, пример отправки данных. Например последовательность 10100111.
Заранее благодарен
Не, там, вроде как три уровня нужно. Простым ногодрыгом не реализовать.
andrey_kh, а как в Вашем RTZ устройстве ноль кодируется? В тех, что я видел (а видел я всего два) нулю соответствовало напряжение, равное половине напряжения единицы. Т.е. было три уровня: 0В, U0 и U1=2xU0.
У Вас так?
Не, там, вроде как три уровня нужно. Простым ногодрыгом не реализовать.
Ну, почему? Пины-то у контроллера tri-state!
Не, там, вроде как три уровня нужно. Простым ногодрыгом не реализовать.
Ну, почему, пины-то у контроллера tri-state
Глянул по диагонали. Т.е. вывод подключить через эквивалентный резистивный делитель и чередовать OUTPUT_HIGH > INPUT > OUTPUT_LOW для нуля и OUTPUT_LOW > INPUT > OUTPUT_HIGH для единицы?
P.S. вижу, что посложнее кодирование, но принцип такой?
ПС:https://ru.wikipedia.org/wiki/RZ
В общем простым дрыганием получается передать только высокий уровень, низкий уровень не видит. Ещё и по микросхеме, которая принимает сигнал полный капец, инфы почти нет (SM16188). Судя по китайскому даташиту она видит только 2 положения - высокое и низкое.
ПС:https://ru.wikipedia.org/wiki/RZ
так пробовал, видит только высокое положение
А чем вы смотрите. Смотреть надо аналоговым входом
А чем вы смотрите. Смотреть надо аналоговым входом
вы привели пример биполярного варианта RZ кода
вы привели пример биполярного варианта RZ кода
А как вы выход подключаете к сигнальной линии (просто интересно)?
Глянул по диагонали. Т.е. вывод подключить через эквивалентный резистивный делитель и чередовать OUTPUT_HIGH > INPUT > OUTPUT_LOW для нуля и OUTPUT_LOW > INPUT > OUTPUT_HIGH для единицы?
Думаю, нет, Z-state - для 0, а LOW - разделитель. Делитель, да эквивалентный и, если у устройства вход не высокоимпедансный, то поставить ещё поаторитель напряжения после средней точки делителя.
По крайней мере в моих устройствах было так.
Но ТС пока не ответил на мой вопрос, как у него.
ТС - Вы собираетесь отвечать? Как у Вас кодируется 0?
Простите, перепутал.
Дайте ссылку на даташит. Если у неё два уровня, то это не RTZ
Может у Вас наоборот NRZ (Non Return to Zero)?
Тогда действительно два уровня, но надо время битового интервала (BT).
Нет, не перепутал, сейчас скину данные
Простите, перепутал.
Дайте ссылку на даташит. Если у неё два уровня, то это не RTZ
Может у Вас наоборот NRZ (Non Return to Zero)?
Тогда действительно два уровня, но надо время битового интервала (BT).
Вот все имеющиеся данные.
https://yadi.sk/i/bdcz5o3R3RUmMh
http://chinaasic.com/product.jsp#item=leddisplay#style=25
Микросхема SM16188B
Я оставил запрос на сайте производителя (http://www.chinaasic.com/support.jsp#item=askforTech). Посмотрим, ответят ли и что именно.
Я оставил запрос на сайте производителя (http://www.chinaasic.com/support.jsp#item=askforTech). Посмотрим, ответят ли и что именно.
спасибо, напишите, если производитель даст информацию
Ясно? 1 передается как 10, ноль - как 00. Это часто используется.
Не путать с Манчестером, где 0 и 1 - 01 и 10 (или наоборот)!!!!!
Ясно? 1 передается как 10, ноль - как 00. Это часто используется.
Не путать с Манчестером, где 0 и 1 - 01 и 10 (или наоборот)!!!!!
Большое спасибо. Попробовал управлять через ПЛИС алтера, всё отлично работает на 1 МГц. Теперь вопрос, не могли бы Вы подсказать, как это реализовать на wiring? Побитную отправку на частоте 1 МГц в формате 10 и 00
Влад попал :)
Влад попал :)
Гы! Не-а! Я просто не стану кодить. ;)
Я совет дам: SPI на 2МГц, предваительно перекодировать 1 в 10 и 0 в 00. Любой доугой способ на AVR съест все ресурсы.
Или писать блокирующий код - тут вроде как все совсем очевидно.
Влад попал :)
Гы! Не-а! Я просто не стану кодить. ;)
Я совет дам: SPI на 2МГц, предваительно перекодировать 1 в 10 и 0 в 00. Любой доугой способ на AVR съест все ресурсы.
Или писать блокирующий код - тут вроде как все совсем очевидно.
и на том спасибо
Влад попал :)
Гы! Не-а! Я просто не стану кодить. ;)
Я совет дам: SPI на 2МГц, предваительно перекодировать 1 в 10 и 0 в 00. Любой доугой способ на AVR съест все ресурсы.
Или писать блокирующий код - тут вроде как все совсем очевидно.
если можно, то дайте ссылку на статью о блокирующем коде
Sorry, man, but my russian stickers on my keybord are completely swept off. So I'll use english, OK?
I suppose the data to be sent are in the byte d2s and you need to send all 8 bits of them, OK?
Let us use PORTD and pin PD4.
Sorry again!!! russkie bukvy sterlis na kuhne ;) ;)
Большое спасибо, сегодня попробую
В мастерской у меня нормальная клавиатура, а не этот китайский моющийся кошмар, поэтому снова "здравствуй родной язык"!
Я примерно подобрал зарержки на логанализаторе. пробуй.
Вот вариант :
Вот картинка с логаналайзера:
при подборе задержек в обычной, т.е. блокирующей, передаче длительность 0 и 1 всегда будут немного разные. Выровнять можно только на ассемблере.
вот так лучше.. и ассемблера не нужно.
Влад попал :)
Гы! Не-а! Я просто не стану кодить. ;)
Это утро было... время трезвости и философского взгдяда на себя в мире и мир в себе...
А так да... в глубине... руки в кровь стереть можно, пока докопаешься... ;)
вот так лучше.. и ассемблера не нужно.
Через блокировку я не особо понял, как реализовать это чудо, так что решил попробовать через SPI. Делаю всё как Вы и сказали, поставил делитель такта 8 (рабочая частота 16), отправляю последовательность бит 10101010, что по идеи должно быть понято микросхемой как 1-1-1-1, но в итоге результата нет. Но, если подключить ко входу синхронизации (clock), то микросхема видит последовательность единиц. Кстати, тот же самый эффект возникает при передачи данных через shiftOut.
P.S. Не кидайтесь тапками за непонимание, так как чудо wiring установил и начал пробовать совсем недавно
1. С SPI у тебя, похоже, не получится. У SPI в нормальном состоянии - 1. А тебе нужно 0, то есть нужно инвертировать сигнал. Если знаешь, через какую букву слова "транзист?р" и "паяльн?к" пишутся - то попробуй. И смотри на лог.аналайзер или осцилограф, что там у тебя есть?
2. Стесняюсь спросить: а что такое wiring? То есть я догадываюсь, что ты так хочешь назвать то, на чем написана программа для Ардуино.
Боюсь тебя удивить, но для Ардуино пишут на обычном С++. А "wiring" - это наименование библиотеки с самыми простыми функциями для работы с внешними (и внутренними) устройствами контроллера. Использовать ее, по крайней мере частично, весьма удобно.
------------------
Какой-то долбо@б, на этом сайте, когда-то давно написал, что wiring - это язык. Так вот это чушь собачья. Поскольку авторы сайта НИКАК не связаны с "гуру" форума, то исправить этот бред невозможно.
Какой-то долбо@б, на этом сайте, когда-то давно написал, что wiring - это язык.
Скорее не долбо@б, а википедик. А вообще, этот бред имеет очень широкое распространение (википедия, научёбе, амперка)
Методом тыка удалось победить. Ответ оказался прост - китайское чудо единицу кушает как 1110, а ноль как 1000. Всем большое спасибо. Отдельное спасибо wdrakula
P.S.Победа одержена с использованием SPI
P.P.S. Под wiring понимаю всякую ересь, которая отличает данную оболочку от класического C++
круто! нихрена бы не догадался!
Да! Чуть не забыл, публикуй ТУТ код, который работает с текстом, вроде "код для миркросхемы ....такой-то... применяемой в китайской матрице 4 на 8" или где-там-она используется?
Это чтобы Яндех и Гугль проиндексировали и потом люди могли найти решение.
Да это кодом то сложно назвать. Просто испытание. Завтра привяжу всё это дело к Serial и dll для отправки монохромных BMP нарисую. Всё до кучи выложу. А пока это выглядит вот так)
Результат (только цикл до 512)
Доброго дня! Столкнулся с этими модулями тоже. Подскажите, а как выполняли подключение? К каким пинам? Хаб12 не стандартный.
Если тут spi то должны быть линии sclk, mosi? cs? Как мне тоже подключиться?
Все, я все раскопал. У меня есть доступ к полной документации драйверов и модулей. Теперь будем делать кастомный контроллер.
Не поделитесь информацией?
Напишите мне на почту demozz@mail.ru