|
ATmega2561: соединить с ЦАПом ТС1230 по I2С, прописывание внешнего устройства по I2C |
|
|
|
Nov 12 2010, 08:29
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Пытаюсь уже 3-й день в AVRStudio соединить AtMega 2561 с ЦАП ТС1320 по I2c! Но на выходе так ничего и не обнаруживаю. Может что-то не так задаю( Помогите советом! Спасибо!
Кусок осн программы привожу ниже:
ldi r18, 0xD0 sts XMCRA, r18 ; Enable External Memory
ldi r18, 0x80 sts XMCRB, r18 ; Whole PortC for XRAM
ldi r16, 0x91 sts TWAR,r16 ; Slave address to TWAR
ldi START, 0xF8
;-----------------I2с sending -------------------------------------------
ldi r16,(1<<TWINT)|(1<<TWSTA)|(1<<TWEN) sts TWCR, r16 ; Send s-t-a-r-t condition
wait1: lds r16,TWCR sbrs r16,TWINT rjmp wait1 ; Wait for START bit to be transmitted
ldi r16, 0x90 sts TWDR,r16 ; Load Address in TWDR ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit
wait2: lds r16,TWCR sbrs r16,TWINT rjmp wait2 ; Wait for ADRESS to be transmitted
ldi r16, 0x00 sts TWDR,r16 ; Load 00h - command for TC1320 to send next byte as Data ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit
wait5: lds r16,TWCR sbrs r16,TWINT rjmp wait5 ; Wait for ADRESS to be transmitted
ldi r16, 0x3B sts TWDR,r16 ; Load DATA in TWDR ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit in TWCR to start transmittion of DATA
wait3: lds r16,TWCR sbrs r16,TWINT rjmp wait3 ; Wait for DATA to be transmitted
ldi r16,(1<<TWINT)|(1<<TWEN)|(1<<TWSTO) sts TWCR, r16 ; Send s-t-o-p condition
nop
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 31)
|
Nov 12 2010, 10:04
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(kovigor @ Nov 12 2010, 12:52)  Нескромный вопрос. Как электронщик электронщику. Вы хоть осциллографом на шину-то вставали ? Посылки пробовали захватить ? Что он показывает ? А так - первым делом проверьте правильность адреса, по которому вы обращаетесь (помните, что младший разряд адреса задает режим доступа R/W), а также наличие PULLUPs на линиях шины ... Мне собственно нужен ЦАП вместе с инвертирующим Операц Усилителем для получения отрицательного аналог напряжения для управления контрастностью на LCD. Осциллографом вставал на шину, посылки захватил: и адреса и данные. Видно четко. Адрес устройства ТС 1320 1001 000 прописал, младший разряд адреса задает режим доступа R/W - т.е. 0, получилось 10010000 - (0х90h) Pull up подвешены. Но уровень на выходе не изменяется..(
|
|
|
|
|
Nov 12 2010, 10:26
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(kovigor @ Nov 12 2010, 14:11)  ЦАП подтверждает обращение к нему (ACK вводит) ? А вот это я не знаю как проверять. Даташит Атмеги говорит после моего цикла проверки отправки адреса wait2: .. rjmp wait2 ; Wait for TWINT flag set. This indicates that the SLA+W has been transmitted, and ACK/NACK has been received проверять ACK следущим: lds r16, TWSR andi r16,0xF8 cpi r16, MT_SLA_ACK brne ERROR ; Check value of TWI Status Register. Mask Prescaler bits. If status different from MT_SLA_ACK go to the ERROR Во первых не понял что же такое MT_SLA_ACK? Во вторых подумал это лишнее,т.к. мой цикл wait2 и так оповещает меня установкой TWINT флага о том, что ACK передан.
|
|
|
|
|
Nov 12 2010, 10:34
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(Slavast @ Nov 12 2010, 14:26)  А вот это я не знаю как проверять. ... А что же вы тогда осциллографом-то смотрели ??????? ЦАП должен подтвердить обращение к нему, опустив в ноль линию данных шины I2C в ответ на 9-й тактовый бит, вводимый вашей АТМЕГой. Если этого нет, говорить вообще не о чем. Поищите в даташите на ЦАП (или на любую ИС памяти вроде 24LC16) слово ACK или ACKNOWLEDGE, и разберитесь, что же все-таки должно быть на шине ... P.S. Вот, я сегодня добрый: " 3.5 Acknowledge Each receiving device, when addressed, is obliged to generate an acknowledge after the reception of each byte. The master device must generate an extra clock pulse which is associated with this acknowledge bit. The device that acknowledges, has to pull down the SDA line during the acknowledge clock pulse in such a way that the SDA line is stable LOW during the HIGH period of the acknowledge related clock pulse. Of course, setup and hold times must be taken into account. ... "
|
|
|
|
|
Nov 12 2010, 10:38
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Не увидел вот это - есть? ;************************************************** ;* ;;/Init Bit Rate fot TWI;;* * ;************************************************** ldi temp,SYSCLK/(2*SCL_Freq)-8 ;TWI Bit Rate Register - TWBR sts TWBR,temp ;+ Частота TWI=384 Кгц
Да и протокол общения с DAC Вы не выполнили до конца , он не знает что ему делать и к тому же похоже вообще спит. Разберитесь с командами , которые необходимо послать , что бы он заработал.
И вот это всё сведите в одну подпрограмму
XXXX: lds r16,TWCR sbrs r16,TWINT rjmp XXXXX
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 12 2010, 10:58
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(kovigor @ Nov 12 2010, 14:34)  А что же вы тогда осциллографом-то смотрели ??????? ЦАП должен подтвердить обращение к нему, опустив в ноль линию данных шины I2C в ответ на 9-й тактовый бит, вводимый вашей АТМЕГой. Е Осциллографом вижу четко посылку байта адреса, байта данных. Значит ACK приходит по умолчанию. Все в том же цикле wait2. Вопрос тогда в том - как мне это в программе задать, чтоб я в каком то порту или регистре увидел значение бита АСК? Нужно ли мне перенастраивать TWI на прием этого АСК, а потом снова на передачу? Цитата(ILYAUL @ Nov 12 2010, 14:38)  Не увидел вот это - есть? ;************************************************** ;* ;;/Init Bit Rate fot TWI;;* * ;************************************************** ldi temp,SYSCLK/(2*SCL_Freq)-8 ;TWI Bit Rate Register - TWBR sts TWBR,temp ;+ Частота TWI=384 Кгц Есть, только TWI получается 490 кГц: SCL = CPU(16 Мгц)/ (16+2*TWBR(0xFFh)*4в степени TWPS(задал 3)) Хотя пишут что больше 400кГц TWI не работает(.. Может через прерывания нужно осуществлять мою программу, где будет проводится проверка на окончание передачи данных?
|
|
|
|
|
Nov 12 2010, 11:08
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Slavast @ Nov 12 2010, 13:58)  SCL = CPU(16 Мгц)/ (16+2*TWBR(0xFFh)*4в степени TWPS(задал 3))
Хотя пишут что больше 400кГц TWI не работает(..
Может через прерывания нужно осуществлять мою программу, где будет проводится проверка на окончание передачи данных? А он и не работает , у него максимум 100 кгц. DATA SHEET читали? ldi temp,SYSCLK/(2*SCL_Freq)-8 ;TWI Bit Rate Register - TWBR sts TWBR,temp ;+ Частота TWI=384 Кгц где в Вашем случае, введите эти две строчки в код , он сам посчитает .EQU SYSCLK = 16000000 ;+ Системная частота .EQU SCL_Freq = 100000 ;+ Частота TWI И разберитесь с тем о чём написал в предыдущем посте т.е снова прочтите DS, а уж потом осциллограф
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 12 2010, 11:48
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ILYAUL @ Nov 12 2010, 15:08)  А он и не работает , у него максимум 100 кгц. DATA SHEET читали?
ldi temp,SYSCLK/(2*SCL_Freq)-8 ;TWI Bit Rate Register - TWBR sts TWBR,temp ;+ Частота TWI=384 Кгц
где в Вашем случае, введите эти две строчки в код , он сам посчитает
.EQU SYSCLK = 16000000 ;+ Системная частота .EQU SCL_Freq = 100000 ;+ Частота TWI
И разберитесь с тем о чём написал в предыдущем посте т.е снова прочтите DS, а уж потом осциллограф DS еще раз прочту. Может он в режиме Sleep по умолчанию?... И надо задавать отдельно еще в регистр управления DAC на пробуждение. А вот по поводу частоты не совсем понятно. В TWBR загоняю 11111111 A в биты TWPS1:TWPS0 регистра TWSR загоняю 1:1 - т.е. Prescaler bits равен 64. Вот и получаю свое число. Формула из Даташита: Формула в даташите ATMega: Цитата(Slavast @ Nov 12 2010, 15:22)  Формула в даташите ATMega: С частотой разобрался! Получал то не 490кГц, а 490 Гц!!!! В голове явно опилки! В TWPS 0:0. В TWBR (0x12h) И ScL четко получается 100kHz.
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 12 2010, 12:06
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Slavast @ Nov 12 2010, 14:48)  Формула в даташите ATMega: Вам надо посчитать не частоту с которой Вы будете работать , Вы ее и так знаете , чего ее считать , а значение регистра TWBR , которое надо в него загнать , что бы получить Вашу частоту TWI при Вашей тактовой частоте. Т.е приведённую в DS Atmel формулу надо преобразовать , для расчёта TWBR , вот ее то я Вам и дал - осталось только подставить Ваши значения - тоже написал, и всё вставить в код программы , где нибудь в инит После, этого ради любопытсва , можете посмотреть значение TWBR- должно быть 0x48 Я насчитал очень поверхностно ( времени пока нет) , приблизительно 4 команды , которые необходимо загнать в DAC , что бы он начал работать.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 12 2010, 12:18
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ILYAUL @ Nov 12 2010, 16:06)  Вам надо посчитать не частоту с которой Вы будете работать , Вы ее и так знаете , чего ее считать , а значение регистра TWBR , которое надо в него загнать , что бы получить Вашу частоту TWI при Вашей тактовой частоте. Т.е приведённую в DS Atmel формулу надо преобразовать , для расчёта TWBR , вот ее то я Вам и дал - осталось только подставить Ваши значения - тоже написал, и всё вставить в код программы , где нибудь в инит После, этого ради любопытсва , можете посмотреть значение TWBR- должно быть 0x48 Я насчитал очень поверхностно ( времени пока нет) , приблизительно 4 команды , которые необходимо загнать в DAC , что бы он начал работать. Совершенно верно! В конечном перерасчете у меня тоже получилось 0х48h! Какие же команды надо загнать в DAC для его работы?
|
|
|
|
|
Nov 12 2010, 12:46
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Slavast @ Nov 12 2010, 15:18)  Какие же команды надо загнать в DAC для его работы? Вообще-то название микросхем принято писать англицкими буковками, на будущее 1. Command Set -01 2 Включить DAC 3. Command Set 00 4. Данные для Data register приблизительно так
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 12 2010, 13:16
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ILYAUL @ Nov 12 2010, 16:46)  1. Command Set -01 2 Включить DAC 3. Command Set 00 4. Данные для Data register приблизительно так Спасибо огромное!) Сейчас будем пробовать прописывать! И еще вопрос - нужно ли ставить Микроконтроллер в режим Receiver, когда DAC свой выставляет девятый подтверждающий Acknowledgment бит ? Цитата(Slavast @ Nov 12 2010, 17:06)  И еще вопрос - нужно ли ставить Микроконтроллер в режим Receiver, когда DAC свой выставляет девятый подтверждающий Acknowledgment бит ? Или просто проверяя регистр статуса TWSR проверять пришел ли этот бит (По идее вроде как только ACK бит приходит, статус меняется в TWSR на значение в таблице Даташита)?
|
|
|
|
|
Nov 15 2010, 07:39
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ARV @ Nov 12 2010, 19:03)  регулируемое отрицательное напряжение в пределах 0...-5В легко получается при помощи ШИМ и конденсатора с парой диодов... Иидея хорошая. Но схема уже готова и я не могу ее изменить. Цитата(ILYAUL @ Nov 12 2010, 15:46)  1. Command Set -01 2 Включить DAC 3. Command Set 00 4. Данные для Data register приблизительно так Получается совсем что-то непонятное. Соблюдая правила пакета TC1320 и вышеуказанный совет: 1. Command Set -01 2 Включить DAC 3. Command Set 00 4. Данные для Data register т.е. отсылая 2 пакета, в первом из которых мы разрешаем Normal Mode, a во втором собственно отсылая данные - на выходе ничего нет. А если использовать один пакет в котором мы сразу заносим Command Set 00 и данные для Data register (т.е. подразумевая что изначально TC1320 НЕ в спящем режиме) на выходе имеем немного пониженный уровень сигнала с малыми синусоидальными колебаниями (может их вносит Операц усилит??). В каком режиме TC1320 изначально - в даташите не указывается. help!?!?!
|
|
|
|
|
Nov 15 2010, 12:30
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Slavast @ Nov 15 2010, 10:39)  Иидея хорошая. Но схема уже готова и я не могу ее изменить.
В каком режиме TC1320 изначально - в даташите не указывается.
help!?!?! А ,если прочитать конфиг и посмотреть в каком он состоянии изначально. Хотя это и не надо И Ваш код в архивном виде ,плиз А этот проверьте.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 16 2010, 13:01
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
QUOTE (ILYAUL @ Nov 15 2010, 16:30)  И Ваш код в архивном виде ,плиз Пардон, а что это за код? TC1320+Atmega2561: Наблюдается очень интересная но совсем непонятная вещь, из-за которой уже 5-й день бьюсь головой о стенку. Первый байт - старт бит отсылается нормально, видно на осциллографе; второй байт - адрес отсылается тоже нормально( но если туда прописать не 0x90, т.е. адрес TC1320 - ТС1320 поднимает SDA в высокий уровень и не воспринимает вообще ничего!!!!!!); а вот в начале пересылки 3 байта данных после приема от ТС1320 ACK идет маленький скачек в пол высокого уровня и что бы я ни записывал, на осциллографе получается сООвсем не та цифра которую я заношу. Что это может быть за скачок и почему он препятствует мне продолжать дальше? спасибо. CODE .include "m2561def.inc" .device ATMEGA2561
;--çàäàåì èìåíà ðåãèñòðàì------------------ .def temp = r22 ;ðàáî÷àÿ ïåðåìåííàÿ
; ---------------Inizialization ------
ldi r16,high(RAMEND) ; Íà÷àëî out SPH,r16 ; îñíîâíîé ïðîãðàììû ldi r16,low(RAMEND) out SPL,r16
;------ Port Init--------
ldi r17, 0x00 out PINE, r17 ; äåàêòèâèðóåì Pull-up ðåçèñòîðû
ldi r17, 0x08 out DDRE, r17 ; ïîðò íà âûâîä äëÿ àêòèâàöèè SHDN íà ADM222
ldi r17, 0x00 out PINB, r17 ; äåàêòèâèðóåì Pull-up ðåçèñòîðû
ldi r17, 0x60 out DDRB, r17 ; ïîðò íà âûâîä äëÿ ñâåòîäèîäîâ
ldi r17, 0x00 out PINA, r17 ; äåàêòèâèðóåì Pull-up ðåçèñòîðû
ldi r17, 0xFF out DDRA, r17 ; ïîðò íà âûâîä äëÿ ñâåòîäèîäîâ ldi r17, 0xFF out PINC, r17 ; äåàêòèâèðóåì Pull-up ðåçèñòîðû
ldi r17, 0xFF out DDRC, r17 ; ïîðò íà âûâîä äëÿ ñâåòîäèîäîâ
ldi r17, 0x00 ; âñå îñòàëüíûå íà ââîä out DDRD, r17 out DDRF, r17 out DDRG, r17 ldi r26,0x40 ldi r27,0x20
ldi r18, 0xD0 sts XMCRA, r18 ; Enable External Memory
ldi r18, 0x80 sts XMCRB, r18 ; Whole PortC for XRAM
ldi r16, 0x91 sts TWAR,r16 ; Slave address to TWAR
ldi r18, 0xC6 sts TWBR, r18 ; Bit Rate 0x48 - 100khz , 0xC6 - 10kHz
ldi r18, 0x00 sts TWSR, r18 ; Prescaler bits
;-------------1 Start packet-------------------------------------------------------
ldi r16,(1<<TWINT)|(1<<TWSTA)|(1<<TWEN) sts TWCR, r16 ; Send s-t-a-r-t condition
wait1: lds r16,TWCR sbrs r16,TWINT rjmp wait1 ; Wait for START bit to be transmitted
lds r16, TWSR andi r16,0xF8 cpi r16, 0x08 brne wait1 ; Check TWSR if START was sent
;------------2 send Address-----------------
ldi r16, 0x90 sts TWDR,r16 ; Load Address in TWDR ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit
wait2: lds r16,TWCR sbrs r16,TWINT rjmp wait2 break ; Wait for ADRESS to be transmitted
lds r16, TWSR andi r16,0xF8 cpi r16, 0x18 brne wait2 ; Check TWSR if ADRESS was sent
out PORTB, r27
;----------------3 send Command--------------------------------
lds r16, 0x01 sts TWDR,r16 ; Load 00 Command ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit
wait77: lds r16,TWCR sbrs r16,TWINT rjmp wait77 ; Wait for DATA to be transmitted
lds r16, TWSR andi r16,0xF8 cpi r16, 0x28 brne wait77 ; Check TWSR if Command was sent
;----------------4 send Data--------------------------------------- jmp error
lds r16, 0x00 sts TWDR,r16 ; Load 1F to DAC as Data ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit
wait88: lds r16,TWCR sbrs r16,TWINT rjmp wait88 ; Wait for DATA to be transmitted
lds r16, TWSR andi r16,0xF8 cpi r16, 0x28 brne wait88 ; Check TWSR if ADRESS was sent
;out PORTB, r26
error: out PORTB, r27
ldi r16,(1<<TWINT)|(1<<TWEN)|(1<<TWSTO) sts TWCR, r16 ; Send s-t-o-p condition
Сообщение отредактировал IgorKossak - Nov 16 2010, 17:02
Причина редактирования: Когда научитесь тэгами пользоваться?
|
|
|
|
|
Nov 16 2010, 13:18
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Slavast @ Nov 16 2010, 16:01)  Пардон, а что это за код? Я Вам написал Цитата(Slavast @ Nov 16 2010, 16:01)  ;----------------4 send Data--------------------------------------- jmp error
lds r16, 0x00 sts TWDR,r16 ; Load 1F to DAC as Data ldi r16, (1<<TWINT)|(1<<TWEN) sts TWCR, r16 ; Clear TWINT bit
wait88: lds r16,TWCR sbrs r16,TWINT rjmp wait88 ; Wait for DATA to be transmitted
lds r16, TWSR andi r16,0xF8 cpi r16, 0x28 brne wait88 ; Check TWSR if ADRESS was sent
;out PORTB, r26
error: out PORTB, r27
ldi r16,(1<<TWINT)|(1<<TWEN)|(1<<TWSTO) sts TWCR, r16 ; Send s-t-o-p condition НЕ правильно - не по протоколу И выкладывайте в архивах коды - так проще смотреть
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 16 2010, 13:21
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ILYAUL @ Nov 16 2010, 17:18)  НЕ правильно - не по протоколу Почему не по протоколу?
|
|
|
|
|
Nov 16 2010, 13:45
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Еще не ас в библиотеках: а что означает .include "macros_v1.72.asm" и .include "1Init_MCU.asm" Цитата(ILYAUL @ Nov 16 2010, 17:37)  Потому, что согласно DS любое обращение к регистрам начинается со START-SLAVEADRESS-CommandBYTE-DATA Так у меня ж тоже в принципе те же 4 операции - START-SLAVEADRESS-CommandBYTE-DATA? P.S. Спасибо за код. Разбираю.
|
|
|
|
|
Nov 16 2010, 13:53
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ILYAUL @ Nov 16 2010, 17:50)  1 Библиотека макросов А где можно найти состав этой библиотеки макросов? В инете macros_v1.72.asm нет подробного описания. Интересно ведь, все же настолько многие команды облегчают задачу. P.S. Пока еще разбираю.
|
|
|
|
|
Nov 16 2010, 16:44
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Цитата(Slavast @ Nov 16 2010, 17:49)  Но почему же мой алгоритм не работает? Ведь по идее - все те же операции START-SLAVEADRESS-CommandBYTE-DATA?? Потому, что согласно DS любое обращение к регистрам начинается со START-SLAVEADRESS-CommandBYTE-DATA- вчитайтесь, что у Вас есть, только правильное обращение к config регистру, а чего нет , нет ни start и slave ни command при обращении к data регистру.... Цитата плавно изменяющиеся уровни отрицательного напряжения (как я понял потому как у нас массив этих значений!!!) Да , просто "пила", загнал как тест Цитата На выходе осциллографа Скорее всё таки на экране
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 17 2010, 09:36
|
Частый гость
 
Группа: Участник
Сообщений: 81
Регистрация: 25-10-10
Пользователь №: 60 395

|
Цитата(ILYAUL @ Nov 16 2010, 20:44)  Потому, что согласно DS любое обращение к регистрам начинается со START-SLAVEADRESS-CommandBYTE-DATA- вчитайтесь, что у Вас есть, только правильное обращение к config регистру, а чего нет , нет ни start и slave ни command при обращении к data регистру.... Теперь Понял! У меня такой вопрос. Я на UART хочу вывести слово "Привет Комсомолу" на Терминал компьютера (Использую программу Win Term). Но выводит всё, кроме первых 2-х букв. Вместо них какие-то квадраты. В чем загвоздка? В цикле вывода массива? И как правильно проверять конец строки (Я проверяю по точке)? файл:
Прикрепленные файлы
UART5.RAR ( 8.03 килобайт )
Кол-во скачиваний: 19
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|