21.12.2010, 18:20
|
|
Частый гость
Регистрация: 02.02.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
|
Re: STM8(S/L), первые впечатления
разобрался ![Наслаждаюсь жизнью](images/smilies/icon_music.gif)
Оказывается ЦАП сделан R2R. Возникает вопрос нафига тогда вообще этот VRef нужен?
|
|
|
|
21.12.2010, 18:58
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Надо просто не маяться дурью. В документации черным по белому:
Вот как раз RxNE и нужно проверять. И когда установится дрыгать CS. И nop нафиг не нужны.
ЗЫ. А код проверки BSY хреновый вышел, что у космика, что у IAR. Там одна команда должна быть - BTJT.
|
А теперь о наших баранах ...
Тестилась передача через SPI :
Вот общий код менялся лишь цикл проверки флагов.
Код:
|
void ls020_wrcmd8(unsigned char cmd)
{
RS=1; //Set RS
CS=0; // select LCD
SPI_DR=cmd;
#asm
nop
nop
1$: BTJF _SPI_SR,#1,1$
#endasm
CS=1; // deselect LCD
} |
Каждому скриншоту соответсвует асм вставка :
1) Проверяем TXE
Код:
|
1$: BTJF _SPI_SR,#1,1$ |
2) Проверяем RXNe
Код:
|
1$: BTJF _SPI_SR,#0,1$ |
3) Проверяем BSY
Код:
|
1$: BTJT _SPI_SR,#7,1$ |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 21.12.2010 в 19:38.
|
|
|
|
21.12.2010, 19:04
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Следующие скрины , проверка сразу 2х флагов/
1) TXE + RXNe
Код:
|
1$: BTJF _SPI_SR,#1,1$
BTJF _SPI_SR,#0,1$ |
2) TXE + BSY
Код:
|
1$: BTJF _SPI_SR,#1,1$
BTJT _SPI_SR,#7,1$ |
3) RXNe + BSY
Код:
|
1$: BTJF _SPI_SR,#0,1$
BTJT _SPI_SR,#7,1$ |
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 21.12.2010 в 19:39.
|
|
|
|
21.12.2010, 19:22
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
В итоге получаем , что только проверка BSY + TXE(RXNe) дает желаемое .
Для тех кто не юзает Logic-U , поясню .
Валидные данные( корректное переключение CS) только там где анализатор определил данные на DATA - числа обведенные синим.
А вообще Стас прав - на хрен проверки флагов , тактов уходит больше чем просто набить NOPы.
Тупо - 18 NOP'ов ...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 21.12.2010 в 19:57.
|
|
|
|
21.12.2010, 20:19
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Хм... тема стала напоминать SPI-тюнинг. ![Рот до ушей](images/smilies/icon_doushei.gif)
Набивать где попало кучу NOP тоже не выход, если SPI работает только на передачу и время вывода критично, то тогда можно и NOPами поработать. А если и приём, и передача, и время жёстко не регламентировано (ну бывает такое), то лучше определитья со стандартной процедурой с задействованием флагов.
Прицеплю к Дискавэри что-то типа 23K256 и посмотрю что там и как, ну не должно же быть всё так тоскливо.
|
|
|
|
21.12.2010, 20:28
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от st_1
|
ну не должно же быть всё так тоскливо.
|
Хотелось бы , чтоб я ошибался .
Сообщение от st_1
|
Тема стала напоминать SPI-тюнинг.
|
Не могу продолжать дальше не разобравшись с этим .
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 21.12.2010 в 21:02.
|
|
|
|
21.12.2010, 23:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от dosikus
|
Для тех кто не юзает Logic-U , поясню .
Валидные данные( корректное переключение CS) только там где анализатор определил данные на DATA - числа обведенные синим.
|
Я бы такой критерий не вводил. Если анализатор отрисовывает правильно, то проверка одного RXNE показывает правильную картинку для SPI. А то, что анализатор при этом данные не распознал, так это проблема самого анализатора. В самой последовательности траблов нет. Я бы даже сказал что взвод CS слишком поздно происходит, хотя на работоспособности это и не скажется, но времени уйдет больше.
Да, а главное то забыл - при использовании RXNE нужно вычитывать регистр данных ПЕРЕД передачей. Это сбросит флаг RXNE. Например:
Код:
|
....
SPI_DR;
SPI_DR = cmd; |
Последний раз редактировалось kison; 21.12.2010 в 23:31.
|
|
|
|
21.12.2010, 23:32
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Я бы такой критерий не вводил. Если анализатор отрисовывает правильно, то проверка одного RXNE показывает правильную картинку для SPI. А то, что анализатор при этом данные не распознал, так это проблема самого анализатора. В самой последовательности траблов нет. Я бы даже сказал что взвод CS слишком поздно происходит, хотя на работоспособности это и не скажется, но времени уйдет больше.
|
Да , получилось не много не то . Я не хотел утверждать , что SPI с глюками.
Скорей где то я накосячил .
Но в данном случае - критерием выступает не только анализатор но и LS020 , который при неопознанных анализатором последовательностей , не хочет иниацилизироваться .
Да кстати - анализатор все правильно делает , стоит: валидность данных только при низком CS
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 21.12.2010 в 23:37.
|
|
|
|
21.12.2010, 23:35
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Сообщение от kison
|
Да, а главное то забыл - при использовании RXNE нужно вычитывать регистр данных ПЕРЕД передачей. Это сбросит флаг RXNE. Например:
|
Может считывать ?
__________________
Осторожно , злой кот
|
|
|
|
21.12.2010, 23:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: STM8(S/L), первые впечатления
Нет, сделай так как приведено. Если считаешь в cmd, то что потом отправлять то будешь? ![Улыбка](images/smilies/icon_smile.gif)
Или местами поменяй запись и считывание - тогда и в cmd можно.
И выкини свои нопы вместе с асмовыми вставками. Они конечно хорошо для повышения программистского скилла, но тут нафиг не сдались. Хотя одна команда и лучше, чем то что космик с iar нагенерили. ![Улыбка](images/smilies/icon_smile.gif)
Вообще может я не прав и тут асмовая вставка в самый раз будет. Правда лучше ее инлайновой функцией сделать. Так оно понятнее - вместо закорюк асмовых будет WaitReadySPI() или что то в таком духе. А внутри можно и одну ассемблерную инструкцию держать.
Последний раз редактировалось kison; 21.12.2010 в 23:47.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:17.
|
|