Технический форум по робототехнике.
kbnn » 11 апр 2010, 19:25
Думаю что хорошая.
Подключил делитель на PORTF0
Пишу S40 02 03 01 p
S40 03 01 p
S41 09 p (не знаю почему 09 но так не сдвигается ответ)
ОТВЕТ
SR00000000000000B080P
Что то большое число получилось.
Добавлено спустя 12 минут 37 секунд:Vooon писал(а):Что-то не то. А если включить все линии? (т.е. S40 02 07 ff P)
Вообще какой-то специфичный глюк.
А какая прошивка сейчас стоит? Думаю стоит попробовать 0.7.5 и 0.8.0 (емнип сейчас 0.8.0?).
Прошивка 0.8.0.
avr123.nm.ru » 11 апр 2010, 20:31
Если незатруднид добавть подробные комментарии к твоим коммандам и ответам.
kbnn » 12 апр 2010, 21:48
Думаю что хорошая.
Подключил делитель на PORTF0
Пишу S40 02 03 01 p
S40 03 01 p
S41 09 p (не знаю почему 09 но так не сдвигается ответ)
ОТВЕТ
SR00000000000000B080P
Что то большое число получилось.
Комментарии:
Пишу S40 02 03 01 p
В первый регистр (02) записываю 03=100хb что значит внутренний источник напряжения и 8-ми битная точность.
и маску (01) т.к. делитель у меня весит на PORF0
Ответ:
SWAAAP
Пишу S40 03 01 p во второй регистр (03) записал номер канала (01) с которого начинается чтение
Ответ: SWAAP
Пишу S41 09 p читаю 9 байт
Ответ: SR00000000000000B080P
Вроде все правильно делаю то.
Правда вчера со временем ответ начал меняется
на SR00000000000000B040P
и SR00000000000000B0C0P
Я уж подумал что это напряжение падает. Но пока нет уверенности что АЦП корректно работает.
Добавлено спустя 16 минут:
Попробовал с 10 битным АЦП
Пишу S40 02 05 01 p
В первый регистр (02) записываю 05=101хb что значит внутренний источник напряжения и 10-ми битная точность.
и маску (01) т.к. делитель у меня весит на PORF0
Ответ:
SWAAAP
Пишу S40 03 01 p во второй регистр (03) записал номер канала (01) с которого начинается чтение
Ответ: SWAAP
Пишу S41 12 p читаю 12 байт
ответ:
SR000000000000000000000000000001B00294P
Добавлено спустя 3 минуты 13 секунд:
А вроде работает!!!
ответ становится
SR000000000000000000000000000001B00294P
SR000000000000000000000000000001B00293P
SR000000000000000000000000000001B00292P
SR000000000000000000000000000001B00291P
Вроде как уменьшается.
Только почему такое число большое?
=DeaD= » 12 апр 2010, 22:03
Так 10-битный АЦП при опоре 3.3В, а какая напруга на входе?
kbnn » 12 апр 2010, 22:40
На входе ~2.21V.
Подзарядил аккумуляторы - значение увеличилось. РАБОТАЕТ!
=DeaD= » 12 апр 2010, 23:51
Ну, с почином!

kbnn » 13 апр 2010, 22:08
Зато с дальномером все сразу получилось!
Но есть вопросы.
1. Вот показания АЦП при удаление препятствия от дальномера. Все правильно работает НО, что это за 1B а точнее 01 B0?
SR000000000000000000000000000001B0029C
SR000000000000000000000000000001B0020D
SR000000000000000000000000000001B00163
SR000000000000000000000000000001B00163
Причем она присутствовала и при замере напряжения в предыдущих опытах. (поэтому мне и показалось число слишком большим)
2. Как читать только 2 байта которые меня интересуют, а не 12 байт.
Пояснение: Если АЦП включен на PORTF1
команда S40 02 05 02p (внутренний источник, 10 битный АЦП, маска 00000010)
команда S40 03 02p (начать чтение со второго канала (тут правда не совсем понятно что такое КАНАЛ?))
команда S 41 12p (если писать не 12 а 2 (что казалось бы правилльно) то ответ со значением будет только 9-й по счету)
SR0000P
SR0000P
SR0000P
SR0000P
SR0000P
SR0000P
SR01B0P
SR0000P
SR02AFP
И опять присутствует паразитное 01B0
3.Как правильно опрашивать АЦП?
kbnn » 15 апр 2010, 12:39
Сможет кто нить ответить?
=DeaD= » 15 апр 2010, 12:49
Сегодня вечером гляну, если никто не ответит

avr123.nm.ru » 15 апр 2010, 14:25
kbnn писал(а):это за 1B а точнее 01 B0?
Калькулятор W-инды в инженерном режиме показывает что это десятичное число 432
=DeaD= » 15 апр 2010, 16:49
Кстати, а на портах ничего нет? Может просто заряд на выходе болтающегося в воздухе порта показывает

kbnn » 15 апр 2010, 21:30
Порты болтаются в воздухе. Но я же указал маску 02=00000010 а значит неважно что на других портах.
И попрежнему остается вопрос как прочитать только 2 байта? (В предыдущем сообщение подробно описана данная проблема)
=DeaD= » 15 апр 2010, 22:15
Ща попробуем всё это проделать
Добавлено спустя 35 минут 23 секунды:2kbnn: Вообще на моей версии прошивки всё получилось, а вы зачем 2-й канал пробовали читать? У вас же датчик на 1 канале?
У меня вот по такой команде:
S40 0D 01 S41 02 P
Нормально прочитало всё с порта АЦП, только в моей версии прошивки АЦП на регистрах 0C и 0D.
Попробуйте у себя:
S40 03 01 S41 02 P
должно работать.
avr123.nm.ru » 15 апр 2010, 22:26
Напиши пожалуйста коментарии к твоим командам по каждому байту желательно.
=DeaD= » 15 апр 2010, 22:54
Так в инструкции же есть:
страница 17 инструкции по OR-AVR-M128-S писал(а):Пример 1*. Включение PORTF.2 в 8-битный режим АЦП с внутренним опорным напряжением.
<S 40 0C 03 04 P
>SWAAAP
S40 0C 03 04 - отправим в устройство 0x40 номер регистра 0C и два байта конфигурации 03 – режим внутреннего источника опорного напряжения, 8 бит, 0x04 — включить АЦП только по 2 линии порта F, P - конец запроса. Ответ: SW - начали запись в устройство, AAA - подтверждения записи 3 байт в устройство, P - конец ответа.
Пример 2*. Читаем 0-3 каналы АЦП.
<S 40 0D S 41 04 P
>SWASRFFD7D7D6P
S40 0D - отправим в устройство 0x40 номер регистра 0D, после чего S 41 04 – прочитаем теперь из устройства четыре байта значений из АЦП, P - конец запроса. Ответ: SW - начали запись в устройство, A - подтверждения записи 1 байта в устройство, SR<aa><bb><cc><dd> - возвращенные значения на входах АЦП, P - конец ответа.